Перейти к основному содержимому

Получение аргументов команды

Допустим, нам нужно узнать сколько лет пользователю. Запрос аргументов доступен прямо из коробки модуля, нужно лишь указать какие аргументы требуются.

Настройка аргументов команды

Вся настройка происходит в 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 ? `Вы уже совершенно летний!` : `Вы еще несовершеннолетний :(`);
}
}
к сведению

Подробнее про аргументы команд вы можете прочитать здесь