2017-10-22 22 views
0

"Discord.JS"を使用してDiscordのボットを作成しています イントロメッセージを作成しようとしていますが、「 'sendMessage'プロパティを読み取れませんウェルカムメッセージのための未定義」Discord.JS関数エラー、 "ウェルカムメッセージ"

マイコード:

var bot = new Discord.Client(); 

bot.on("guildMemberAdd", member => { 
    let mem = member.guild 
    mem.defaultChannel.sendMessage(member.user + " welcome to the server!"); }); 

任意のヘルプ?そのような確執でコンセプトやits APIが存在しないため、

+0

かなり明らかです...' mem.defaultChannel'は 'undefined'です。 –

+0

@AndréDionそれは明らかですが、なぜここでは定義されませんか? – JLRishe

答えて

0

Reading about how Discord.js worksdefaultChannelは誤った名称であるように思わ:

ギルド現実に

#general TextChannel、#generalチャンネルの名前を変更することができ、したがって、defaultChannelは、undefinedとすることができます。あなたはsendMessageにあなたの電話を保護する必要があります。

var bot = new Discord.Client(); 

bot.on("guildMemberAdd", member => { 
    let mem = member.guild; 

    if (mem.defaultChannel) { 
     mem.defaultChannel.sendMessage(member.user + " welcome to the server!"); 
    } else { 
     // do something if the #general channel isn't available 
    } 
}); 
0

私はこれを行うための適切な方法を信じて、アンドレが指摘するようにすればいいですか?は、未定義することができますので、IDまたは名前でチャンネルを取得することです。

これを行う簡単な方法は、メンバーが残し&に参加するためである。その後、右チャンネルを右クリックして「コピーIDをクリックすると、ユーザー設定>外観>、デベロッパーモードに行くことによって上

bot.on('guildMemberAdd', member => { 
    member.guild.channels.get('channelID').send('**' + member.user.username + '**, has joined the server!'); 
}); 

bot.on('guildMemberRemove', member => { 
    member.guild.channels.get('channelID').send('**' + member.user.username + '**, has left the server'); 
    // 
}); 

ターン開発者モード"

関連する問題