Javascript 更改@everyone权限时出错

Javascript 更改@everyone权限时出错,javascript,discord.js,Javascript,Discord.js,因此,在制作DiscordJS机器人时,我遇到了另一个问题。我正在尝试创建一个锁定通道功能,通过更改@everyone的权限来阻止用户在该通道中发送消息。当你发出命令时,你提到了频道,就像这样!锁定频道#概述。但这会产生一个错误:chan.updateOverwrite不是一个函数。代码如下: //... // msg is the message object if (msg.mentions.channels.first()) { const chan = msg.mentions.ch

因此,在制作DiscordJS机器人时,我遇到了另一个问题。我正在尝试创建一个锁定通道功能,通过更改@everyone的权限来阻止用户在该通道中发送消息。当你发出命令时,你提到了频道,就像这样
!锁定频道#概述
。但这会产生一个错误:
chan.updateOverwrite不是一个函数
。代码如下:

//...
// msg is the message object
if (msg.mentions.channels.first()) {
  const chan = msg.mentions.channels.first()
  const role = chan.guild.roles.find('name', 'everyone');
  chan.updateOverwrite(role, { SEND_MESSAGES: false }).catch((error) => console.log(error))
} else {
  msg.reply("You didn't mention a channel")
}
//...
我正在使用最新版本的Discord JS(12.4.0)
我怎样才能解决这个问题?提前感谢:)

/。。。
//msg是消息对象
if(msg.indications.channels.first()){
const chan=msg.indications.channels.first()
chan.updateOverwrite(msg.guild.id,{SEND_MESSAGES:false}).catch((错误)=>console.log(错误))
}否则{
msg.reply(“您没有提到频道”)
}
//…
您只需要
message.channel.updateOverwrite(message.channel.guild.roles.everyone,{SEND_MESSAGES:false})
从已定义的频道替换message.channel,完成

如果您使用的是12.4,
find('name','everybody')
已经过时。看哦,哇,谢谢,这似乎解决了问题。