2017-11-15 1 views
-2

私は現在、不協和音ボットを作成しようとしています。私はそれをしようとしているコマンドに困惑しています。このコマンドは、ボットによって送信された秘密のDMメッセージであるはずです。とにかくこれをやることがあったのだろうかと思っていたのですが?コマンドは次のようになっています:私は、不和ボットの直接メッセージを入力するときに助けが必要です

/dm @PLAYER#000 [message_goes_here]

プリーズヘルプ!

答えて

0

のステップでこの手順を実行してみましょう:

@プレーヤー#0000が言及している場合は、そのユーザーにメッセージを送信するには今すぐmsg.mentions[0].を使用してプレイヤー#0000のUserオブジェクトを取得することができます:

まずあなたがメッセージをコマンドから分離する必要があります。 msg.toString()を使用すると、メッセージはユーザ名の空白を考慮して、< @ ID>に変換されたメッセージを取得できます。今すぐmsg.toString().split(' ')shift()を2回使用してメッセージを分割すると、join(' ')とメッセージが表示されます。

User.send()を使用すると、そのユーザーにメッセージを送信できます。ここで

は、最終結果がどのように見えるかです:私が実行しようとすると、この例では、実際に(メッセージを送信しない場合など)、エラー

+0

をカバーしていないことを

bot.on('message', message => { if (message.content.startsWith('/dm ') && message.mentions.users.size) { var v=message.toString().split(' ').shift().shift().join(' ') // Takes the DM content from the message var member=message.mentions.users[0] // The mentioned user member.send(v) // send that user a DM } }) 

注意このコードでは、 'message.startsWithは2行目の関数ではありません。 'というエラーが出ます。何故ですか? –

+0

私の悪い、 'message.content.startsWith()'、メッセージは文字列ではありません。 – LW001

+0

それでは、 'message.content.startsWith()'を何に置き換えるべきですか? –

関連する問題