[英]RangeError [BITFIELD_INVALID] when checking for permission overwrites (Discord.js v12)
我試圖創建一個鎖定命令,用戶可以在其中 select 覆蓋什么權限。 但是,這僅在刪除第 3 和第 4 個if
語句(檢查現有權限覆蓋)時才有效,因為會產生以下錯誤: RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number.
會有解決方法嗎?
const channel = bot.channels.cache.get(args[0]);
if(!channel) {
return message.reply('Please provide a channel id!');
}
if(!args[1]) {
return message.reply('Please set the lock type!');
}
if (!channel.permissionsFor(message.guild.roles.everyone).has('VIEW_CHANNEL')) {
const errorEmbed = new Discord.MessageEmbed()
.setDescription(`❌ \`VIEW_CHANNEL\` for \`${channel.name}\` is already disabled.`)
.setColor('RED');
return message.channel.send(errorEmbed);
}
if (!channel.permissionsFor(message.guild.roles.everyone).has('READ_MESSAGES')) {
const errorEmbed = new Discord.MessageEmbed()
.setDescription(`❌ \`READ_MESSAGES\` for \`${channel.name}\` is already disabled.`)
.setColor('RED');
return message.channel.send(errorEmbed);
}
else if (args[1] === 'view' || args[1] === 'read') {
channel.updateOverwrite(message.channel.guild.roles.everyone, { VIEW_CHANNEL: false }).then(() => {
const msgEmbed = new Discord.MessageEmbed()
.setDescription(`✅ The channel\`${message.channel.name}\` has been locked.`)
.setColor('GREEN');
message.channel.send(msgEmbed);
}).catch((error) => {
console.log(error);
const errorEmbed = new Discord.MessageEmbed()
.setDescription(`❌ Unable to lock \`${channel.name}\`.`)
.setColor('RED');
message.channel.send(errorEmbed);
});
}
else if (args[1] === 'send') {
channel.updateOverwrite(message.channel.guild.roles.everyone, { SEND_MESSAGES: false }).then(() => {
const msgEmbed = new Discord.MessageEmbed()
.setDescription(`✅ The channel\`${channel.name}\` has been locked.`)
.setColor('GREEN');
message.channel.send(msgEmbed);
}).catch((error) => {
console.log(error);
const errorEmbed = new Discord.MessageEmbed()
.setDescription(`❌ Unable to lock \`${channel.name}\`.`)
.setColor('RED');
message.channel.send(errorEmbed);
});
}
我認為這是因為您使用的是READ_MESSAGES
而不是到處使用VIEW_CHANNEL
(它是相同的,我認為READ_MESSAGES
已從 Discord.js v12 中刪除)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.