【问题标题】:I want to make a channel that is only visible for admins discord.py我想创建一个只对管理员可见的频道 discord.py
【发布时间】:2021-07-10 18:06:25
【问题描述】:
async def report(ctx, member: discord.Member, *, report=None):
    report_channel = await ctx.guild.create_text_channel("reports")
    await report_channel.set_permissions(has_permissions(administrator=True), view_channel=True, add_reactions=True)
# I tried to fix it every time but it never works i just want to make that specific report channel to be only visible for admins :(

我不断收到此错误: 命令引发异常:InvalidArgument:目标参数必须是成员或角色

【问题讨论】:

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


    【解决方案1】:

    你得到的错误很清楚。

    channel.set_permissions 将成员或角色对象作为其参数。

    反正你不需要使用它,你可以简单地使用ctx.guild.create_text_channeloverwrites参数:

    everyone = ctx.guild.default_role
    # Gets the @everyone role, see: https:#discordpy.readthedocs.io/en/stable/api.html#discord.Guild.default_role
    ctx.guild.
    overwrites = {everyone: discord.PermissionOverwrite.from_pair(deny=discord.Permissions.all(), allow=[])
    ctx.guild.get_role(admin_role_snowflake): discord.PermissionOverwrite.from_pair(deny=discord.Permissions.none(), allow=discord.Permissions.all_channel())}
    await ctx.guild.create_text_channel("reports", overwrites=overwrites)
    # see: https:#discordpy.readthedocs.io/en/stable/api.html#discord.Guild.create_text_channel
    

    第一个 dict 项声明 @everyone 默认不应该对该频道有任何权限。

    第二个声明管理员角色应该拥有该频道的所有文本频道权限。

    您可能需要调整权限以获得所需的结果,并确保将admin_role_snowflake 替换为服务器中管理员角色的雪花。

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2021-08-18
      • 2021-09-01
      • 2020-11-19
      • 2016-07-20
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多