如何制作一个在Python中提供角色的discord机器人?

如何制作一个在Python中提供角色的discord机器人?,python,bots,roles,discord,discord.py,Python,Bots,Roles,Discord,Discord.py,我想创建一个discord bot,在Python中为成员提供角色 我试过这个: @async def on_message(message): if message.content == "give me admin" role = discord.utils.get(server.roles, name="Admin") await client.add_roles(message.author.id, role) 我认为这应该行得通。

我想创建一个discord bot,在Python中为成员提供角色

我试过这个:

@async def on_message(message):
     if message.content == "give me admin"
           role = discord.utils.get(server.roles, name="Admin")
           await client.add_roles(message.author.id, role)
我认为这应该行得通。的文档是

您还可以使用
discord.ext.commands
扩展名:

from discord.ext.commands import Bot
import discord

bot = Bot(command_prefix='!')

@bot.command(pass_context=True)
async def addrole(ctx, role: discord.Role, member: discord.Member=None):
    member = member or ctx.message.author
    await client.add_roles(member, role)

bot.run("token")
你需要做的就是

import discord
from discord.utils import get

@client.event
async def on_message(message):
    if message.content == "give me admin"
        member = message.author
        role = (member.guild.roles , name="Admin")
        await member.add_roles(role)

bot具有管理员权限!
async
前面的
@
不应该在那里。此函数应该用
@client.event
或类似的东西修饰。只需将
message.author.id
传递给
message.author
add_roles
程序返回:“NameError:名称'server'未定义”使用
message.server.roles
。好的,我会尝试。谢谢!非常感谢。你帮了我很大的忙!使用此代码,我得到以下错误:“new_roles=utils.\u unique(itertools.chain中role的role.id(member.roles,roles))AttributeError:'NoneType'对象没有属性'id'”@MikeyJY那么您的服务器上没有名为
Admin
的角色,我知道问题出在哪里:该角色名为:Admin+表情符号,但我使用Python IDLE,当我放置表情符号时,文件正在关闭。我可以使用角色id吗?可以。将
role=get(message.server.roles,name='Admin')
更改为
role=get(message.server.roles,id='')
import discord
from discord.utils import get

@client.event
async def on_message(message):
    if message.content == "give me admin"
        member = message.author
        role = (member.guild.roles , name="Admin")
        await member.add_roles(role)