Как заставить этого бота слушать аргумент после префикса и ответа? - PullRequest
0 голосов
/ 06 мая 2020

поэтому я пробую этого бота 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 голосов
/ 07 мая 2020
const command = args.shift().toLowerCase;

toLowerCase - это функция и, следовательно, должна быть

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

Выполняя msg.content === prefix, вы проверяете, совпадает ли все содержимое сообщения с cfg.prefix

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

}
0 голосов
/ 06 мая 2020

Ответ был прост, как я понял, мне просто пришлось соединить пробелы

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