Бот или вебхук — в чем разница?

Оба связывают твой игровой сервер с Discord, но работают в разных направлениях.

Webhook — это односторонняя связь: твой сервер отправляет сообщения в канал (сбой, бэкап готов, мало ресурсов). Принимать команды он не может. Для этого есть отдельная инструкция «Настройка Discord-вебхука».

Бот работает в обе стороны. Он отвечает на команды из вашей гильдии: /status, /players, /uptime, /link — а те, у кого есть права, могут запускать, останавливать или перезапускать сервер, не открывая панель. Можно использовать и то и другое одновременно; они не мешают друг другу.

Привязка в три шага

Все нужное находится у game-serverhosting в панели сервера в разделе «Discord и уведомления» на карточке «Привязать Discord-бота».

1. Пригласить бота

Кнопка «Пригласить бота» на шаге 1 открывает собственное окно приглашения Discord. Тебе нужно право «Управлять сервером» в гильдии — в своей собственной гильдии оно у тебя есть автоматически. Когда приглашение будет принято, ниже появится строка «Бот приглашен в …». Если вместо этого там написано «От твоего Discord-аккаунта еще не поступало приглашение.», сначала подключи свой Discord-аккаунт в профиле — иначе панель не сможет сопоставить приглашение с аккаунтом.

2. Создать код

«Создать код» создает код привязки. Он действует несколько минут и может быть использован ровно один раз. «Скопировать код» намеренно копирует только код.

3. Выполнить /connect в Discord

Введи /connect в канале своей гильдии, выбери команду в окне подсказок и вставь код в поле code.

Самая частая ошибка: вставить всю строку целиком. Вставленный текст для Discord — обычное сообщение, а не команда, поэтому просто ничего не происходит. Команду нужно набрать и выбрать в окне подсказок.

Если ты уже один раз подключался на сайте через «Войти через Discord», поле code можно оставить пустым: тогда бот привяжет твой сервер через подключенный клиентский аккаунт. Если у тебя несколько собственных серверов, он спросит, какой выбрать, а не будет угадывать.

Какие команды доступны

Группа в панели Команды По умолчанию
Статус и комьюнити /status, /players, /uptime, /link, /pool, /credit, /invoices включено
Управление сервером /start, /stop, /restart, /console, /send, /maintenance, /embed выключено
Управление комьюнити /announce выключено

К ним добавляются модераторские команды /kick, /ban, /unban и /whitelist; они относятся к группе «Управление сервером» и требуют того же серверного права.

/credit и /invoices относятся ко всему твоему аккаунту, а не только к этому серверу — поэтому они отвечают исключительно владельцу аккаунта, независимо от разрешений группы.

Кто что может — два барьера, сначала Discord

В разделе «Команды и доступ» ты выбираешь для каждой группы в пункте «Разрешение»: «Все в гильдии», «Определенные роли», «Определенные пользователи» или «Только соадминистраторы».

Это второй барьер. Первый — сам Discord: в разделе «Настройки сервера → Интеграции → Разрешения команд» каждая гильдия может заблокировать отдельные slash-команды для ролей или каналов. Заблокированная там команда никогда не доходит до панели — она не появляется ни в одном журнале, потому что вообще не приходит. То, что Discord пропускает, затем еще раз проверяется разрешением в панели.

И независимо от обоих правил действует следующее: команды управления работают, несмотря на разрешение, только для подключенного клиентского аккаунта с подходящим серверным правом. /send и /maintenance остаются доступны только владельцу.

Если бот не отвечает

Почти у всех неудачных попыток одна из пяти причин. Проверь их в этом порядке — сверху вниз проверка становится сложнее:

  1. Команду вставили, а не набрали. Вставленный текст для Discord — обычное сообщение. /connect нужно набрать и выбрать в окне подсказок; только после этого появится поле code.
  2. Код истек или уже использован. Он действует несколько минут и может быть использован ровно один раз. Просто создай новый в панели.
  3. Discord блокирует команду. В разделе Настройки сервера → Интеграции → Разрешения команд каждая гильдия может отключать отдельные slash-команды для ролей или каналов. Заблокированная там команда не достигает панели и поэтому не оставляет следов в журнале.
  4. Бот не может писать в канале. Если у него нет права отправлять сообщения, ответа не будет, хотя команда дошла. Проверь ту же команду в канале, где бот точно может писать.
  5. Клиентский аккаунт не подключен. Команды управления требуют подключенный аккаунт с подходящим серверным правом. Один раз войди на сайте через «Войти через Discord», чтобы панель могла сопоставить пользователя Discord с аккаунтом.

Если после этого все равно тихо, проверь в панели раздел «Привязанные Discord-гильдии», привязана ли гильдия вообще — ранее удаленная привязка полностью объясняет молчание.

Лента и объявления

В разделе «Лента и объявления» ты выбираешь два канала. В канал ленты отправляются вход, выход, онлайн, офлайн и сбои; в канал объявлений отправляются /announce, окна обслуживания и готовые бэкапы. Без выбора бот сам ничего не публикует.

При желании название канала может показывать текущее число игроков. Discord разрешает переименование не чаще чем раз в пять минут — поэтому название иногда немного отстает.

Отвязать снова

В разделе «Привязанные Discord-гильдии» у каждой гильдии есть кнопка «Отвязать». После этого бот больше ничего не отвечает для этого сервера в этой гильдии. Сам бот остается в гильдии, пока ты не удалишь его там.

FAQ

Нужны ли мне и бот, и Webhook, или достаточно одного?

Зависит от направления. Для обычных уведомлений от твоего сервера в канал достаточно Webhook. Как только твои тиммейты должны отправлять команды из Discord, нужен бот. Использовать оба варианта одновременно — нормально и без конфликтов.

Почему после /connect ничего не происходит?

Потому что команду вставили, а не набрали — это самая частая ошибка. Вставленный текст для Discord является обычным сообщением. Введи /connect, выбери пункт в окне подсказок и вставь код в поле code.

Могут ли мои тиммейты остановить сервер, если я разрешу группу?

Нет. Разрешение в панели — только один из двух барьеров. Команды управления дополнительно работают только для подключенного клиентского аккаунта с подходящим серверным правом; /send и /maintenance остаются доступны только владельцу. Без подключенного аккаунта этим ничего не сделать.

Все в гильдии видят мои счета?

Нет. /credit и /invoices относятся ко всему клиентскому аккаунту, а не только к этому серверу. Поэтому они отвечают исключительно владельцу аккаунта — независимо от того, как разрешена группа «Статус и комьюнити».

Почему название канала показывает устаревшее число игроков?

Discord разрешает переименовывать канал не чаще чем раз в пять минут. Поэтому отображение иногда немного отстает. Для актуального значения запроси /players — команда читает состояние напрямую с сервера.

Источники