【问题标题】:Discord Bot Creation for a Beginner为初学者创建 Discord Bot
【发布时间】: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


【解决方案1】:
args = args.splice(1);

此行不正确,args(作为字符串)没有.splice() 方法。 (我经常把.slice().split() 弄糊涂,所以我也经常遇到这种情况!)

改为:

args = args.split(" ").slice(1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2018-07-27
    相关资源
    最近更新 更多