Pterohost docs

DiscordSRV: связка чата Minecraft и Discord

Как подключить DiscordSRV к серверу Minecraft: создание бота, настройка config.yml, синхронизация чата, ролей и консоли с Discord.

Кратко: DiscordSRV - самый популярный плагин для связи чата Minecraft с Discord. Установи jar в папку plugins, создай бота на discord.com/developers, вставь токен в config.yml, укажи ID канала - и чат заработает за 10 минут.

DiscordSRV: связка чата Minecraft и Discord

DiscordSRV - бесплатный плагин с открытым исходным кодом (GitHub: DiscordSRV/DiscordSRV), который превращает Discord-сервер в полноценный хаб управления Minecraft-сервером. Через него игроки общаются из Discord прямо в игру и обратно, администраторы видят консоль в отдельном канале, а система синхронизации ролей автоматически выдаёт права в игре по Discord-ролям. По состоянию на 2026 год плагин поддерживает Paper 1.8-1.21+, регулярно обновляется и имеет активное сообщество. Это стандарт де-факто для серверов с активной Discord-тусовкой: без него интеграция между игрой и чатом требует самописных решений.

Pterohost - игровой хостинг для Minecraft с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг

Требования и совместимость

Перед установкой убедись, что твоя среда подходит:

ПараметрТребование
Ядро сервераPaper, Spigot, BungeeCord (отдельный jar)
Версия Minecraft1.8 - 1.21.x
Java17+ (для Minecraft 1.21)
Discord APIBot Application, не Webhook
ЗависимостиНет обязательных; LuckPerms нужен для синхронизации ролей

DiscordSRV не работает с CraftBukkit (устарел) и Fabric/Forge напрямую - для модовых серверов есть отдельный форк DiscordSRV 2.x (в стадии активной разработки на момент написания).

Скачать актуальный jar: modrinth.com/plugin/discordsrv или dev.bukkit.org/projects/discordsrv.

Создание Discord-бота

Это самый важный шаг. Токен бота - основа всей работы DiscordSRV.

Шаг 1 - Создай приложение

  1. Открой discord.com/developers/applications.
  2. Нажми New Application, дай ему имя (например, ServerBot).
  3. Перейди в раздел Bot в левом меню.
  4. Нажми Reset Token и скопируй токен - он показывается один раз.

Никогда не публикуй токен - через него получают полный контроль над ботом.

Шаг 2 - Включи Privileged Intents

На странице Bot в блоке Privileged Gateway Intents включи:

  • SERVER MEMBERS INTENT - нужен для синхронизации ролей
  • MESSAGE CONTENT INTENT - нужен для чтения сообщений из Discord в игру

Без этих разрешений плагин соединится, но чат из Discord в Minecraft работать не будет - и в консоли появится ошибка Missing Intent.

Шаг 3 - Добавь бота на Discord-сервер

Перейди в OAuth2 > URL Generator:

  • Scopes: bot
  • Bot Permissions: Send Messages, Read Message History, Manage Roles (если нужна синхронизация), View Channels

Сгенерируй ссылку и открой её - добавь бота на свой Discord-сервер.

Установка плагина

  1. Скачай DiscordSRV-{версия}.jar.
  2. Положи в папку plugins/ на сервере.
  3. Запусти сервер один раз - плагин создаст папку plugins/DiscordSRV/ с файлами конфигурации.
  4. Останови сервер - теперь будем редактировать config.yml.

Структура файлов после первого запуска:

plugins/
  DiscordSRV/
    config.yml          # главный конфиг
    messages.yml        # тексты сообщений
    linking.yml         # настройки привязки аккаунтов
    voice.yml           # голосовые каналы (опционально)
    alerts.yml          # кастомные алерты

Основная настройка config.yml

Открой plugins/DiscordSRV/config.yml. Главные параметры, которые нужно заполнить:

Токен бота

BotToken: "MTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Вставь токен, скопированный из шага 1. Значение в кавычках, без пробелов в начале и конце.

Привязка каналов

