我已经开始为我的不和谐行为创建一个机器人,试图在用户做出反应后添加一个角色,但是我仍然被禁止使用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
您是否知道可能导致此错误的原因?我是否忘记了配置或代码中的某些内容? 预先感谢您的帮助
答案 0 :(得分:0)
该机器人的最高角色必须高于您尝试添加的角色。
考虑以下角色列表:
Member
是默认设置。他们无法将Moderator
,Bot
或Admin
分配给其他成员。
同样,拥有Moderator
的人将无法分配Bot
或Admin
,但是 能够分配Member
角色。
而且,如果角色为Bot
的漫游器试图将Admin
分配给另一个用户,则该机器人将没有权限。但是,它具有分配Moderator
和Member
角色的权限。
要解决此问题,只需将Bot
角色移到列表顶部,然后便可以分配所有角色。