2017-12-13 33 views
1

私は誰かに言ってもらうための方法を見つけることができないと思うのですが、それは指定されたプレイヤーにしか行きません。ここでは例です:メッセージdm in chat Discord.js

CoolGuyのメッセージ: "!DM Moogstirこんにちは"

レシーバ(Moogstir): "-CoolGuy こんにちは"

はここに私のコードは次のとおりです。

const Discord = require('discord.js'); 
const bot = new Discord.Client(); 
const Player = new Discord.Client(); 

bot.on('ready',() => { 
    console.log(`It's an owl! It's a Bagel! NO It's a ${bot.user.tag}`) 
}); 

Player.on('message', (message) => { 



    if (message.author.bot) return; 
    const args = message.content.split(/ +/g); 
    const command = args.shift().toLowerCase(); 

    if(command === `!dm ` + `${player.user.tag}` + `${message.content}`) { 
     message.Player.sendMessage(`-${message.author}` + "\n" + 
`${message.content}`); 
    } 

}); 
+0

コードを実行するとどうなりますか? 'sendMessage'を' send'に置き換えてみてください。 'sendMessage'は廃止されました。 –

答えて

0

へメッセージの作成者にメッセージを送信するmessage.reply(``);

著者以外の誰かに行くメッセージがない場合は、受信者のID /ユーザー名を取得し、それをコレクションに渡して見つける必要があります。例:collection.find('username', 'myUsername');

sendMessageまた、サーバーのチャネルに送信する場合はにする必要があります。

基礎を理解するには、documentationを読んでください。最初は紛らわしいものもありますが、それをプレイするほど意味があるようになります。

編集:clientまたはbotの代わりにplayerという名前のクライアントを指定した理由がわかりませんが、後で混乱を避けるために変更することをおすすめします。

+0

ありがとう、これは束に役立ちます! :D –

0

これについてはさまざまな方法がありますが、ここでは最も単純な方法の1つです。あなたのコマンド!dmを実行した後

//command: !dm @user <message> 
let user = message.mentions.users.first(); //grabbing the user mention 
user.send(<message here>); 

、コードは、ユーザーの言及を見つけ、その後、ユーザーdm messageを送信します。

サイドノート:なぜ2つの異なるクライアントを使用するのですか? botを使用するか、playerを使用してください。

+0

ありがとう!私はまだこれで多くをやろうとしています、ありがとう! –

+0

問題はありませんが、間違いました。それは 'message.mentions.members.first();'でなければなりません。 –