REPOSITORY / ScuroNeko/Laniakea

Wiki

KNOWLEDGE REPOSITORY
2
Auto Generated Commands RU
ScuroNeko edited this page 2026-03-30 00:11:30 +03:00

Auto-Generated Commands RU

English version: Auto-Generated-Commands

Это краткая русскоязычная версия страницы про автоматическую публикацию Telegram-команд. Полная и наиболее актуальная страница: Auto-Generated-Commands.

Что делает эта функция

Laniakea может пройтись по уже зарегистрированным командам плагинов, собрать подходящие команды и отправить их в Telegram через setMyCommands.

Для этого используются:

  • AutoGenerateCommands()
  • AutoGenerateCommandsForScope(...)

Это удобно, потому что не нужно вручную поддерживать отдельный список команд вне кода плагинов.

Откуда берутся команды

Автогенерация работает только по уже зарегистрированным командам.

Учитывается:

  • имя команды;
  • описание команды;
  • skip-флаги на уровне команды или плагина.

Не участвуют:

  • обработчики данных callback;
  • обработчики обновлений;
  • команды, которые ты явно исключил из автогенерации.

Когда вызывать

Обычный порядок такой:

  1. создать bot;
  2. создать плагины;
  3. зарегистрировать команды;
  4. добавить плагины через AddPlugins(...);
  5. вызвать AutoGenerateCommands() или AutoGenerateCommandsForScope(...);
  6. запустить bot.

Важно: AddPlugins(...) — это точка фиксации. Если ты меняешь плагин после регистрации, автогенерация не обязана увидеть эти изменения.

Ограничения Telegram

Для slash-команд Telegram накладывает свои правила:

  • имя команды должно быть коротким;
  • нельзя использовать произвольные символы;
  • существует лимит на количество команд в одном наборе.

Поэтому автогенерация удобна, но не отменяет необходимости держать command names аккуратными и валидными.

Scope-based регистрация

Если нужно публиковать разные команды для разных аудиторий, используй AutoGenerateCommandsForScope(...).

Это полезно, когда:

  • есть отдельный набор команд для админов;
  • у бота есть разные user segments;
  • хочется не засорять глобальный command list.

Skip controls

Если команду не нужно публиковать в Telegram command menu, ее можно исключить из автогенерации.

Это полезно для:

  • внутренних технических commands;
  • переходных миграционных команд;
  • редко используемых служебных команд.

Рекомендации

  • Вызывай автогенерацию после полной регистрации плагинов.
  • Следи, чтобы descriptions были короткими и понятными.
  • Не путай обработчики данных callback с обычными slash-командами.

Что читать дальше