我的代码有一个奇怪的问题。当使用message.guild.me时,机器人应该将新的权限分配给发出不一致命令的用户,但是它会将其分配给机器人。我还验证了这是将权限添加到机器人的命令,并且还验证了用户没有获得权限。根据Discord.py应用编程接口指南,这应该分配给发出命令的用户(应该是"me“)。关于我可以尝试什么或者如何纠正这个问题,有什么见解吗?
下面是代码。有一些信息丢失了,但它们不应该对发生的事情有任何影响(例如,print命令中的时间)。
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)
发布于 2021-06-17 14:46:35
message.guild.me
指的是bot客户端,使用message.author
获取调用命令的用户。
我强烈建议用discord.ext.commands
代替on_message
来创建命令
https://stackoverflow.com/questions/68021360
复制相似问题