是否有可能与discord.py不一致地更改特定用户的权限

问题描述 投票:0回答:1

我正在为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,但我没有设法找到一种通过机器人执行此操作的方法。

python discord discord.py discord.py-rewrite
1个回答
0
投票

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

@bot.command()
async def togglechat(ctx, member: discord.Member):
    perms = ctx.channel.overwrites_for(member)
    perms.update(read_messages=not perms.read_messages)
    await ctx.channel.set_permissions(member, overwrite=perms)
    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


参考:

© www.soinside.com 2019 - 2024. All rights reserved.