2017-07-13 8 views
-3

私は、プレフィックスの後に前述のユーザがボットPMを持つコマンドを作成しようとしています。どうすればいい?discord.jsコマンドを使用してユーザにメッセージを投稿する

+0

私はよく分かりません。あなたは!pm @user helloのようなコマンドを意味しますか?そして、ボットのpms悲しいユーザーは "こんにちは"と言っていますか? – Wright

+0

私は、実際のメッセージ自体を入力するのではなく、そのようなコマンドを意味します。私が行うのは、あらかじめタイプされた実際のメッセージを表す2文字のタイプです。 – Christopher

答えて

0

ご迷惑をおかけしました。私のコメントで明確化を求めた後、眠りにつく。あなたのキー(文字)をメッセージにマッピングするオブジェクトを作るだけです。

let messageObject = { 
    ab: "This is a message that sent from the keyword ab.", 
    vd: "This is another message that sent from the keyword vd", 
    test: "And a third diff message that sent from the keyword test" 
}; 

client.on("message", message => { 
    if(message.content.toLowerCase().startsWith("!dm")) { 
     let args = message.content.split(" ").slice(1); 
     let user = message.guild.member(args[0].replace(/[<@!>]/g,"")).user; 
     let keyword= args[1]; 

     if(keyword in messageObject){ 
      return user.send(messageObject[keyword]); 
     } 
     return message.channel.send("That is not a valid keyword!"); 
    } 
}); 
+0

私はあなたのコードを試してみました。私のために、それは動作していないようです。私のボットは私をまったく撫でていません。 – Christopher

+0

何かエラーが投げられましたか?あなたはボットトークン@Christopher以外のコード全体にリンクすることができます。 – Wright

+0

"TypeError:プロパティを読み取ることができません ''未定義の置換 ' – Christopher

0

nodeとdiscord.jsの最新バージョンを使用していることを確認してください。最近のディスカッションではdiscord.jsのアップデートが追加されました。

bot.on('message', message => { 
    if (message.content.startsWith(prefix + "pm")) { 
    for (let user of message.mentions.users.values()) { 
     if (message.content.includes("a couple letters")) { 
     user.send("pre-recorded message"); 
     } else if (message.content.includes("different letters")) { 
     user.send(" a different pre-recorded message"); 
     } 
    } 
    } 
}); 
関連する問題