2017-09-20 4 views
1

私はバックグラウンドで24時間365日動作するコードをJavaScriptで持っています。私はdiscord.jsボットを設定して、何か(エラーのような)が常に実行されているコード上で起こった場合にメッセージを出力したいと思います。Discord Botはコマンドなしでメッセージを送信します

どのようにメッセージを聞くことなくどのチャンネルにメッセージを送信しますか?すべてのチュートリアルでは、COMMANDに依存してボットをあなたに返信させるコマンドを作成します。私は最初のメッセージを送ってきたボットをボットにして、返事を読んでそれに応じて行動したい。

現在、discord.jsノードライブラリ(https://discord.js.org/)を使用しています。

これは可能ですか?

答えて

2

名前でチャネルキャッシュからチャネルのリストを取得し、error eventのイベントリスナーをウィンドウに追加します。エラーが検出された場合は、channelにメッセージを送信してください。

var client = new Discord.Client(); 
var channel = client.channels.get('name', nameOfChannel); // or client.channels.get("the channel id") 

window.addEventListener('onError', function(e) { 
    channel.send(e.error.message) // or client.sendMessage(channel, e.error.message) in older versions; 
}); 
+0

EventListenerを入力しますか?またはif文の中のclient.sendMessageだけを使用できますか? –

+0

また、私はあなたのコードを実行したときにこれを取得しました:TypeError:client.sendMessageは関数ではありません –

+1

@GalAppelbaum 'channel'はあなたの対象チャネルでなければならない' channel.sendMessageボット自体。また、可能です。 Ori Droriがここでやっているのは、エラーが検出された場合、ボットは最初にターゲットチャネル**にメッセージを送信します**だけです。他のイベントハンドラで置き換えることもできます。 (例:ボットがログインしたときにメッセージを送信するか、新しいユーザーがサーバーに入るたびにメッセージを送信させる) – WQYeo

関連する問題