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

Создание команд в боте

Команды - это основной способ взаимодействия пользователя с ботом. Каждая команда представляет определенное действие, которое можно выполнить с помощью бота. Например, получить текущую погоду, перевести текст или поиграть в игру.

Шаг 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!