Слэш-команды
Команды приложения регистрируются точно так же, как в Discord: те же эндпоинты, те же payload, те же библиотеки. Отличается одно правило: в GameVox есть собственные встроенные команды, и их названия зарезервированы.
Регистрация
Так же, как в Discord. Работают все четыре маршрута, глобальные и для отдельного сервера, создание и массовая перезапись:
POST /api/v10/applications/{application_id}/commands
PUT /api/v10/applications/{application_id}/commands
POST /api/v10/applications/{application_id}/guilds/{guild_id}/commands
PUT /api/v10/applications/{application_id}/guilds/{guild_id}/commands Зарезервированные названия
На команды ниже GameVox отвечает сам. Регистрация одного из этих названий отклоняется с 400 и кодом ошибки Discord 50035; в сообщении указано название команды, так что причина сбоя сразу видна в логе деплоя.
Причина в участнике, а не в платформе. GameVox показывает встроенные команды и команды приложений в одном списке без пространств имён, поэтому две команды ban выглядят как две одинаковые строки, между которыми не выбрать. Для команды модерации это хуже ошибки: никто не должен гадать, какой именно /ban он только что запустил.
| Группа | Зарезервированные названия | Что с ними делает GameVox |
|---|---|---|
| Модерация | ban unban kick clear slowmode | Действует прямо на сервере в рамках собственных прав вызывающего в GameVox. |
| Развлечения | 8ball flip choice ascii qrcode love | Отвечает в канале. |
| Информация | serverinfo userinfo avatar | Показывает то, что вызывающий и так видит в интерфейсе. |
| Участник | afk remindme welcome goodbye | Заметки об отсутствии, напоминания и сообщение о входе/выходе для сервера. |
| Клиент | me poll shrug tableflip unflip lenny | Обрабатывается клиентом GameVox без обращения к серверу. |
Сравнение не учитывает регистр и окружающие пробелы: Ban конфликтует с ban, потому что список выбора тоже сравнивает названия именно так.
Если вы уже зарегистрировали такую команду
Команда, зарегистрированная до того, как её название стало зарезервированным, остаётся в базе данных, но убирается из списка участника и отклоняется при вызове. Переименуйте её и зарегистрируйте заново; больше ничего в вашем приложении это не затрагивает.
Незарезервированные названия
Заняты только точные совпадения. banish, clearall и server-info в вашем распоряжении. Как и warn: в GameVox нет команды предупреждения, потому что жалобы на участников обрабатываются через систему жалоб.
В любом случае стоит добавлять к командам короткий префикс, характерный для вашего приложения, независимо от резервирования: только так две установленные программы не будут конфликтовать друг с другом, а такие конфликты GameVox не разрешает.
Права по-прежнему действуют
Резервирование названий никак не связано с тем, кто может запускать ваши команды. Здесь всё по-прежнему и по умолчанию запрещено: зарегистрированную команду может запускать владелец сервера, пока оператор не выдаст доступ группе в разделе Настройки сервера → Интеграции. См. Права доступа.