К содержимому

Команды

Команда - событие взаимодействия пользователя с ботом. А для бота команда - единица функционала. Каждая команда выполняет определённое действие и приводит к результату. Можете относиться к командам как к функциям “сделай X”.

По По сути команда это такое же событие, как например новое сообщение. Только у команд есть пара отличий. Для начала бот знает, что обращаются именно к нему. И в добавок команды имеют чёткую структуру:

/hello user:@user

  • /: Префикс, с которого начинается команда. Как обращение к боту.
  • hello: Название команды (функции), что показывает боту что надо сделать.
  • user:@user: Дополнительные аргументы команды, что меняют поведение.

Немного про традиционные обозначения:

  • <name>: Обязательный аргумент с именем name.
  • [amount]: Необязательный аргумент. Если его не указать, будет использоваться значение по умолчанию.

У обязательных аргументов строго определённый порядок.

Аргументы команды довольно важная часть. Именно они позволяют делать команды более гибкими. Давайте на примере:

Вы хотите добавить новую песню в плеер. Чтобы добавить это песню, вы передаёте ссылку/её имя как аргумент команды. Бот внутри функции-обработчика обработчика получает все переданные аргументы и уже может работать с ними.

Аргументы могут быть разных типов, начиная от простых строковых и числовых, заканчивая пользователями и каналами.

Для аргументов команды можно добавить варианты выбора и авто дополнение. Вы могли видеть авто дополнение, если вводили в аргументах пользователей, роли или каналы, для этих аргументов дискорд автоматические предоставляет авто дополнение.

Помимо простых команд, также существуют и группы команд с подкомандами. Несколько команд можно объединить в одну группу.

Вот вам пара примеров:

/player info
/player status

Или:

/tags set
/tags list
/tags reset
/tags ...

Без использования группы команд, они бы выглядели так:

  • /player_status.
  • /tags_add или /add_tags.

Мало того, что это решает путаницу и приводит к некоторому единому виду, так ещё и сам Discord будет подсказывать о всех командах, что есть в группе.