TypeError [INVALID_TYPE]:提供的覆盖不是权限覆盖的数组或集合.不和谐 v12
module.exports = {
config: {
name: 'lock',
aliases: ['lk'],
description: "",
category: "Admin"
},
run: async (client, message, args) => {
const Discord = require('discord.js')
if(!message.member.hasPermission("MANAGE_MESSAGES", "MANAGE_CHANNELS")) {
return message.reply(`<@${message.author.id}>, You do not have the permissions`);
} else if(!message.guild.me.permissions.has("MANAGE_MESSAGES", "MANAGE_CHANNELS")) {
return message.reply("I don't have Permissions")
} else {
message.channel.overwritePermissions(message.guild.everyone, {
SEND_MESSAGES: false,
ADD_REACTIONS: false
});
const embedLock = new Discord.MessageEmbed()
.setTitle(`Channel successfully blocked! Use !ynlock to Unlock the channel`)
.setColor("RED")
const msg = await message.channel.send(embedLock)
}
}
}
我正在尝试让 !lock 命令阻止每个人的消息,但是当我使用该命令时,机器人会发送嵌入消息:
I'm trying to make the !lock command block everyone's messages, but when I use the command, the bot sends the embed message:
const embedLock = new Discord.MessageEmbed()
.setTitle(`Channel successfully blocked! Use !ynlock to Unlock the channel`)
.setColor("RED")
const msg = await message.channel.send(embedLock)
但它不会阻塞消息,并在终端发送此错误:
But it does not block messages, and sends this error in the terminal:
TypeError [INVALID_TYPE]: Supplied overwrites is not an Array or Collection of Permission Overwrites
推荐答案
message.channel.overwritePermissions(message.guild.everyone,
{
SEND_MESSAGES: false,
ADD_REACTIONS: false
});
其实是Channel的格式.updateOverwrite()
.对于 Channel.overwritePermissions()
,改用这个:
Is actually the format for Channel.updateOverwrite()
. For Channel.overwritePermissions()
, use this instead:
message.channel.overwritePermissions([
{
id: message.author.id,
deny: ['SEND_MESSAGES', 'ADD_REACTIONS'],
},
]);
相关文章