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,TypeError:提供的参数既不是用户也不是角色
加入机器人 discord.js 的语音频道后如何忽略相同的命令