Свой сервер

Статус сервера в Discord

Сообщение в канал Discord с адресом, версией и онлайном сервера, которое обновляется само. Впишите адрес — получите JSON вебхука, команду curl или PowerShell и готовый скрипт на Python.

Сервер

Результат

Пример · по пингу

Мой сервер

Выживание без вайпов. Заходите!

Адрес
play.example.ru
Версия
1.21.11

Так сообщение уйдёт командой. Скрипт добавит статус и онлайн и будет править его раз в 5 мин.

Скачать скрипт juxmc_status.py

Запуск скрипта — Python 3.8+, без библиотек

python juxmc_status.py "WEBHOOK_URL"

Один раз — curl (Linux, macOS, cmd)

curl -H "Content-Type: application/json" -d @message.json "WEBHOOK_URL"

Один раз — PowerShell

Invoke-RestMethod -Uri "WEBHOOK_URL" -Method Post -ContentType "application/json; charset=utf-8" -Body ([Text.Encoding]::UTF8.GetBytes((Get-Content -Raw -Encoding UTF8 message.json)))

message.json

{
  "embeds": [
    {
      "title": "Мой сервер",
      "color": 5793266,
      "description": "Выживание без вайпов. Заходите!",
      "fields": [
        {
          "name": "Адрес",
          "value": "`play.example.ru`",
          "inline": true
        },
        {
          "name": "Версия",
          "value": "1.21.11",
          "inline": true
        }
      ],
      "footer": {
        "text": "Данные — пинг сервера"
      }
    }
  ],
  "allowed_mentions": {
    "parse": []
  }
}
Скачать message.json

Как применить

  1. Создайте вебхук

    В Discord: настройки канала → «Интеграции» → «Вебхуки» → «Новый вебхук» → «Копировать URL». Кто знает этот адрес, может писать в канал, — не публикуйте его.

  2. Запустите скрипт

    На сервере или любом компьютере, который всегда включён: python juxmc_status.py "адрес вебхука". Первое сообщение он отправит, дальше будет его править.

  3. Или по расписанию

    С ключом --once скрипт обновит сообщение и выйдет — так его запускают кроном или планировщиком Windows.

Что нужно знать

  • Сообщение одно. Номер сообщения скрипт хранит в juxmc_status.json рядом с собой. Удалили сообщение — пришлёт новое.
  • В PowerShell 5 «curl» — не curl, а Invoke-WebRequest с другими ключами. Там берите команду PowerShell: она шлёт русские буквы в UTF-8.
  • Скрипт пингует только Java-сервер и без SRV-записи: впишите хост и порт, по которым сервер отвечает сам. Сервер из мониторинга пинговать не нужно — онлайн отдаёт /api/v1/ JuxMC.
  • Имя бота со словом «Discord» Discord не примет — страница не пропустит его сразу.

Значок с онлайном для сайта сервера выдаётся в кабинете после того, как вы добавите сервер. Проверить, отвечает ли сервер, — проверка сервера, правила для канала — генератор правил.

Частые вопросы

Как сделать статус сервера Майнкрафт в Discord?

Создайте вебхук в настройках канала и запустите скрипт со страницы с его адресом: он отправит сообщение с онлайном и будет править его раз в несколько минут.

Почему онлайн в Discord не меняется?

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

Нужен ли бот для статуса сервера?

Нет: хватит вебхука канала. Бот нужен для команд в чате, а сообщение со статусом вебхук отправляет и правит сам.