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) |
| Версия Minecraft | 1.8 - 1.21.x |
| Java | 17+ (для Minecraft 1.21) |
| Discord API | Bot Application, не Webhook |
| Зависимости | Нет обязательных; LuckPerms нужен для синхронизации ролей |
DiscordSRV не работает с CraftBukkit (устарел) и Fabric/Forge напрямую - для модовых серверов есть отдельный форк DiscordSRV 2.x (в стадии активной разработки на момент написания).
Скачать актуальный jar: modrinth.com/plugin/discordsrv или dev.bukkit.org/projects/discordsrv.
Создание Discord-бота
Это самый важный шаг. Токен бота - основа всей работы DiscordSRV.
Шаг 1 - Создай приложение
- Открой discord.com/developers/applications.
- Нажми New Application, дай ему имя (например,
ServerBot). - Перейди в раздел Bot в левом меню.
- Нажми 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-сервер.
Установка плагина
- Скачай
DiscordSRV-{версия}.jar. - Положи в папку
plugins/на сервере. - Запусти сервер один раз - плагин создаст папку
plugins/DiscordSRV/с файлами конфигурации. - Останови сервер - теперь будем редактировать
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 может стать уязвимостью. Несколько обязательных правил:
Защита токена
Токен бота - это как пароль. Если он попал в публичный репозиторий или к посторонним:
- Немедленно сгенерируй новый через Reset Token на странице бота.
- Обнови config.yml и перезагрузи плагин.
- Старый токен автоматически становится недействительным после сброса.
Добавь 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
Решения по порядку:
- Убедись, что токен скопирован полностью - он длинный (70+ символов).
- Сгенерируй новый токен через Reset Token на странице бота.
- Проверь, что в config.yml нет лишних пробелов вокруг токена.
- Убедись, что бот не заблокирован в Discord - проверь статус приложения.
Сообщения из Discord не приходят в Minecraft
Симптом: сообщения из игры в Discord идут, но обратно - нет.
Причины:
- Не включён MESSAGE CONTENT INTENT на странице бота.
- Бот не имеет права читать сообщения в канале (проверь Permissions).
- Канал в config.yml указан неверно.
Проверка: в консоли при отправке сообщения должна быть строка DiscordSRV | Discord -> Minecraft.
Синхронизация ролей не работает
Проверь:
- Включён ли
SERVER MEMBERS INTENTна странице бота. - У бота есть роль с правом
Manage Rolesв Discord. - Роль бота в Discord выше ролей, которые он должен выдавать (иерархия ролей важна).
- Имена групп в 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 хостинг