jsfiles.forEach((f,i) =>{
let props = require(`./cmds/${f}`);
console.log(`${i+1}.${f} Загружен!`);
robot.commands.set(props.help.name, props);
})
регулярные выражения,
@param {String|Number|Function|RegExp} - задает шаблон соответствия для части
* команды. Шаблон может быть строкой, числом, функцией и
* регулярным выражением. В случае если шаблон это функция, то
* она должна возвращать true если текущая часть команды
* соответствует условиям и false если нетсам код достаточно сложный
Шаг влево, шаг вправо - все сломалось
много лишних проверок, строка ли то, регулярка ли это...
если я мог бы использовать как и префикс !, так и целую фразу
/* main.js */
const router = new Router({ prefix: ["Бот, ", "Bot, "] });
router.command(["переведи", "transfer"], new PayCommand());
/* onMessage */
router.route("Бот, переведи другу 100руб"); // PayCommand -> execute(<bot instance>, ["другу", "100руб"]);
router.route("Bot, transfer friend 100$"); // PayCommand -> execute(<bot instance>, ["friend", "100$"]);
/* где-то в файлах */
class PayCommand extends router.Command {
execute(bot, args) {
...
}
}
IMHO, cамый крутой обработчик, который я только видел: (не силен в JS, но вроде так)
const args = command.sub(prefix.length).split(/\s+/g);
const cmd = args.shift();
Если префикс - "!", а команда "!help me" выдаст: cmd = "help", args = ["me"].
/* где-то в файлах */
class PayCommand extends router.Command {
// тут
}