如何从角色频道中删除权限-discord.js?

时间:2020-10-26 15:15:33

标签: javascript node.js discord discord.js

我正在尝试创建一个锁定命令,以将“已验证”角色的SEND_MESSAGES权限设置为false。

我的代码目前无法正常工作。我该怎么做呢?许多人说,我似乎无法弄清楚如何使用Channel.overwritePermissions

channel.overwritePermissions(role, { 'SEND_MESSAGES': false })

但是这不起作用,因为不一致的文档有这样的示例:

channel.overwritePermissions([
  {
     id: message.author.id,
     deny: ['VIEW_CHANNEL'],
  },
], 'Needed to change permissions');

它对我也不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我相信您会对两个名称非常相似的方法感到困惑。 Channel.updateOverwrite,其中:

“为此频道中的用户或角色更新覆盖。(如果不存在则创建)”

然后还有Channel.overwritePermissions,它是:

替换此通道中的权限覆盖。

这两种方法之间的主要区别是updateOverwrite仅更改一个角色/成员的覆盖。但是,overwritePermissions会完全删除所有以前的覆盖,并用指定的内容替换。

如果您只想更改一个角色的设置,则可能正在寻找updateOverwrite。此方法使用您在第一个示例中显示的格式,因此您只需复制并粘贴该代码即可。

channel.updateOverwrite(role, { SEND_MESSAGES: false });