如何使该机器人在前缀和答案之后监听参数?

时间:2020-05-06 13:05:09

标签: discord discord.js

所以我正在尝试这个8ball机器人,并且一切都正常,但是我无法获得如何离开的条件,只有当机器人获得“!verda arg1 arg2”时,它才能回答其中的一个回复数组。

同时,我的条件是如果用户仅输入前缀“!verda”,它会答复,我也想在条件中包括参数

const Discord = require("discord.js");
const client = new Discord.Client();

const cfg = require("./config.json");

const prefix = cfg.prefix;

client.on("message", msg => {
    if (!msg.content.startsWith(prefix) || msg.author.bot) return;

    const args = msg.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase;

    if (msg.content === prefix){
        let replies = [
            "Yes.",
            "No.",
            "I don't know.",
            "Maybe."
        ];
        let result = Math.floor((Math.random() * replies.length));
        msg.channel.send(replies[result]);
    }


    else if (msg.content === "!help"){
        msg.channel.send("I have only 1 command [!verda]");
    }


})

client.login(cfg.token);

2 个答案:

答案 0 :(得分:0)

答案很简单,我只想加入空格

if (msg.content === `${prefix} ${args.join(" ")}`)

答案 1 :(得分:0)

const command = args.shift().toLowerCase;

toLowerCase是一个函数,因此应该是

const command = args.shift().toLowerCase();

通过执行msg.content === prefix,您正在检查邮件的全部内容是否等于cfg.prefix

if(msg.content.startsWith(`${prefix}8ball`) {

}