Discord.py添加反应角色问题

时间:2020-06-13 22:38:29

标签: python discord.py

我已经开始为我的不和谐行为创建一个机器人,试图在用户做出反应后添加一个角色,但是我仍然被禁止使用403(错误代码50013):当我已经设置了正确的权限时,缺少权限(8)到机器人。

@client.event
async def on_raw_reaction_add(payload):
    message_id = payload.message_id
    if message_id == 706945439945195551:
        guild_id = payload.guild_id
        guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds)

        if payload.emoji.name == 'montmo':
            role = discord.utils.get(guild.roles, name='membre')
Traceback (most recent call last):
  File "D:\ProgramData\Python\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "c:/Users/bntth/Documents/Python/Projets/Bot discord/bot_elogic.py", line 47, in on_raw_reaction_add
    await member.add_roles(role)
  File "D:\ProgramData\Python\lib\site-packages\discord\member.py", line 641, in add_roles
    await req(guild_id, user_id, role.id, reason=reason)
  File "D:\ProgramData\Python\lib\site-packages\discord\http.py", line 221, in request
    raise Forbidden(r, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

您是否知道可能导致此错误的原因?我是否忘记了配置或代码中的某些内容? 预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

该机器人的最高角色必须高于您尝试添加的角色。

考虑以下角色列表:

  1. 管理员
  2. 启动
  3. 主持人
  4. 会员

Member是默认设置。他们无法将ModeratorBotAdmin分配给其他成员。
同样,拥有Moderator的人将无法分配BotAdmin,但是 能够分配Member角色。
而且,如果角色为Bot的漫游器试图将Admin分配给另一个用户,则该机器人将没有权限。但是,它具有分配ModeratorMember角色的权限。

要解决此问题,只需将Bot角色移到列表顶部,然后便可以分配所有角色。