首页 > 解决方案 > 我的不和谐机器人一次发送多条消息,而不仅仅是一条消息

问题描述

我是 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;
         }
     }
});

谢谢

标签: javascript

解决方案


如果您查看discord ping 示例,您可以使用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);
});

推荐阅读