我将如何获取每个文本和语音通道,并拒绝@每个人阅读它,然后允许另一个角色读取和发送?

时间:2018-09-19 18:11:38

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

我想知道如何将漫游器添加到行会中,如何使它获得每个文本和语音通道,然后拒绝@每个人都可以读取它,但是又允许另一个名为“已验证”的角色来读取它? /> 我正在使用Discord.py的重写版本

编辑:我发现了如何使用

更改权限。
await message.channel.set_permissions(message.author, read_messages=True, send_messages=False)

但是我仍然不知道如何在每个频道上应用

2 个答案:

答案 0 :(得分:0)

即使您已经在Discord上找到了答案,也可以在此处将其发布给他人;)

您需要通过Guild.channels

遍历公会中的每个频道

答案 1 :(得分:0)

这只会更改发送消息的用户的情况。要阻止所有人,必须改为设置Guild.default_role的权限。以下命令接受现有角色和任意数量的成员。它为调用者和所有这些成员赋予该角色,然后为没有该角色的每个人禁用阅读消息。

from discord.ext import commands
import discord

bot = commands.Bot(command_prefix='!')

@bot.command()
async def verify(ctx, role: discord.Role, *members: discord.Member):
    for member in (ctx.author, *members):
        await member.add_roles(role, reason=f"Verify command by {ctx.author.id}")
    for channel in ctx.guild.channels:
        await channel.set_permissions(ctx.guild.default_role, read_messages=False)
        await channel.set_permissions(role, read_messages=True)

bot.run("Token")