Сначала получи ID каналов в Discord: включи режим разработчика (Settings > Advanced > Developer Mode), затем правой кнопкой по каналу - Copy Channel ID.

Channels:
  global: "1234567890123456789"

Здесь global - имя чат-канала в игре (если используешь мультиканальность), а длинное число - ID Discord-канала. Для простой конфигурации с одним каналом это всё, что нужно.

Консоль сервера в Discord

DiscordConsoleChannelEnabled: true
DiscordConsoleChannelId: "9876543210987654321"

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

Дополнительные параметры консоли:

DiscordConsoleChannelUsageMessage: true
DiscordConsoleChannelBlacklist:
  - ".*password.*"
  - ".*token.*"

Блэклист - список regex-паттернов для строк, которые НЕ будут отправляться в Discord (например, строки с паролями или токенами).

Статус бота

DiscordGameStatus: "на {server-online} игроках"
DiscordOnlineStatus: ONLINE

Переменные {server-online}, {server-max-players}, {server-tps} доступны из коробки и обновляются автоматически.

Синхронизация ролей Discord и групп в игре

Это одна из самых мощных функций DiscordSRV. Схема работы: игрок привязывает аккаунт командой /discord link -> DiscordSRV видит его роли в Discord -> выдаёт соответствующую группу в LuckPerms.

Настройка в config.yml

GroupRoleSynchronizationEnabled: true
GroupRoleSynchronizationPrimaryGroupOnly: false

GroupRoleSynchronizationGroupsAndRolesToSync:
  "vip": "1112223334445556677"
  "admin": "9998887776665554433"
  "moder": "1234567890987654321"

Слева - имена групп в LuckPerms (точно как они называются), справа - ID ролей в Discord.

Направление синхронизации

# Discord -> игра (получил роль в Discord - получил группу в LuckPerms)
GroupRoleSynchronizationMinecraftIsAuthoritative: false

# Игра -> Discord (получил группу в LuckPerms - получил роль в Discord)  
GroupRoleSynchronizationMinecraftIsAuthoritative: true

Для большинства серверов оптимально значение false - роли выдаются в Discord вручную администратором, а игра их читает.

Привязка аккаунта игроком

Игрок вводит в игре:

/discord link

Получает код вида 12345. Затем в Discord пишет боту (или в любом канале, где бот присутствует):

/link 12345

После успешной привязки синхронизация начинает работать. Для отвязки: /discord unlink в игре.

Форматирование сообщений

В messages.yml можно настроить формат каждого типа сообщения. Ключевые переменные:

ПеременнаяЗначение
%username%Игровой ник
%displayname%Отображаемое имя (с префиксом от LuckPerms)
%message%Текст сообщения
%discriminator%Тэг Discord пользователя
%top_role%Высшая роль в Discord
%avatar_url%URL аватара игрока (Minotar/Crafatar)

Пример кастомного формата сообщения из Discord в игру (messages.yml):

DiscordToMinecraftChatMessageFormat: "[&bDiscord&r] %top_role_color%%top_role% &f%username%&7: %message%"

Пример формата из игры в Discord (config.yml):

MinecraftToDiscordChatMessageFormat: "**%displayname%**: %message%"

Аватары игроков в Discord

DiscordSRV поддерживает отображение аватаров через Webhook вместо простого бота. Для этого нужно создать Webhook в канале Discord (Channel Settings > Integrations > Webhooks) и вставить URL в config.yml:

Experiment_WebhookChatMessageDelivery: true
Experiment_WebhookChatMessageUsernameFormat: "%displayname%"
Experiment_WebhookChatMessageAvatarFromUrl: "https://crafatar.com/avatars/{uuid}?size=128&overlay"

При этом способе сообщения из игры отображаются с именем и аватаром игрока, а не с именем бота - выглядит намного естественнее.

Алерты и события сервера

В alerts.yml можно настроить отправку уведомлений по любым игровым событиям. Примеры из коробки:

