使用bot,Discord.py授予和删除角色

如何在Discord.py中创建一个机器人,它将分配 role.json 文件中存在的角色,同时使用相同的命令来删除和添加相同的角色 . 例如, ?role <rolename> 将添加和删除角色,具体取决于用户是否已分配角色 . 我对如何实现这一点感到有点困惑 .

我当前的机器人使用 ?roleadd <rolename> ?roleremove <rolename> .

回答(1)

2 years ago

我不确定你的 role.json 文件在哪里发挥作用,但这是我将如何实现这样一个命令

@bot.command(name="role")
async def _role(ctx, role: discord.Role):
    if role in ctx.author.roles:
        await ctx.author.remove_roles(role)
    else:
        await ctx.author.add_roles(role)

这使用 Role converter从其名称,ID或提及中自动解析 role 对象 .