【问题标题】:discord.js setting permission on channel to "/" (neutral)discord.js 将频道权限设置为“/”(中性)
【发布时间】:2021-01-02 02:34:57
【问题描述】:

我希望将文本通道上的用户权限设置为中性/null/“/”,但 overwritePermissions() 目前似乎只使用允许和拒绝,past post I saw 显示将值设置为 null 但似乎允许/拒绝防止这种情况发生。

我正在这样设置文本频道的权限:

member.guild.channels.cache.array().forEach((channel) => {
 channel.overwritePermissions([
  {
   id: member,
   deny: ['VIEW_CHANNEL'],
  },
 ]);
});

并希望有效地撤消此操作,将 ['VIEW_CHANNEL'] 权限更改为允许覆盖服务器中的其他权限,并且不适用于我的情况。

overwritePermissions() documentation

【问题讨论】:

  • 我想你在找updateOverwrite()
  • 非常感谢,从来没有注意到藏在角落里,如果你想提交它作为答案,我很乐意接受它:)
  • 好吧,确定????

标签: javascript node.js discord.js


【解决方案1】:

我相信您正在寻找的是Channel#updateOverwrites(),它除了具有与overwritePermissions() 不同的功能外,还具有不同的格式。

overwritePermissions 覆盖频道中的所有权限(如其名称所示)。所以即使你只想改变一件事,overwritePermissions 也会带来一切。值得庆幸的是,我们还有updateOverwrites。此方法只会更改一个成员/角色的权限。

你可以这样使用它:

// as a note, `forEach()` automatically coverts the collection to an array,
// so no need for the `array()` function
member.guild.channels.cache.forEach((channel) => {
 channel.updateOverwrite(member, { // update permissions only for the member
  VIEW_CHANNEL: null, // set view_channel to default
 });
});

【讨论】:

  • 它是 channel.updateOverwrite (Channel#updateOverwrites()) & (channel.updatePermissions) :p 也谢谢你的提示,我不知道它转换了
  • 老实说,我需要一些咖啡,但我经常把它们弄混
  • 很高兴我能帮上忙 :)
猜你喜欢
  • 2020-07-23
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 2021-04-18
  • 2021-07-10
  • 2018-11-20
  • 2021-02-01
相关资源
最近更新 更多