我在做一个黑手党游戏机器人在Python上的不和。我是编程的初学者,我遇到了一个问题。当我在创建一个游戏时,我的机器人制作了一个有三个频道的类别:一个为每个人准备的文字频道,一个为每个人准备的语音频道,以及一个专门为黑手党玩家准备的文字频道。然后机器人给每个玩家一个带有游戏号的角色。问题是我想让黑手党聊天只对黑手党可见。我不想为它做一个单独的角色,因为如果有人检查玩家的角色,它将是可见的。
有没有一种方法可以编辑一个频道的权限,使它只有某一组人会看到这个频道。你可以用手做,但我没有找到用机器人做的方法。
下面的示例显示了如何编辑特定用户的权限:
@bot.command()
async def togglechat(ctx, member: discord.Member):
perms = ctx.channel.overwrites_for(member)
await ctx.channel.set_permissions(member, read_messages=not perms.read_messages)
await ctx.send(f"Successfully toggled {member.name}'s view of this channel!")
默认情况下,成员的值很可能被设置为none
,并且切换成员的通道视图几次,逻辑上如下所示:
>>> view = None
>>> view = not view
>>> view
True
>>> view = not view
>>> view
False
>>> view = not view
>>> view
True
您还可以根据它们接收的角色将其设置为特定值(true
/false
);
perms.read_messages = True # or False
您还可以使用ctx.guild.default_role
编辑@Everyth
的频道视图。这意味着您可以将他们的频道视图设置为false
,然后将黑手党成员的频道视图编辑为true
。
参考资料:
textchannel.set_permissions()
TextChannel.Overwrites_for()
guild.default_role