我的不和谐机器人一次发送多条消息,而不是一条

时间:2021-07-17 18:26:23

标签: javascript

我是 Javascript 和 Discord Bots 的新手。我正在尝试制作一个简单的机器人,它只复制用户所说的内容,然后将准确的消息发回。但我遇到了困难,因为出于某种原因,机器人会一次发送多条消息,而不是一条消息。

这是我的代码:

var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
    colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
   token: auth.token,
   autorun: true
});
bot.on('ready', function (evt) {
    logger.info('Connected');
    logger.info('Logged in as: ');
    logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', function (user, userID, channelID, message, evt) {

    if (message) {
        var messageArray = message.substring(0).split(' ');
        var recentMessage = messageArray[0];
       
        messageArray = messageArray.splice(1);
        switch(recentMessage) {
            default:
                bot.sendMessage({
                    to:channelID,
                    message: recentMessage
                })
                break;
         }
     }
});

谢谢

1 个答案:

答案 0 :(得分:2)

如果您查看 discord ping example,您可以使用 message.content 访问消息的内容。我不确定,但您的代码看起来像是将 message 对象分开,这可能就是您收到多条消息的原因。

您可以尝试将代码更改为:

bot.on('message', function (message) {
   // Send message back on the same channel
   message.channel.send(message.content);
});

或回复

bot.on('message', function (message) {
   // Reply to message with the same message
   message.reply(message.content);
});