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