Discordボットでグリーティングメッセージを送信する方法-NodeJS

スティアン

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は非推奨であることがわかりましたが、必要なものに一致するものは見つかりませんでした。

誰かがこのエラーの答え/修正に私を導くことができますか?

SebastiaanYN

新しい不和サーバーにはデフォルトのチャネルがなくなったため、Guild#defaultChannel非推奨になり、新しいギルドでは未定義を返します。

ボットに名前だけでチャネルを検索させたい場合は、次を使用できます。

guild.channels.find(channel => channel.name === 'general-chat');

可能なチャネル名のリストを繰り返し処理して、より多くのチャネルを許可することも、ログチャネルを設定する構成にすることもできます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

NodeJSのdiscordボットコマンドでエラーが発生する空のメッセージを送信できません

分類Dev

テレグラムボット(telegraf)、nodejsでマークダウンテキストを送信する

分類Dev

Facebookメッセンジャー:nodejsで複数のメッセージを送信する方法

分類Dev

nodejs暗号ライブラリでaescfbフィードバックセグメントサイズを設定する方法は?

分類Dev

グローバルスコープでルーティングする前にNodeJS(Express)でヘッダーをインターセプトする

分類Dev

nodejsスクリプトからテレグラムへのダイレクトメッセージの送信

分類Dev

NodeJSで双方向デュプレックスストリームをコーディングする方法

分類Dev

nodejsで書かれたスラックボットを使用してスラックメッセージの共有可能なリンクを取得するには?

分類Dev

電子のレンダリングプロセスでnodejsコードをデバッグする方法は?

分類Dev

AWSSQSメッセージポーリングをNodejs + Koaアプリケーションで使用する必要がありますか?

分類Dev

Azureでnodejsバージョンをアップグレードする方法

分類Dev

ボットフレームワークsdkv4nodeJSでリストアイテムを送信する

分類Dev

ボットフレームワークは、プロアクティブメッセージを送信するためにCosmosDBからユーザーアドレスを取得しますNODEJS

分類Dev

Nodejs、Express、WebSockets:送信者以外のすべてのクライアントにメッセージを中継する

分類Dev

NodeJSチャットアプリでメッセージを揃える

分類Dev

NodeJSの複数のKafkaトピックパーティションにデータを送信する方法

分類Dev

nodejs- kafka-nodemodule-各パーティションから同じメッセージを取得する

分類Dev

VS CodeでNodeJSテストスイートをインタラクティブにデバッグする方法は?

分類Dev

NodeJS Webhook + CasperJS を使用した FB メッセンジャー ボット

分類Dev

NodeJSで正しい順序でメッセージを配信する方法は?

分類Dev

nodejsストリームをリセットする方法は?

分類Dev

nodejsを最新バージョンにアップグレードする方法

分類Dev

NodeJS、グーグルAPIを使用してリフレッシュトークンで新しいトークンを取得する方法は?

分類Dev

socket.ioを使用してnodejsのクライアントにメッセージを送信できません

分類Dev

テレグラムインラインボットでメッセージを送信する方法

分類Dev

ページの読み込み間でnodejsチャットアプリケーションウィジェットを保持する方法は?

分類Dev

Linuxでシェルスクリプトを実行中にnodejsが不要なメッセージを表示する

分類Dev

「JavaScriptヒープのメモリ不足」(NodeJS)でデータをgzipファイルにストリーミングするとクラッシュする

分類Dev

nodejsアプリケーション用にDockerでユニットテストをセットアップする方法は?

Related 関連記事

  1. 1

    NodeJSのdiscordボットコマンドでエラーが発生する空のメッセージを送信できません

  2. 2

    テレグラムボット(telegraf)、nodejsでマークダウンテキストを送信する

  3. 3

    Facebookメッセンジャー:nodejsで複数のメッセージを送信する方法

  4. 4

    nodejs暗号ライブラリでaescfbフィードバックセグメントサイズを設定する方法は?

  5. 5

    グローバルスコープでルーティングする前にNodeJS(Express)でヘッダーをインターセプトする

  6. 6

    nodejsスクリプトからテレグラムへのダイレクトメッセージの送信

  7. 7

    NodeJSで双方向デュプレックスストリームをコーディングする方法

  8. 8

    nodejsで書かれたスラックボットを使用してスラックメッセージの共有可能なリンクを取得するには?

  9. 9

    電子のレンダリングプロセスでnodejsコードをデバッグする方法は?

  10. 10

    AWSSQSメッセージポーリングをNodejs + Koaアプリケーションで使用する必要がありますか?

  11. 11

    Azureでnodejsバージョンをアップグレードする方法

  12. 12

    ボットフレームワークsdkv4nodeJSでリストアイテムを送信する

  13. 13

    ボットフレームワークは、プロアクティブメッセージを送信するためにCosmosDBからユーザーアドレスを取得しますNODEJS

  14. 14

    Nodejs、Express、WebSockets:送信者以外のすべてのクライアントにメッセージを中継する

  15. 15

    NodeJSチャットアプリでメッセージを揃える

  16. 16

    NodeJSの複数のKafkaトピックパーティションにデータを送信する方法

  17. 17

    nodejs- kafka-nodemodule-各パーティションから同じメッセージを取得する

  18. 18

    VS CodeでNodeJSテストスイートをインタラクティブにデバッグする方法は?

  19. 19

    NodeJS Webhook + CasperJS を使用した FB メッセンジャー ボット

  20. 20

    NodeJSで正しい順序でメッセージを配信する方法は?

  21. 21

    nodejsストリームをリセットする方法は?

  22. 22

    nodejsを最新バージョンにアップグレードする方法

  23. 23

    NodeJS、グーグルAPIを使用してリフレッシュトークンで新しいトークンを取得する方法は?

  24. 24

    socket.ioを使用してnodejsのクライアントにメッセージを送信できません

  25. 25

    テレグラムインラインボットでメッセージを送信する方法

  26. 26

    ページの読み込み間でnodejsチャットアプリケーションウィジェットを保持する方法は?

  27. 27

    Linuxでシェルスクリプトを実行中にnodejsが不要なメッセージを表示する

  28. 28

    「JavaScriptヒープのメモリ不足」(NodeJS)でデータをgzipファイルにストリーミングするとクラッシュする

  29. 29

    nodejsアプリケーション用にDockerでユニットテストをセットアップする方法は?

ホットタグ

アーカイブ