@client.event
async def on_raw_reaction_add(payload):
message_id = payload.message_id
if message_id == 855128466072272937:
guild_id = payload.guild_id
guild = discord.utils.find(lambda g: g.id == guild_id, client.guilds)
if payload.emoji.name == '✅':
role = discord.utils.get(guild.roles, name='Attending')
elif payload.emoji.name == '❌ ':
role = discord.utils.get(guild.roles, name='Not Attending')
else:
pass
if role is not None:
member = payload.member
if member is not None:
print('almost there')
await member.add_roles(role, reason=None, atomic=True)
print('done')
这一直给我错误“discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions”。该机器人目前具有管理员权限,我已尝试将其删除并将其重新添加到服务器,但似乎并没有解决问题。
我在 bot 中创建了一个新函数,它可以完美地处理事件,并且不会给我任何错误。
@client.event
async def on_message(message):
if message.content == "give me admin":
member = message.author
role = get(member.guild.roles, name='No')
await member.add_roles(role)
当我尝试这个时没有出现错误,它给了我这个角色。
答案 0 :(得分:0)
我认为您需要授予机器人管理角色或管理员的权限。
答案 1 :(得分:0)
正如错误所暗示的那样,机器人似乎缺少权限。您应该确保它具有管理角色权限。一般来说,如果我的机器人在我自己的一台服务器上,我只会给它管理员。
您还应该确保机器人的角色高于它将授予/删除的任何角色,否则它将无权分配这些角色。