是否可以与discord.py更改特定用户的权限

时间:2020-06-04 22:05:15

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

我正在为Python上的Discord制作黑手党游戏机器人。我是编程的初学者,遇到了问题。在创建游戏时,我的机器人makes a category with three channels: a text channel for everyone, a voice channel for everybody, and a text channel specifically for mafia players.会向每个玩家赋予一个角色,其中包含游戏编号。问题是我想让黑手党聊天仅对黑手党可见。而且我不想为此单独扮演角色,因为如果有人检查玩家的角色,这将是可见的。

是否可以通过某种方式编辑频道的权限并进行设置,以使只有特定人群才能看到该频道。 You can do that by hand,但我没有设法找到一种通过机器人来实现的方法。

1 个答案:

答案 0 :(得分:1)

下面是一个示例,显示了如何编辑特定用户的权限:

@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编辑@everyone的频道视图。这意味着您可以将他们的频道视图设置为False,然后将黑手党成员的频道视图编辑为True


参考: