我正在将我的机器人转换为与discord.js的master分支一起使用
我得到了票务命令,并且它们发生了很大变化,除了overwritePermissions
部分,我设法完成了所有工作。我不确定为什么代码不起作用。
如果我删除底部的2个overwritePermissions
部分,则可以正常工作,但如果全部显示3个,则均不执行。
let role = message.channel.guild.defaultRole;
let role2 = message.guild.roles.find(x => x.name === "Support Team");
message.guild.channels.create(`ticket-test`, {type: 'text'}).then(c => {
c.overwritePermissions({
permissionOverwrites: [{
id: role.id,
deny: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
}]
});
c.overwritePermissions({
permissionOverwrites: [{
id: role2.id,
deny: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
}]
});
c.overwritePermissions({
permissionOverwrites: [{
id: message.author.id,
allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
}]
});
});
我已经完成了
console.log(role.id)
和console.log(role2.id
,它们都显示正确的ID,只是不执行代码。 最佳答案
您不必重复overwritePermissions()
方法,只需在第一位的channel creation options中列出您的权限覆盖即可。 type
的默认值已经是一个文本通道,因此您也可以忽略该选项。最后,您应该始终抓住承诺。
const everyone = message.guild.defaultRole;
const support = message.guild.roles.find(r => r.name === 'Support Team');
message.guild.channels.create('ticket-test', {
permissionOverwrites: [
{
id: everyone.id,
deny: 'VIEW_CHANNEL'
}, {
id: support.id,
allow: 'VIEW_CHANNEL'
}, {
id: message.author.id,
allow: 'VIEW_CHANNEL'
}
]
}).catch(err => console.error(err));
关于javascript - overwritePermissions无法正常运行| Discord.js主,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56104419/