Discord.js 权限覆盖创建频道不会更改权限?

Posted

技术标签:

【中文标题】Discord.js 权限覆盖创建频道不会更改权限?【英文标题】:Discord.js permissionOverwrites on creating a channel WON'T change the permissions? 【发布时间】: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: [ ] 在那里创建一个频道。 【参考方案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 错误。审核日志中是否显示任何内容?

以上是关于Discord.js 权限覆盖创建频道不会更改权限?的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 权限

Discord js,TypeError:提供的参数既不是用户也不是角色

加入机器人 discord.js 的语音频道后如何忽略相同的命令

如何将斜杠命令隐藏到特定用户或频道 Discord.js v13

Discord.js 机器人,临时静音命令不会静音

Discord.js 当我踢一个人时我想在频道中看到它+作为嵌入消息