Полная настройка DiscordSRV для Minecraft

Иван Корнев·26.04.2026·5 мин

Чтобы связать Discord и Minecraft-сервер, установите плагин DiscordSRV на сервер (Spigot/Paper), создайте бота в Discord Developer Portal, вставьте его токен в config.yml и укажите ID каналов для синхронизации чата. Для связи ролей настройте файл synchronization.yml, сопоставив игровые группы (ранги) с ролями в Discord. Это обеспечит двустороннюю передачу сообщений и автоматическое управление правами игроков.

Ниже — детальное руководство по безопасной и правильной конфигурации всех функций плагина.

Оглавление

  1. Подготовка: создание бота и установка
  2. Настройка чата: связь каналов
  3. Синхронизация ролей и аккаунтов
  4. Консоль и дополнительные функции
  5. Частые ошибки и решения
  6. FAQ

Подготовка: создание бота и установка {#podgotovka}

Перед редактированием конфигов необходимо подготовить инфраструктуру.

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

Скачайте актуальную версию DiscordSRV с официального сайта или SpigotMC и поместите .jar файл в папку plugins вашего сервера. Перезапустите сервер, чтобы сгенерировались файлы конфигурации.

2. Создание приложения в Discord

  1. Перейдите в Discord Developer Portal.
  2. Нажмите New Application, дайте ему имя (например, "MyServer Bot").
  3. Перейдите во вкладку BotAdd Bot.
  4. В разделе Privileged Gateway Intents включите:
    • Server Members Intent (нужно для синхронизации ролей).
    • Message Content Intent (нужно для чтения сообщений в чате).
  5. Скопируйте Token бота. Он понадобится для конфига.

Никогда не публикуйте токен бота и не передавайте его посторонним. Если токен утечет, нажмите кнопку Reset Token в панели разработчика.

3. Добавление бота на сервер

  1. Во вкладке OAuth2URL Generator выберите скоупы bot и applications.commands.
  2. В разделе Bot Permissions отметьте:
    • Manage Roles (для выдачи ролей).
    • Send Messages, View Channels, Read Message History.
    • Manage Nicknames (опционально, для синхронизации никнеймов).
  3. Сгенерируйте ссылку, перейдите по ней и добавьте бота на свой Discord-сервер.

Настройка чата: связь каналов {#nastrojka-chata}

Основная функция плагина — дублирование сообщений между игрой и Дискордом.

  1. Откройте файл plugins/DiscordSRV/config.yml.
  2. Найдите строку DiscordBotToken и вставьте туда токен, полученный на этапе подготовки.
  3. Найдите секцию Channels. Здесь указывается соответствие каналов.

Пример конфигурации для основного чата:

Channels:
  # Формат: "игровой_канал": "ID_Discord_канала"
  # 'global' — это стандартный чат в Minecraft (обычно основной)
  global: "123456789012345678" 

Как узнать ID канала в Discord? Зайдите в настройки пользователя → Расширенные → включите Режим разработчика. Затем кликните правой кноп мыши по нужному каналу в Discord и выберите «Копировать ID».

Дополнительные настройки чата

В том же config.yml можно тонко настроить отображение:

  • DiscordChatChannelTruncateLength: ограничение длины сообщения из Discord перед отправкой в игру (чтобы не спамить в чат).
  • MinecraftChatToDiscordFormat: формат сообщения в Discord (поддерживает переменные вроде %displayname%, %message%).
  • DiscordChatChannelToMinecraftFormat: формат сообщения в игре от пользователей Discord.

После изменений выполните команду в консоли сервера или в игре (с правами админа): /discordsrv reload

Синхронизация ролей и аккаунтов {#nastrojka-rolej}

Эта функция позволяет автоматически выдавать роль в Discord при получении доната или повышения в игре, и наоборот.

1. Привязка аккаунтов (Linking)

Игрок должен связать свой Minecraft-ник с Discord-аккаунтом.

  1. В файле linking.yml убедитесь, что Enabled: true.
  2. Игрок вводит в игре команду /discord link, получает код, вводит его в ЛС боту в Discord.
  3. Опция RequireLinkedAccountToJoinconfig.yml) может запрещать вход на сервер непривязанным игрокам (используйте с осторожностью).

2. Настройка синхронизации ролей

Откройте файл synchronization.yml.

Пример настройки для плагина групп LuckPerms (самый популярный вариант):

Groups:
  Enabled: true
  # Сопоставление: "Роль в Discord": "Группа в LuckPerms"
  Roles:
    "112233445566778899": "vip"      # ID роли Discord -> группа vip
    "998877665544332211": "admin"     # ID роли Discord -> группа admin
  
  # Удалять ли роли, если игрок потерял группу в игре?
  RemoveRolesOnUnlink: true

Если вы используете другие плагины прав (PermissionsEx, GroupManager), логика аналогична, но названия ключей могут отличаться в зависимости версии плагина. Всегда проверяйте комментарии внутри synchronization.yml.

Синхронизация работает в обе стороны только если настроена корректно. По умолчанию чаще всего используют схему: Изменение в Minecraft → Обновление в Discord. Обратная синхронизация (выдача прав в игре за роль в Дискорде) требует более сложной настройки и может быть небезопасной.

Консоль и дополнительные функции {#konsol-i-funkcii}

DiscordSRV умеет транслировать консоль сервера в Discord, что удобно для администраторов.

  1. В config.yml найдите секцию Console.
  2. Установите Enabled: true.
  3. Укажите ChannelId — ID текстового канала, куда будет падать лог.
  4. Настройте фильтры Filters, чтобы скрыть лишние строки (например, частые обновления координат или отладочную информацию).

Также полезны опции в разделе Notifications:

  • PlayerJoinLeaveMessages: отправлять уведомления о входе/выходе игроков.
  • DeathMessages: отправлять сообщения о смерти игроков.

Частые ошибки и решения {#oshibki}

ПроблемаПричинаРешение
Бот оффлайн или не отвечаетНеверный токен или отключены IntentsПроверьте токен в config.yml. Убедитесь, что Server Members Intent и Message Content Intent включены в Developer Portal.
Сообщения не приходят в DiscordНеверный ID канала или нет правПроверьте ID канала в config.yml. Убедитесь, что у бота есть право Send Messages в этом канале.
Роли не выдаютсяОшибка в synchronization.yml или ID ролиПроверьте, что ID роли скопирован верно. Убедитесь, что роль бота в списке ролей Discord находится выше роли, которую он пытается выдать.
Дублирование сообщенийУстановлено несколько плагинов чатаУдалите другие плагины для связи с Discord (например, OldDiscordSRV или конфликтующие мосты).
Цвета в чате отображаются кодамиНеверный форматВ config.yml настройте MinecraftChatToDiscordFormat, используя поддержку Markdown или эмодзи вместо цветовых кодов Minecraft.

FAQ {#faq}

Безопасно ли давать боту право Manage Roles? Да, если бот принадлежит вам. Однако убедитесь, что роль самого бота в иерархии ролей Discord стоит выше тех, которые он должен выдавать, но ниже роли владельца/главных админов.

Можно ли сделать разные каналы для разных миров или чатов (локальный/глобальный)? Да. В секции Channels файла config.yml можно указать несколько пар. Например:

Channels:
  global: "111111111111111111"
  local_nether: "222222222222222222"
  staff_chat: "333333333333333333"

Для работы локальных чатов убедитесь, что ваш плагин чата в Minecraft поддерживает разделение каналов, которое понимает DiscordSRV.

Почему сообщения из Discord приходят в игру без ника? Проверьте настройку DiscordChatChannelToMinecraftFormat в config.yml. По умолчанию там может стоять просто %message%. Измените на %username%: %message%, чтобы видеть автора.

Поддерживает ли плагин Fabric/Forge? DiscordSRV изначально создан для Spigot/Paper/Bukkit. Для Fabric существуют порты (например, DiscordSRV-Fabric), но их функциональность и стабильность могут отличаться. Рекомендуется использовать серверные ядра на базе Paper для наилучшей совместимости.