Node.js Discord Bot:TypeError:无法读取未定义的属性'发送'
问题描述:
我想让我的机器人(公共)可以在特定频道和特定服务器中发送消息。但是,我有一个错误......这是我的代码:Node.js Discord Bot:TypeError:无法读取未定义的属性'发送'
client.on('message', msg => {
if (msg.content.startsWith('+specifictest')) {
var channellog = msg.client.channels.get('352496750327496725');
var guiiild = msg.client.guilds.get('343913599686934539').channellog;
guiiild.send({embed: new Discord.RichEmbed().setColor("#FFFFFF").setAuthor("Dessin").setDescription(`Demandé par <@${msg.author.id}>`)})
}
})
而且,我的错误:类型错误:无法读取属性未定义
答
这个错误的“发送”(在你的情况下)意味着你的变量guiiild
尚未正确填充,因此在尝试使用未提供的属性时(此例中为send
函数)出现意外故障。
的try/catch
你可以用它在try/catch block
:
client.on('message', msg => {
if (msg.content.startsWith('+specifictest')) {
try{
var channellog = msg.client.channels.get('352496750327496725');
var guiiild = msg.client.guilds.get('343913599686934539').channellog;
guiiild.send({embed: new Discord.RichEmbed().setColor("#FFFFFF").setAuthor("Dessin").setDescription(`Demandé par <@${msg.author.id}>`)})
}catch(e){console.log("[ERROR]",e)}
}
})
但它还是会给予你的错误,如果msg.client.guilds.get('343913599686934539').channellog
犯规返回包含.send
答
你可以尝试这样的东西:
client.channels.get("ID").send("Your message")
ID将是您想要发送消息的频道的ID。所以你的情况,请尝试:
client.on('message', msg => {
if (msg.content.startsWith('+specifictest')) {
client.channels.get("352496750327496725").send({embed: new Discord.RichEmbed().setColor("#FFFFFF").setAuthor("Dessin").setDescription(`Demandé par <@${msg.author.id}>`)})
}
})
我已经尝试你的代码,我现在已经这个错误: [错误]类型错误:无法读取属性“送'undefined :c – SplatingWorld
@SplatingWorld,你明白我的答案吗? (它不仅复制粘贴) – EMX
是的,对不起......:c – SplatingWorld