javascript - 为初学者创建 Discord Bot
问题描述
我以前从未编写过 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..
}
}
});
解决方案
args = args.splice(1);
此行不正确,args
(作为字符串)没有.splice()
方法。(我经常.slice()
感到.split()
困惑,所以这也经常发生在我身上!)
相反,使用:
args = args.split(" ").slice(1);
推荐阅读
- visual-studio-code - 缺少(找不到)工作区的文件夹路径配置设置
- node.js - 无法访问在 connection.query 函数中声明的变量
- python-3.x - “为什么加载值和 CSV 文件值显示不同?”
- html - 在导航链接之间放置分隔线的正确方法是什么?
- java - 如何将日期从 mm/dd/yyyy 转换为 mm dd, yyyy
- mysql - 如果mysql关闭/失败,如何修复“未知变量'nnodb_buffer_pool_size”?
- sql - 我怎样才能将这些查询连接在一起?
- .net - 在 spa 和 api rest .net core 之间共享 cookie
- ruby - 枚举期间正在修改数组
- python - Twilo python Flask传递参数