如何使用 Discord Bot 添加角色

时间:2021-01-25 10:54:14

标签: python discord.py

我开始使用 Discord 的 Python API 创建一个 Discord 机器人。因此,我尝试创建一个命令,在 Discord 服务器上提供角色。这是我的代码:

client = commands.Bot(command_prefix = '/')

@client.command()
async def addrole(ctx, role: discord.Role, user: discord.Member):
    if ctx.author.guild_permissions.administrator:
        await user.add_roles(role)
        await ctx.send(f"Successfully given {role.mention} to {user.mention}.")

当我尝试使用该命令时,会发生任何错误。我试着像我做过的网络搜索一样,但仍然不起作用。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我不相信像这样的基本事情需要 Discords 意图,尤其是“成员意图”。我所做的是清理了您的代码,并要求在需要时在多字符串角色之前传递一个成员。

@client.command()
@commands.has_permissions(manage_roles=True)
async def addrole(ctx, member: discord.Member = None, *, role: discord.Role = None):
        if role == None:
                await ctx.send(f'Provide a role to add')
                return

        if member == None:
                await ctx.send(f'Provide a member to add a role')
                return

        await member.add_roles(role)
        await ctx.send(f"Successfully added role, {role} to {member.name}")