首页 > 解决方案 > Discord.js 权限覆盖创建频道不会更改权限?

问题描述

我正在 Node.js(Discord.js v12 stable)上编写一个 Discord.js 机器人,我希望它更改/覆盖所创建频道的权限。

下面的代码,我试过......

message.guild.channels.create('channelname', {
  type: 'text',
  permissionOverwrites: [{
      id: message.guild.id,
      deny: ['VIEW_CHANNEL'],
    },
    {
      id: message.author.id,
      allow: ['VIEW_CHANNEL'],
    },
  ],
});

...似乎只是忽略了 permissionOverwrites: [ ] 部分并继续代码而没有任何错误。上面的代码实际上是 discord.js 指南网站的示例(https://discordjs.guide/popular-topics/permissions.html#adding-overwrites)。我在这里有点困惑,因为它根本没有显示任何错误,而且有点忽略了 permissionOverwrites 部分。

谢谢你的帮助!

标签: discord.js

解决方案


您可以尝试这样做:

message.guild.channels.create('channelname', {
type: 'text'
}).then(channel => {
   channel.overwritePermissions([
    {
        id: message.guild.id,
        deny: ['VIEW_CHANNEL']
    },
    {
        id: message.author.id,
        allow: ['VIEW_CHANNEL']
    }]);
});

推荐阅读