【发布时间】:2020-12-05 17:44:27
【问题描述】:
我正在创建一个用于锁定频道的命令,并使用.updateOverwrite() 方法来执行此操作。使用下面的代码,我试图检查通道是否已经将 VIEW_CHANNEL 设置为 false 并因此以错误消息进行响应。但是,即使频道已经被锁定,它仍然会再次“锁定”它并跳过检查,这个检查似乎只在频道解锁时被触发。是否有其他方法来检查频道覆盖情况?
if (message.member.hasPermission('MANAGE_CHANNELS')) {
if (!message.guild.roles.everyone.permissions.has('VIEW_CHANNEL')) {
const errorEmbed = new Discord.MessageEmbed()
.setDescription(`❌ '${message.channel.name}' is already locked.`)
.setColor('RED');
message.channel.send(errorEmbed);
}
else{
message.channel.updateOverwrite(message.channel.guild.roles.everyone, { VIEW_CHANNEL: false }).then(() => {
const msgEmbed = new Discord.MessageEmbed()
.setDescription(`✅ '${message.channel.name}' has been locked.`)
.setColor('GREEN');
message.channel.send(msgEmbed);
});
}
}
else {
const warningEmbed = new Discord.MessageEmbed()
.setDescription('???? Sorry, you do not have sufficient permissions to do this.')
.setColor('YELLOW');
message.channel.send(warningEmbed);
}
【问题讨论】:
标签: javascript node.js discord.js