[英]Discord.py Mute Command Channel Permissions
我有一個>>setup mute
命令,它創建了一個靜音角色,我需要它為該角色的每個頻道創建頻道權限,但它只為我運行的頻道設置權限>>setup mute
,它設置了@everyone 角色的頻道權限,而不是靜音角色。 有人可以幫忙嗎? 這是我的代碼
elif command.lower() == 'mute':
role = discord.utils.get(ctx.guild.roles, name='Muted')
if role in ctx.guild.roles:
await ctx.send('Already Setup')
else:
perms = discord.Permissions(send_messages=False, read_messages=True)
role = await ctx.guild.create_role(name='Muted', permissions=perms)
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)
await ctx.send('Muted Role Created')
它不起作用的原因。 是您迭代每個角色並使用相同的頻道。 然后設置權限以將服務器中所有角色的人靜音,並使用相同的頻道。 這導致每個角色在單個通道中被靜音:
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)
另一個問題是 muted 變量被 for 循環創建的 muted 變量遮蔽。 由於這種陰影,第一行不會被使用。 因此,您獲得的靜音角色根本沒有使用。
下次需要做的是選擇一個角色。 但是然后遍歷公會的每個頻道而不是服務器的角色(然后在所有頻道中應用該角色的權限。):
for channel in ctx.guild.channels:
channel.set_permissions(muted, send_messages=False, read_messages=True, read_message_history=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.