我的机器人可以向测试服务器中的其他人添加角色,但不能在主服务器中添加角色。它们都具有相同的管理权限和角色。
这是我的角色代码:
role = 'Customer'
await author.add_roles(discord.utils.get(author.guild.roles, name=role)) #add the role
print(f"{author} was given Customer Role.")
这是错误(我只有在主服务器中使用命令时才会得到):
Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
在这一点上,我认为这是开发人员面板中需要配置的东西,但不确定。
检查层次结构。如果bot的角色位于您尝试添加的角色之下,则即使bot具有管理员权限,也无法添加角色。
您的bot没有权限管理该服务器上的角色。您应该将代码包装在try-except块中,并让它在发生这种情况时在服务器上输出错误。例如:
role = 'Customer'
try:
await author.add_roles(discord.utils.get(author.guild.roles, name=role)) #add the role
except discord.Forbidden:
await ctx.send("Error! I do not have permission to manage roles!")
print(f"{author} was given Customer Role.")
要求服务器所有者(或管理员)授予您的bot必要的权限。