Discordボットを開発しようとしていますが、誰かがサーバーに追加されたときにグリーティングメッセージを送信したいと思っています。このエラーが発生します:
/perso-workspace/discordtest/index.js:31
guild.defaultChannel.send(`Bienvenue ${member.user} sur mon serveur Discord ! `).catch(console.error);
^
TypeError: Cannot read property 'send' of undefined
at Client.bot.on.member (/home/spoisson/Documents/perso-workspace/discordtest/index.js:31:26)
at Client.emit (events.js:189:13)
at Guild._addMember (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/discord.js/src/structures/Guild.js:1192:19)
at GuildMemberAddHandler.handle (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/discord.js/src/client/websocket/packets/handlers/GuildMemberAdd.js:12:13)
at WebSocketPacketManager.handle (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:103:65)
at WebSocketConnection.onPacket (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)
at WebSocket.onMessage (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/ws/lib/event-target.js:120:16)
at WebSocket.emit (events.js:189:13)
at Receiver._receiver.onmessage (/home/spoisson/Documents/perso-workspace/discordtest/node_modules/ws/lib/websocket.js:137:47)
これが私のコードです:
const Discord = require('discord.js')
const bot = new Discord.Client()
bot.on('ready', function(){
console.log('I am ready to learn !')
})
bot.on('message', function (message){
if (message.content === '!ping') {
message.channel.send('Pong !')
}
})
bot.on("guildMemberAdd", member => {
let guild = member.guild;
console.log('Guild is ' + guild + ' and member is ' + member.user)
guild.defaultChannel.send(`Bienvenue ${member.user} sur mon serveur Discord ! `).catch(console.error);
});
bot.login('i_set_my_token_here')
私はすでにYouTubeなどでさまざまなチュートリアルを試しましたが、私が見ている人との違いがわかりません。最初のコマンド(!ping)はうまく機能しています。ボットにアクティビティを設定することができました。
これdefaultChannel
は非推奨であることがわかりましたが、必要なものに一致するものは見つかりませんでした。
誰かがこのエラーの答え/修正に私を導くことができますか?
新しい不和サーバーにはデフォルトのチャネルがなくなったため、Guild#defaultChannel
非推奨になり、新しいギルドでは未定義を返します。
ボットに名前だけでチャネルを検索させたい場合は、次を使用できます。
guild.channels.find(channel => channel.name === 'general-chat');
可能なチャネル名のリストを繰り返し処理して、より多くのチャネルを許可することも、ログチャネルを設定する構成にすることもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加