【问题标题】:Discord.js permissionOverwrites on creating a channel WON'T change the permissions?Discord.js 权限覆盖创建频道不会更改权限?
【发布时间】:2021-02-01 17:27:41
【问题描述】:

我正在 Node.js(Discord.js v12 稳定版)上编写一个 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 部分。

感谢您的帮助!

【问题讨论】:

  • 您是否尝试过在频道创建后覆盖权限?例如超时 100 毫秒,然后执行 channel.overwritePermissions
  • 不,只是将创建的频道添加到类别中并向其中发送消息。
  • @ApocalypseCalculator 但是什么是 permissionOverwrites: [ ] 在那里创建一个频道。

标签: discord.js


【解决方案1】:

你可以试试:

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']
    }]);
});

【讨论】:

  • 那也没用。它只是不会改变权限!
  • 您确定其他所有内容都正确吗?你的机器人有权限吗?审核日志中是否显示任何内容?
  • @L3g3nd4ry 我发现了你的问题,权限对象的格式不正确,因为你添加了一个额外的逗号,我已经编辑了我的答案:)
  • 我可以向你展示发生了什么。我可以向你展示输出,确切的脚本,实际上我只是在不同的服务器上尝试了相同的脚本,它在那里工作。在所有 1 个服务器中,相同的脚本都有效。这是关于什么的?这是 Discord 的问题吗?所有机器人都具有管理员权限,并且角色也相当高。我不知道该怎么办了。
  • 如果它仅在一台服务器上不起作用,则可能是 Discord 错误。审核日志中是否显示任何内容?
猜你喜欢
  • 2018-03-04
  • 2019-10-21
  • 2020-05-07
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2021-04-18
  • 2021-03-16
相关资源
最近更新 更多