2017-08-16 24 views
0

私は現在、discord.jsライブラリとnode.jsを使用して、1つの機能(プライベートメッセージング担当者)のディスボートボットを作成しています。discord.jsでプライベートメッセージを送信

ユーザーがチャネル内で「/ talkto @ bob#2301」のようなものを言うと、ボットPMは@ bob#2301というメッセージを表示します。

私が知りたいのは...ボットメッセージを特定のユーザーにするにはどうすればいいですか(私が知っているのは、現在、 '/ talkto'の作者にメッセージを送る方法です)、どうすればいいですか?ボットはコマンド内でメッセージを送る必要のあるユーザーを見つけることができます。 (/ talkto @ryanメッセージライアン、および/ talktoの@danielメッセージダニエルなどようにするため)

私の現在の(不正なコードが)これです:

client.on('message', (message) => { 
    if(message.content == '/talkto') { 
     if(messagementions.users) { //It needs to find a user mention in the message 
      message.author.send('Hello!'); //It needs to send this message to the mentioned user 
    } 
} 

私はドキュメントを読んだが、私は見つけますそれは理解することが難しい、私は助けていただければ幸いです!

答えて

1

Userオブジェクトには、sendメソッドがあります。したがって、なぜmessage.author.send ... message.authorを使用できるのかは、メッセージを送信しているユーザーのオブジェクトを参照してください。代わりに、指定したユーザーに送信するだけです。また、if(message.content == "/talkto")を使用すると、メッセージ全体が/ talktoの場合のみ実行されます。意味、あなたは/ talkto @meを持つことはできません。 message.content.startsWith()を使用してください。

client.on('message', (message) => { 
    if(message.content.startsWith("/talkto")) { 
     let messageToSend = message.content.split(" ").slice(2).join(" "); 
     let userToSend = message.mentions.users.first(); 

     //sending the message 
     userToSend.send(messagToSend); 
    } 
} 

使用例:

/talkto @wrightこんにちは、これはDMです!

関連する問題