Alerts:
  - Trigger: PlayerLoginEvent
    Channel: "global"
    Embed:
      Enabled: false
    Message: ":arrow_right: **%displayname%** зашёл на сервер"

  - Trigger: PlayerQuitEvent
    Channel: "global"
    Embed:
      Enabled: false
    Message: ":arrow_left: **%displayname%** вышел с сервера"

  - Trigger: PlayerDeathEvent
    Channel: "global"
    Message: ":skull: %deathMessage%"

Триггер PlayerLoginEvent - стандартный Bukkit-ивент. Полный список доступных триггеров - в документации DiscordSRV на docs.discordsrv.com.

Голосовые каналы - Voice Module

DiscordSRV умеет создавать временные голосовые каналы в Discord, которые привязаны к игровым событиям. Функция настраивается в voice.yml.

Базовая концепция

Когда игрок заходит на сервер, DiscordSRV автоматически создаёт для него личный голосовой канал в Discord. Когда игрок выходит - канал удаляется. Это удобно для выживания и RPG-серверов: игроки просто знают, что голосовой канал игрока X - значит X сейчас в игре.

Настройка voice.yml

Voice:
  enabled: true
  category: "1234567890123456789"  # ID категории в Discord для голосовых каналов
  lobby channel: "9876543210987654321"  # Лобби-канал, из которого создаются комнаты
  player limit: 0  # 0 = безлимит

Создай категорию в Discord (например, “Игроки онлайн”) и укажи её ID в category. Бот будет создавать каналы внутри этой категории.

Proximity Voice (голос по близости)

Если на сервере установлен плагин голосового чата (например, Simple Voice Chat), DiscordSRV может интегрироваться с ним: игроки слышат тех, кто находится рядом в игровом мире. Настройка выходит за рамки базового гайда, но документация на docs.discordsrv.com содержит подробный раздел по этой теме.

Embed-сообщения и кастомные каналы

DiscordSRV поддерживает отправку богатых Embed-сообщений вместо простого текста. Это полезно для уведомлений о старте/стопе сервера, достижениях игроков и ивентах.

Уведомление о запуске и остановке сервера

В config.yml есть готовые блоки для этих событий:

DiscordChatChannelServerStartupMessage: ":white_check_mark: Сервер запущен!"
DiscordChatChannelServerShutdownMessage: ":octagonal_sign: Сервер остановлен."

Для Embed-варианта вместо строки указывается блок:

DiscordChatChannelServerStartupMessage:
  Embed:
    Enabled: true
    Color: "#43b581"
    Title: "Сервер запущен"
    Description: "Подключайтесь: **play.example.com**"
    Footer: "Версия 1.21.4"
    Timestamp: true

