2017-09-04 40 views
0

我想讓我的機器人(公共)可以在特定頻道和特定服務器中發送消息。但是,我有一個錯誤......這是我的代碼: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}>`)}) 
    } 
}) 

而且,我的錯誤:類型錯誤:無法讀取屬性未定義

回答

0

這個錯誤的「發送」(在你的情況下)意味着你的變量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

+0

我已經嘗試你的代碼,我現在已經這個錯誤: [錯誤]類型錯誤:無法讀取屬性「送'undefined :c – SplatingWorld

+0

@SplatingWorld,你明白我的答案嗎? (它不僅複製粘貼) – EMX

+0

是的,對不起......:c – SplatingWorld

0

你可以嘗試這樣的東西:

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}>`)}) 
    } 
}) 

相關問題