Бот или вебхук — в чем разница?
Оба связывают твой игровой сервер с 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
остаются доступны только владельцу.
Если бот не отвечает
Почти у всех неудачных попыток одна из пяти причин. Проверь их в этом порядке — сверху вниз проверка становится сложнее:
- Команду вставили, а не набрали. Вставленный текст для Discord — обычное сообщение.
/connectнужно набрать и выбрать в окне подсказок; только после этого появится полеcode. - Код истек или уже использован. Он действует несколько минут и может быть использован ровно один раз. Просто создай новый в панели.
- Discord блокирует команду. В разделе Настройки сервера → Интеграции → Разрешения команд каждая гильдия может отключать отдельные slash-команды для ролей или каналов. Заблокированная там команда не достигает панели и поэтому не оставляет следов в журнале.
- Бот не может писать в канале. Если у него нет права отправлять сообщения, ответа не будет, хотя команда дошла. Проверь ту же команду в канале, где бот точно может писать.
- Клиентский аккаунт не подключен. Команды управления требуют подключенный аккаунт с подходящим серверным правом. Один раз войди на сайте через «Войти через Discord», чтобы панель могла сопоставить пользователя Discord с аккаунтом.
Если после этого все равно тихо, проверь в панели раздел «Привязанные Discord-гильдии», привязана ли гильдия вообще — ранее удаленная привязка полностью объясняет молчание.
Лента и объявления
В разделе «Лента и объявления» ты выбираешь два канала. В канал ленты отправляются
вход, выход, онлайн, офлайн и сбои; в канал объявлений отправляются
/announce, окна обслуживания и готовые бэкапы. Без выбора бот сам ничего
не публикует.
При желании название канала может показывать текущее число игроков. Discord разрешает переименование не чаще чем раз в пять минут — поэтому название иногда немного отстает.
Отвязать снова
В разделе «Привязанные Discord-гильдии» у каждой гильдии есть кнопка «Отвязать». После этого бот больше ничего не отвечает для этого сервера в этой гильдии. Сам бот остается в гильдии, пока ты не удалишь его там.
FAQ
Нужны ли мне и бот, и Webhook, или достаточно одного?
Зависит от направления. Для обычных уведомлений от твоего сервера в канал достаточно Webhook. Как только твои тиммейты должны отправлять команды из Discord, нужен бот. Использовать оба варианта одновременно — нормально и без конфликтов.
Почему после /connect ничего не происходит?
Потому что команду вставили, а не набрали — это самая частая ошибка. Вставленный текст для Discord является обычным сообщением. Введи /connect, выбери пункт в окне подсказок и вставь код в поле code.
Могут ли мои тиммейты остановить сервер, если я разрешу группу?
Нет. Разрешение в панели — только один из двух барьеров. Команды управления дополнительно работают только для подключенного клиентского аккаунта с подходящим серверным правом; /send и /maintenance остаются доступны только владельцу. Без подключенного аккаунта этим ничего не сделать.
Все в гильдии видят мои счета?
Нет. /credit и /invoices относятся ко всему клиентскому аккаунту, а не только к этому серверу. Поэтому они отвечают исключительно владельцу аккаунта — независимо от того, как разрешена группа «Статус и комьюнити».
Почему название канала показывает устаревшее число игроков?
Discord разрешает переименовывать канал не чаще чем раз в пять минут. Поэтому отображение иногда немного отстает. Для актуального значения запроси /players — команда читает состояние напрямую с сервера.