Цвет задаётся в hex. Зелёный (#43b581) - стандартный Discord-зелёный для позитивных уведомлений, красный (#f04747) - для ошибок и остановок.

Многоканальная конфигурация

Если на сервере несколько чатов (например, через HeroChat или VentureChat), каждый канал можно направить в отдельный Discord-канал:

Channels:
  global: "1111111111111111111"
  trade: "2222222222222222222"
  admin: "3333333333333333333"

Игроки пишут в чат канала global - сообщение идёт в первый Discord-канал. Сообщения в чат trade идут во второй. Для канала admin можно ограничить доступ на стороне Discord, выдав права только модераторам.

Безопасность и права доступа

Неправильно настроенный DiscordSRV может стать уязвимостью. Несколько обязательных правил:

Защита токена

Токен бота - это как пароль. Если он попал в публичный репозиторий или к посторонним:

  1. Немедленно сгенерируй новый через Reset Token на странице бота.
  2. Обнови config.yml и перезагрузи плагин.
  3. Старый токен автоматически становится недействительным после сброса.

Добавь config.yml в .gitignore, если хранишь конфиги сервера в git.

Ограничение доступа к консоли

Канал консоли (DiscordConsoleChannelId) - это прямой доступ к командам сервера. Установи права Discord так, чтобы только роль “Администратор” могла видеть и писать в этот канал. Проверь через “View as Role” в настройках канала Discord.

Дополнительно ограничь список команд, доступных из Discord:

DiscordConsoleChannelCommandWhitelist:
  - "list"
  - "tps"
  - "whitelist add"
  - "kick"

Если DiscordConsoleChannelCommandWhitelist не пустой, только эти команды будут выполняться из Discord.

Фильтрация упоминаний

Чтобы игроки не могли через игровой чат тегать @everyone или роли в Discord:

DiscordChatChannelTranslateMentions: false
DiscordChatChannelBlockBots: true

DiscordChatChannelBlockBots: true запрещает ботам писать в игровой чат через DiscordSRV (полезно, если в Discord-канале есть другие боты, которые генерируют много сообщений).

Типичные проблемы и решения

Бот не подключается - Invalid Token

Симптом: в консоли DiscordSRV | Bot can't login: Invalid Token

Решения по порядку:

  1. Убедись, что токен скопирован полностью - он длинный (70+ символов).
  2. Сгенерируй новый токен через Reset Token на странице бота.
  3. Проверь, что в config.yml нет лишних пробелов вокруг токена.
  4. Убедись, что бот не заблокирован в Discord - проверь статус приложения.

Сообщения из Discord не приходят в Minecraft

Симптом: сообщения из игры в Discord идут, но обратно - нет.

Причины:

  • Не включён MESSAGE CONTENT INTENT на странице бота.
  • Бот не имеет права читать сообщения в канале (проверь Permissions).
  • Канал в config.yml указан неверно.

Проверка: в консоли при отправке сообщения должна быть строка DiscordSRV | Discord -> Minecraft.

Синхронизация ролей не работает

Проверь:

  1. Включён ли SERVER MEMBERS INTENT на странице бота.
  2. У бота есть роль с правом Manage Roles в Discord.
  3. Роль бота в Discord выше ролей, которые он должен выдавать (иерархия ролей важна).
  4. Имена групп в LuckPerms написаны точно так же, как в config.yml.

Для диагностики добавь в config.yml:

Debug:
  - GROUPS

И перезагрузи плагин - в консоли появятся подробные логи синхронизации.

PlaceholderAPI не работает с DiscordSRV

Если используешь PlaceholderAPI для вставки данных в сообщения Discord, установи расширение DiscordSRV для PAPI:

/papi ecloud download DiscordSRV
/papi reload

После этого плейсхолдеры вида %discordsrv_user_id% заработают.

Команды администратора

КомандаОписание
/discordsrv reloadПерезагрузить конфиг без рестарта
/discordsrv debugСоздать debug-отчёт для репорта бага
/discordsrv link <ник> <ID>Привязать аккаунт вручную
/discordsrv unlink <ник>Отвязать аккаунт
/discordsrv resyncПринудительно пересинхронизировать роли

Права на команды настраиваются через LuckPerms - нода discordsrv.reload, discordsrv.link и т.д.

Связанные материалы

Если настраиваешь Discord-интеграцию, тебе также пригодятся статьи о лучших плагинах для Minecraft-сервера в 2026 году - обзор популярных плагинов, подробное руководство по EssentialsX с полным списком команд - EssentialsX: команды и настройка, а также инструкция по настройке автоматических бэкапов - резервное копирование сервера.

Заключение

DiscordSRV - мощный и зрелый инструмент, который за несколько минут настройки превращает Discord-сервер в центр управления игровым сервером. Основные шаги: создать бота с правильными интентами, вставить токен в config.yml, указать ID каналов - и система заработает. Для продвинутой конфигурации доступны синхронизация ролей через LuckPerms, Webhook-аватары и кастомные алерты на любые игровые события. При проблемах первым делом проверяй токен и Privileged Intents - именно они причина 80% ошибок подключения. Документация DiscordSRV на docs.discordsrv.com содержит актуальные примеры конфигов для каждой функции.

Pterohost - хостинг Minecraft-серверов с SSD-дисками, защитой от DDoS и круглосуточной поддержкой, которая поможет с настройкой плагинов. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг