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