2017-10-30 23 views
0

私は基本的なボットの作成に取り組んでいます。何らかの理由で、ボットは1つのコマンドに複数回応答します。Discord.JS複数のメッセージの送受信

コード:

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

const PREFIX = "+"; 

var fortunes = [ 
"Yes", 
"No", 
"Maybe", 
" a wild swear has appeared" 
]; 

bot.on("message", message => { 

bot.on("message", function (message) { 
    if (message.author.equals(bot.user)) return; 


    if (!message.content.startsWith(PREFIX)) return; 

    var args = message.content.substring(PREFIX.length).split(" "); 


    switch (args[0].toLowerCase()) { 
     case "ping": 
      message.channel.send("Pong!") 
      break; 
     case "info": 
      message.channel.send("no") 
      break; 
     case "8ball": 
      if (args[1]) message.channel.sendMessage(fortunes[Math.floor(Math.random() * fortunes.length)]); 
      else message.channel.send("Cant read that") 
      break; 
     case "embed": 
      var embed = new Discord.RichEmbed() 
       .addField("Test Title", "test description"); 
      message.channel.sendEmbed(embed); 
      break; 
     case "noticeme": 
      console.log('Received #' + message.id + ': ' + message.content); 
      message.channel.send(message.author.toString() + " Senpai has noticed you") 
       .then(message => console.log('Sent #' + message.id + ': ' + message.content)) 
       .catch(console.error); 
      break; 



    } 
}); 
}); 













    bot.login("NOPE") 

ターミナル: terminal

は、コードは、メッセージ受信と送信を記録するように設定されています。場合によっては、一番上に表示されているように、コマンドは一度だけ実行されます。しかし、ほとんどの場合、コマンドは(少なくとも)4回繰り返されます。

+1

スクリーンショットイメージではなく質問内でテキストを出力する方が良い – MrJLP

+1

もう一度コードを実行してみてください。 APIは今日より少し不安定*でした – LW001

+0

これは不具合です。ちょうどプログラムを再起動すると、あなたは行くのが良いでしょう。 – Axium

答えて

0

私はこのが正確に問題を解決していますが、別のメッセージイベントでメッセージイベントを持っているかはわからない:

bot.on("message", message => { 
    bot.on("message", function (message) { 
     //other code here 
    }); 
}); 

あなたはおそらくそれらのいずれかを削除する必要があり、それは本当に問題ではありませんどれ。

関連する問題