我的代码有一个奇怪的问题。当使用 message.guild.me 时,bot 应该将新权限分配给在 Discord 中发出命令的用户,但它却将其分配给了 bot。我还验证了这是向机器人添加权限的命令,并且还验证了用户没有获得权限。根据 Discord.py API 指南,这应该将它分配给发出命令的用户(“我”是应该这样做的)。关于我可以尝试什么或如何纠正这个问题的任何见解?
下面是代码。缺少一些信息,但它们不应该对正在发生的事情有影响(例如,打印命令中的时间)。
elif message.content.startswith('!disbute'):
to_role = get(message.guild.roles, id=846420097156775956)
autorize_role = get(guild.roles, name=role)
overwrites = {
message.guild.default_role: discord.PermissionOverwrite(read_messages=False),
message.guild.me: discord.PermissionOverwrite(read_messages=True),
to_role: discord.PermissionOverwrite(read_messages=True)}
channel = await message.guild.create_text_channel('dispute-regionals', overwrites=overwrites)
print('Disbute regionals | Triggered: ' + time)
答案 0 :(得分:3)
message.guild.me
指机器人客户端,使用 message.author
获取调用命令的用户。
我强烈建议使用 discord.ext.commands
代替 on_message