首页 > 解决方案 > 错误覆盖权限

问题描述

message.guild.channels.create(`ticket-${message.author.username}`).then
            (channel => channel.overwritePermissions(Support, {
                            SEND_MESSAGES: true,
                            READ_MESSAGES: true
                        }));
                    channel.overwritePermissions(everyone, {
                            SEND_MESSAGES: false,
                            READ_MESSAGES: false
                        });
                    channel.overwritePermissions(message.author, {
                            SEND_MESSAGES: true,
                            READ_MESSAGES: true
                    }); {

                      }

我在创建频道时不知道如何添加权限,有人可以帮我吗?

标签: javascriptnode.jsdiscord.js

解决方案


第一个错误是您正在使用Support,everyonemessage.author,这些都需要是引用角色 ID 或成员 ID 的 ID

这不是错误的一部分,但是因为您问过:如果您查看文档,<GuildChannelManager>.create()您可以看到第二个参数是您可以指定的选项permissionOverwrites,因此您可以这样做而不是修改覆盖.then

https://discord.js.org/#/docs/main/stable/class/GuildChannelManager?scrollTo=create

msg.guild.channels.create(`ticket-${message.author.username}`, {
  type: 'text',
  permissionOverwrites: [
     {
       id: "SUPPORT_ROLE_ID",
       allow: ['SEND_MESSAGES', 'READ_MESSAGES'],
    },
    {
       id: message.author.id,
       allow: ['SEND_MESSAGES', 'READ_MESSAGES'],
    },
    {
       id: message.guild.roles.everyone.id,
       allow: ['SEND_MESSAGES', 'READ_MESSAGES'],
    }
  ],
});

推荐阅读