Получение аргументов команды
Допустим, нам нужно узнать сколько лет пользователю. Запрос аргументов доступен прямо из коробки модуля, нужно лишь указать какие аргументы требуются.
Настройка аргументов команды
Вся настройка происходит в CommandHandler. Чтобы указать, что мы хотим запрашивать сколько лет пользователю, изменим код команды /start:
/src/commands/start.ts
import { Command, CommandHandler, MessageContext, ICommandExecuteData } from "evogram"
@CommandHandler({
name: "start",
args: {
// Метод принятия аргументов.
method: "stdin",
// В массиве указываем какие аргументы нам требуются.
// Сначала передается название аргумента, это обязательно, а дальше параметры к этому аргументу (question используется при методе stdin), они необязательны
value: [["age", { question: "Сколько вам лет?" }]]
}
})
class StartCommand extends Command {
execute(message: MessageContext, data: ICommandExecuteData) {
if(!Number(data.args?.age)) return message.send("Я не понял сколько вам лет, попробуйте еще раз!");
message.send(Number(data.args.age) >= 18 ? `Вы уже совершенно летний!` : `Вы еще несовершеннолетний :(`);
}
}
к сведению
Подробнее про аргументы команд вы можете прочитать здесь