Создание команд в боте
Команды - это основной способ взаимодействия пользователя с ботом. Каждая команда представляет определенное действие, которое можно выполнить с помощью бота. Например, получить текущую погоду, перевести текст или поиграть в игру.
Шаг 1: Создайте свою первую команду
Давайте создадим команду HelloCommand
, которая просто отправляет пользователю сообщение "Hello, world!".
import { Command, UserMessageContext } from "evogram";
@CommandHandler("hello")
class HelloCommand extends Command {
public async execute(message: UserMessageContext){
message.reply("Hello, world!");
}
}
Шаг 2: Обработка параметров команды
Часто команды требуют дополнительных параметров, чтобы выполнить определенное действие. Например, для команды TranslateCommand
может потребоваться указать язык, на который нужно перевести текст. Давайте модифицируем нашу команду HelloCommand
, чтобы она могла принимать параметры из сообщения пользователя.
import { Command, UserMessageContext } from "evogram";
@CommandHandler({
name: "hello",
args: {
method: "fulltext",
value: ["name"]
}
})
export class HelloCommand extends Command {
public async execute(message: UserMessageContext, data: ICommandExecuteData): Promise<void> {
message.reply(`Hello, ${data.args.name}!`);
}
}
В этом примере мы использовали декоратор @CommandHandler
для определения названия команды и ее параметров. Мы задали название команды как "hello", а параметры - имя пользователя (name
), передаваемое текстом после команды. Затем мы модифицировали метод execute
, чтобы он мог использовать данные из команды, принятой от пользователя. В данном случае мы использовали параметр data
для доступа к значениям параметров команды. После этого мы передаем имя пользователя в ответ сообщением пользователю с помощью метода message.reply
.
Шаг 3: Регистрация команд
Теперь, когда у нас есть команда, нужно зарегистрировать их в боте. Для этого достаточно импортировать класс с нашей командой.
// Импорт основного класса Evogram
import { Evogram } from 'evogram';
// Импортируем команду, которую мы сейчас создадим
import "./commands/hello.ts"
// Авторизуем бота, используя токен API
const client = new Evogram("YOUR_TOKEN");
// Запуск бота с помощью LongPoll
client.updates.polling.start();
Шаг 4: Вызов команды
Теперь пользователи могут вызывать нашу команду, отправляя сообщения боту. Давайте посмотрим, как это работает.
> /hello Jane
Bot: Hello, Jane!