【问题标题】:how to change permissions for all text channels with discord.py?如何使用 discord.py 更改所有文本通道的权限?
【发布时间】:2020-06-04 17:09:33
【问题描述】:

我正在尝试创建一个命令来更改所有文本频道的权限 但它不起作用

@bot.command()
async def close_all(ctx):
  overwrite = discord.PermissionOverwrite()
  overwrite.send_messages = False
  overwrite.read_messages = False
  ctx.get_channel = ctx.message.server
  await ctx.channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)

我也尝试输入guild,但它说AttributeError: 'Guild' object has no attribute 'channel'

@bot.command()
async def close_all(ctx):
  await ctx.guild.channel.set_permissions(ctx.guild.default_role, send_messages=False)

【问题讨论】:

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


    【解决方案1】:

    Guild 没有属性channel,但它确实有channels,这是公会中所有频道的列表,您可以循环访问:

    for chan in guild.channels:
        await chan.set_permissions(cts.guild.default_role, send_messages=False)
    

    【讨论】:

    • 但现在我有另一个问题discord.ext.commands.errors.MissingRequiredArgument: guild is a required argument that is missing.我只是编辑代码:@bot.command() async def close_all(ctx, *, guild: discord.Guild): for chan in guild.channels: await chan.set_permissions(ctx.guild.default_role, send_messages=False)
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 2012-04-03
    相关资源
    最近更新 更多