message.guild.me 将角色分配给机器人,而不是用户发出命令

时间:2021-06-17 14:28:05

标签: python discord.py

我的代码有一个奇怪的问题。当使用 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)

1 个答案:

答案 0 :(得分:3)

message.guild.me 指机器人客户端,使用 message.author 获取调用命令的用户。

我强烈建议使用 discord.ext.commands 代替 on_message