有没有办法用discord.py隐藏频道列表?

时间:2020-08-05 06:03:37

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

所以我一直在为我的一个朋友服务器编写一个机器人,我似乎可以使它工作。我需要一种隐藏多个渠道的方法。我已经编写了一个函数,可以为我提供隐藏在数组中的所有通道。我需要一个函数,该函数被调用时将遍历数组中的项目,并将删除我的函数还提供的指定用户的read_messages权限。

# expected input
hide(channels_to_hide, user)

预期的输出:channels_to_hide中隐藏了user中列出的所有通道。

我尝试使用await channel.set_permissions(),但似乎无法使它正常工作,并且在隐藏频道时文档似乎有些空白。 我也使用discord.py重写版本。

谢谢,

1 个答案:

答案 0 :(得分:1)

您应该考虑隐藏所有给定频道的角色。 您可以像这样添加角色,并将其添加到on_raw_reaction_add

中执行
@bot.event
async def on_raw_reaction_add(payload):
    if message.author.id != bot.user.id:
        return # not to take reactions from message not made by the bot itself
    
    role = 'hide' # you can also use a list of roles 
    guild = bot.get_guild(payload.guild_id)

    user = await bot.fetch_user(payload.user_id)
    name = guild.get_member_named(user.name)
    await name.add_roles(role)

添加角色的另一种方法是

role = discord.utils.get(ctx.guild.roles, name="role to add name")
user = ctx.message.author
await user.add_roles(role)