Discord.py静音命令通道权限

时间:2020-03-02 20:14:56

标签: python python-3.x discord discord.py discord.py-rewrite

我有一个wanted命令,它创建了一个Muted角色,我需要它为该角色的每个频道创建频道权限,但是它只为我在>>setup mute中运行的频道设置权限,它为@everyone角色而不是Muted角色设置频道权限。有人可以帮忙吗? 这是我的代码

>>setup mute

1 个答案:

答案 0 :(得分:1)

不起作用的原因。是您遍历每个角色并使用相同的渠道。然后设置权限,以使具有相同频道的服务器中所有角色的用户静音。这导致每个角色在单个通道中被静音:

muted = discord.utils.get(ctx.guild.roles, name='Muted')
for muted in ctx.guild.roles:
    await ctx.channel.set_permissions(muted, send_messages=False, read_messages=True, read_message_history=True)

另一个问题是,已静音的变量被for循环创建的已静音的变量遮盖。由于此阴影,将不使用第一行。因此,您获得的静音角色根本不会使用。

下次需要做的就是选择一个角色。但是然后遍历行会的每个通道而不是服务器的角色(然后在所有通道中应用该角色的权限。):

for channel in ctx.guild.channels:
    channel.set_permissions(muted, send_messages=False, read_messages=True, read_message_history=True)