Discord 当你不提时,机器人崩溃了
我在我的机器人上有这个命令,你可以使用命令g使某人静音!在使用@提及“用户”时静音。但是,如果您不提及例如GeoGeo而不是@GeoGeo,则会导致bot崩溃。我知道您需要放置.catch(console.error);在某个地方,但我不知道在哪里。提前谢谢。错误是Discord 当你不提时,机器人崩溃了,discord,discord.js,Discord,Discord.js,我在我的机器人上有这个命令,你可以使用命令g使某人静音!在使用@提及“用户”时静音。但是,如果您不提及例如GeoGeo而不是@GeoGeo,则会导致bot崩溃。我知道您需要放置.catch(console.error);在某个地方,但我不知道在哪里。提前谢谢。错误是 let person=message.guild.member(message.indications.users.first()| | message.guild.members.get(args[1])) ^ TypeError
let person=message.guild.member(message.indications.users.first()| | message.guild.members.get(args[1]))
^
TypeError:message.guild.members.get不是函数
代码:
const Discord=require('Discord.js');
常数ms=要求('ms');
module.exports={
名称:“静音”,
description:“这是静音命令”,
执行(消息,参数){
如果(!message.member.roles.cache.find(r=>r.name==“Staff”、“Head Staff”、“Owner”、“Co Owner”))返回message.channel.send(`您没有这样做的权限')
让members=args[0];
如果(!members)返回message.reply(“g!mute”)
让person=message.guild.member(message.indications.users.first()| | message.guild.members.get(args[1]))
if(!person)返回message.reply(“该人不在服务器中!”);
让mainrole=message.guild.roles.cache.find(role=>role.name==“Fans”);
让muterole=message.guild.roles.cache.find(role=>role.name==“muted”);
if(!muterole)返回message.reply(“该角色不存在”);
let time=args[1];
如果(!时间){
返回消息。回复(“g!静音”);
}
person.roles.remove(mainrole.id);
person.roles.add(muterole.id);
const embed=new Discord.MessageEmbed()
.setTitle(“静音:)
.setDescription(${person.user.tag}现在已被${ms(ms(time))}静音`)
.setColor(0x01B8FF)
message.channel.send(嵌入);
setTimeout(函数(){
person.roles.add(mainrole.id)
person.roles.remove(muterole.id)
const embed=new Discord.MessageEmbed()
.setTitle(“静音:)
.setDescription(`${person.user.tag}已取消静音`)
.setColor(0x01B8FF)
message.channel.send(嵌入);
}ms(时间);
}
}
当遇到如下错误时:TypeError:message.guild.members.get不是函数
合乎逻辑的做法是检查文档,以查看message.guild.members
确实有一个名为get
的函数。以下是文件:
否get
。但是有一个缓存
,就像您在代码中的其他地方使用的一样。只需检查文档,您就可以知道您现有的代码是错误的(已经过时),并且您需要像代码中的其他地方一样使用cache
:
message.guild.members.cache.get(args[1])
如果您正在崩溃,则会出现错误。错误会告诉您确切的问题以及要更改的行。这是第一、第二和第三个解决问题的地方,如果你遇到问题,你也应该与我们分享。我添加了错误