Как установить DiscordSRV
1. Подготовка окружения на proxify.cloud
- Авторизуйтесь в панели управления proxify.cloud.
- В списке серверов выберите ваш выделенный сервер с Ubuntu.
- Откройте вкладку Console (консоль) или подключитесь по SSH с локальной машины:
IP-адрес указан в панели proxify.cloud на странице сервера.ssh root@<IP-адрес_сервера> - Обновите пакеты и установите необходимые утилиты:
DiscordSRV требует Java 17+. На Ubuntu 22.04/24.04 по умолчанию ставится Java 21 — это оптимально.apt update && apt upgrade -y apt install -y curl wget unzip openjdk-21-jre-headless screen
2. Создание пользователя и директории сервера
Не запускайте сервер от root. Создайте отдельного пользователя:
adduser --disabled-password --gecos "" mcuser
su - mcuser
mkdir -p ~/server
cd ~/server
3. Установка ядра сервера (Paper — рекомендуется для DiscordSRV)
DiscordSRV лучше работает на Paper/Purpur. Скачайте последнюю стабильную версию для вашей версии Minecraft (пример для 1.20.4):
wget -O paper.jar https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/496/downloads/paper-1.20.4-496.jar
Замените версию и номер сборки на актуальные с papermc.io.
Примите EULA и сделайте тестовый запуск для генерации файлов:
echo "eula=true" > eula.txt
java -Xms2G -Xmx2G -jar paper.jar --nogui
Дождитесь сообщения Done! и введите stop в консоли.
4. Установка плагина DiscordSRV
- Перейдите в папку плагинов:
cd ~/server/plugins - Скачайте последнюю версию DiscordSRV (стабильная, не beta) с официального репозитория или Jenkins. Пример для актуальной версии на момент написания:
Проверьте последнюю версию на GitHub Releases или Jenkins.wget -O DiscordSRV.jar https://github.com/DiscordSRV/DiscordSRV/releases/download/v1.26.2/DiscordSRV-1.26.2.jar - Вернитесь в корень сервера и запустите снова для генерации конфига:
После загрузки введитеcd ~/server java -Xms2G -Xmx2G -jar paper.jar --noguistop.
5. Создание Discord-бота и получение токена
- Зайдите на Discord Developer Portal.
- Нажмите New Application → введите название (например,
Minecraft Server Bot) → Create. - Перейдите во вкладку Bot → Add Bot → Yes, do it!.
- Скопируйте Token (кнопка Reset Token / Copy). Сохраните его надежно, повторно увидеть нельзя.
- В разделе Privileged Gateway Intents включите все три переключателя:
- Presence Intent
- Server Members Intent
- Message Content Intent Нажмите Save Changes.
- Перейдите во вкладку OAuth2 → URL Generator.
- Scopes:
bot,applications.commands. - Bot Permissions:
Administrator(или минимально необходимый набор:View Channel,Send Messages,Embed Links,Attach Files,Read Message History,Add Reactions,Use Slash Commands,Manage Messages,Manage Webhooks).
- Scopes:
- Скопируйте сгенерированную ссылку внизу, откройте в браузере, добавьте бота на свой Discord-сервер.
6. Настройка config.yml DiscordSRV
Откройте конфигурационный файл:
nano ~/server/plugins/DiscordSRV/config.yml
Основные параметры (найдите и отредактируйте):
# Токен бота (обязательно)
BotToken: "ВАШ_ТОКЕН_ОТ_DEVELOPER_PORTAL"
# ID канала для чата (правый клик на канал в Discord -> Copy Channel ID, нужен Developer Mode)
Channel: 123456789012345678
# Использовать вебхуки для сообщений игроков (рекомендуется true)
UseWebhooks: true
# Формат сообщений из Minecraft в Discord
# {PLAYER} - ник, {MESSAGE} - текст
Format: "<{PLAYER}> {MESSAGE}"
# Формат сообщений из Discord в Minecraft
# {USER} - ник в Discord, {MESSAGE} - текст
DiscordFormat: "&7[Discord] &f{USER}&7: &f{MESSAGE}"
# Синхронизация статуса сервера (онлайн/оффлайн)
Status:
Enabled: true
Type: PLAYING
Status: "на {server_online}/{server_max} игроков"
# Команды (можно оставить по умолчанию)
Commands:
DiscordToGame: true
GameToDiscord: true
Важно: Чтобы получить Channel ID:
- В Discord: Настройки пользователя (шестеренка) → Advanced → включите Developer Mode.
- Правый клик на нужном текстовом канале → Copy Channel ID.
Сохраните файл (Ctrl+O, Enter, Ctrl+X).
7. Настройка permissions.yml (опционально, для прав игроков)
Если используете LuckPerms (ставится отдельно), выдайте права:
# Пример команд в консоли сервера (после установки LuckPerms)
lp group default permission set discord.srv.chat true
lp group default permission set discord.srv.linkaccount true
lp group admin permission set discord.srv.admin true
Без менеджера прав плагин работает, но команды /discord link и админ-команды могут быть недоступны.
8. Запуск сервера в фоновом режиме (systemd)
Создайте сервис для автозапуска и управления через systemctl (выполняйте от root, выйдите из mcuser: exit):
nano /etc/systemd/system/minecraft.service
Вставьте содержимое (подставьте свой путь и пользователя):
[Unit]
Description=Minecraft Paper Server with DiscordSRV
After=network.target
[Service]
User=mcuser
Group=mcuser
WorkingDirectory=/home/mcuser/server
ExecStart=/usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
StandardInput=tty
TTYPath=/dev/tty1
[Install]
WantedBy=multi-user.target
Параметры -Xms4G -Xmx4G задайте под объем RAM вашего выделенного сервера на proxify.cloud (оставьте 1-2 Гб под систему).
Примените изменения и запустите:
systemctl daemon-reload
systemctl enable minecraft
systemctl start minecraft
Проверьте логи:
journalctl -u minecraft -f
Дождитесь строки DiscordSRV enabled и подключения бота (статус бота в Discord станет "Online").
9. Проверка работы и базовая эксплуатация
- Зайдите на сервер, напишите в чат — сообщение должно появиться в Discord-канале.
- Напишите в Discord-канале — сообщение должно появиться в чате игры с префиксом
[Discord]. - В игре введите
/discord link— бот пришлет ЛС с кодом для привязки аккаунта. - Админ-команды (требуют права
discord.srv.admin):/discord reload— перезагрузка конфига без рестарта./discord broadcast <текст>— отправка сообщения во все связанные каналы./discord sync— синхронизация вебхуков.
10. Настройка файрвола (UFW) на Ubuntu
Откройте порт игрового сервера (по умолчанию 25565) и SSH:
ufw allow OpenSSH
ufw allow 25565/tcp
ufw enable
Если используете другой порт (server.properties → server-port), замените 25565 на свой.
Возможные проблемы и решения
1. Бот не запускается: LoginException: Invalid token
Причина: Неверный токен или лишние пробелы/кавычки в config.yml.
Решение:
- Проверьте токен в Developer Portal (скопируйте заново).
- В
config.ymlтокен должен быть в двойных кавычках:BotToken: "token_here". - Убедитесь, что нет невидимых символов (пересоздайте строку вручную в nano).
2. Ошибка Missing Permissions / 403 Forbidden при отправке сообщений
Причина: У бота нет прав в канале или не включены Intents. Решение:
- В Discord: Правый клик на канал → Edit Channel → Permissions → добавьте роль бота → разрешите
View Channel,Send Messages,Embed Links,Attach Files,Read Message History,Add Reactions,Manage Messages,Manage Webhooks. - В Developer Portal → Bot → Privileged Gateway Intents: все три включены (
Presence,Server Members,Message Content). Сохраните изменения.
3. Сообщения из Discord не попадают в игру (или наоборот)
Причина: Неверный Channel ID в конфиге или бот не в этом канале.
Решение:
- Проверьте
Channel: 123456789012345678вconfig.yml(ID текстового канала, не голосового, не категории). - Убедитесь, что бот добавлен на сервер и имеет доступ к этому каналу.
- Выполните
/discord reloadв консоли/игре после правки конфига.
4. Webhook ошибки / сообщения дублируются
**При
Комментарии (0)