首页 > 解决方案 > 创建类别时无法设置覆盖

问题描述

我看过一个关于创建带有覆盖的频道的 youtube 教程,但我仍然不明白为什么这段代码不起作用

varCategory = await message.guild.create_category(name=args[1], overwrites={overwrite(message.guild.default_role,view_channel=False,send_messages=False)}, reason=None, position=0)

我得到错误 init() 需要 1 个位置参数,但给出了 2 个

标签: discord.py

解决方案


view_channel来自旧async版本。现在您可以使用read_messagesor设置它send_messages,这将阻止用户在频道中发送消息。

在这里我已经更正了您的代码并对其进行了测试,您还可以选择命令的作者是否应该有权访问该频道。

guild = ctx.guild
member = ctx.author
overwrites = {
    guild.default_role: discord.PermissionOverwrite(read_messages=False),
    member: discord.PermissionOverwrite(read_messages=False)
    }
channel = await guild.create_text_channel(args=[1], overwrites=overwrites)

推荐阅读