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;
}
}
});
谢谢
解决方案
如果您查看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);
});
推荐阅读
- java - 是否可以在 Proto 枚举上定义方法?
- javascript - 使用 Javascript 将数组中的任意数量的项目加在一起
- c# - Visual Studio 代码:建议将此文件类型使用“C#”扩展名
- mysql - 如何将 Sybase ASE smalldatetime/datetime/bigdatetime 转换为标准格式
- python-3.x - 如何处理“输入包含无穷大或对于 dtype('float64') 来说太大的值”
- swift - 如何摆脱 Metal 中的模糊纹理?
- r - R包需要编译
- python - NetSuite SuiteTalk REST Web 服务 - 如何请求财务报表报告
- javascript - 使用单个 javascript 更改多个复选框的跨度
- c - 如何摆脱这种分段错误?