【发布时间】:2019-07-28 08:38:07
【问题描述】:
我以前从未编写过 Discord Bot,但我熟悉 Javascript,所以我想我会试一试。我使用了来自该站点 Digital Trends 的初学者文件,但遇到了一些问题。
我在我的服务器中运行了机器人,并且基本命令从“!”交换到 ”?”并且包含的命令“?ping”确实返回了预期的响应“Pong!”
我运行一个服务器,我们每个月都会在该服务器上启动一个视频游戏,并在此过程中一边讨论一边玩,类似于读书俱乐部。所以我正在尝试创建一个频道,人们可以使用机器人命令推荐游戏,因为我不相信他们可以自己处理遵循简单的规则。
我想弄清楚的是如何去接受用户命令:
?gs "Video Game Title" "Platform"
让机器人删除命令并重新发布为:
@user 为平台
推荐了视频游戏标题
同时还添加了反应表情符号“????”和 ”????”允许其他用户投票。
我不是要求任何人为我做这件事,只是为了帮助我指出正确的方向,即如何使用 JS(如果可能的话)使用 Discord 进行编码
这是我当前的“bot.js”代码:
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) {
// Our bot needs to know if it will execute a command
// It will listen for messages that will start with `!`
if (message.substring(0, 1) == '?') {
var args = message.substring(1).split(' ');
var cmd = args[0];
args = args.splice(1);
switch(cmd) {
// !ping
case 'ping':
bot.sendMessage({
to: channelID,
message: 'Pong!'
});
break;
// Just add any case commands if you want to..
}
}
});
【问题讨论】:
-
很好地解析您的消息以检索您想要的值(您的游戏标题和您的平台)将是第一步......并将 gs 命令添加到您的 switch case。好吧,基本上至少试一试不?这只是基本代码
-
这是真的,这就是所有的基础——我尝试过的一切都打破了它。我要么没有很好地阅读“How-to”文章,要么我对 JS 的了解太少了,以至于我无法理解了。
-
我没有编写 Discord 机器人的经验,但我在
switch语句之前看到了args = args.splice(1)。您应该记录此变量以查看其中的内容。 -
那么你应该阅读一些 JS 中的字符串操作,因为基本上就是这样。您有完整的消息,您需要对其进行解析,以便检索稍后将使用的变量。这将是您的第一步。在那之后,它与不和谐的机器人代码有关,我真的没有任何经验
标签: javascript discord discord.io