我制作了一个实用机器人来帮助记录消息并帮助将 channel 从一台服务器迁移到另一台服务器。我需要检查它是否具有执行命令所需的权限,但以下代码不起作用(我使用 @client.event
并且不希望使用 @bot.command
)这是我的权限检查代码:
if not client.user.server_permissions.text.read_messages: await send_message(message.channel,"Please give me permission to read messages!")
if not client.user.server_permissions.text.manage_messages: await send_message(message.channel, "Please give me permission to manage messages!")
if not client.user.server_permissions.text.read_message_history: await send_message(message.channel, "Please give me permission to read message history!")
if not client.user.server_permissions.text.attach_files: await send_message(message.channel, "Please give me permission to attach files!")
上面的方法不起作用,当我在适当的条件下测试它时,出现以下错误:
AttributeError: 'User' object has no attribute 'server_permissions'
我哪里出错了?
使用 Python Rewrite (v1.0) 时,命名方案已从 server
更改为 guild
。这会将正确的代码更改为:
message.channel.guild.me.guild_permissions
(@patrick-haugh 所示的 User
和 Member
之间的区别仍然正确)
我是一名优秀的程序员,十分优秀!