Как изменить сообщение о выходе с сервера

Подготовка и доступ к серверу через proxify.cloud

1. Авторизация в панели proxify.cloud

  1. Откройте браузер и перейдите по адресу https://proxify.cloud
  2. Введите логин и пароль от аккаунта
  3. В списке сервисов найдите ваш выделенный сервер с Ubuntu
  4. Нажмите на название сервера — откроется страница управления через Proxmox VE

2. Получение доступа к консоли Ubuntu

В панели Proxmox:

  1. В левом меню выберите ваш узел (node)
  2. Найдите контейнер (CT) или виртуальную машину (VM) с игровым сервером
  3. Нажмите на него правой кнопкой мыши → Console (консоль)
  4. Авторизуйтесь под пользователем root или пользователем с sudo правами

Важно: Если сервер Minecraft запущен в Docker-контейнере или через systemd-сервис, определите это командой ниже перед дальнейшими действиями.

3. Определение способа запуска сервера

Выполните в консоли:

systemctl list-units --type=service | grep -i minecraft
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
ls -la /opt/minecraft/ /home/minecraft/ /srv/minecraft/ 2>/dev/null

Результат покажет один из вариантов:

  • Systemd-сервис (например, minecraft-server.service)
  • Docker-контейнер (образ itzg/minecraft-server или подобный)
  • Ручной запуск в screen/tmux из директории пользователя

Способ 1: Изменение через server.properties (Vanilla / Paper / Spigot / Purpur)

4. Остановка сервера

Для systemd:

systemctl stop minecraft-server

Для Docker:

docker stop minecraft-server

Для screen/tmux:

screen -S minecraft -X stuff "stop$(printf '\r')"
sleep 10

5. Поиск файла server.properties

Типичные пути:

find / -name "server.properties" -type f 2>/dev/null | grep -v ".git\|backup\|old"

Частые расположения:

  • /opt/minecraft/server.properties
  • /home/minecraft/server/server.properties
  • /srv/minecraft/server.properties
  • /var/lib/docker/volumes/minecraft_data/_data/server.properties (для Docker)

6. Редактирование параметра quit-message

Откройте файл:

nano /путь/к/server.properties

Найдите строку (обычно ближе к концу файла):

# Пример стандартного значения
# quit.message=left the game

Раскомментируйте и измените:

quit.message=§e%player% §7покинул сервер §8| §aDiscord: discord.gg/example

Поддерживаемые плейсхолдеры:

  • %player% — никнейм игрока
  • Коды форматирования: §0-9, §a-f, §k, §l, §m, §n, §o, §r

Примечание: В Vanilla/Paper без плагинов работает только %player%. Для расширенных плейсхолдеров (группа, баланс, онлайн) нужен плагин (см. Способ 2).

7. Сохранение и запуск

# Ctrl+O, Enter, Ctrl+X в nano
systemctl start minecraft-server
# или
docker start minecraft-server

Способ 2: Через плагин EssentialsX (наиболее распространённый вариант)

8. Проверка наличия EssentialsX

find / -name "Essentials.jar" -o -name "EssentialsX-*.jar" 2>/dev/null
ls /путь/к/серверу/plugins/ | grep -i essential

Если плагин есть — переходите к шагу 9. Если нет — установите:

cd /путь/к/серверу/plugins/
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/EssentialsX-2.20.1.jar
# Перезапустите сервер для генерации конфигов

9. Редактирование config.yml EssentialsX

Путь к конфигу:

/путь/к/серверу/plugins/Essentials/config.yml

Откройте:

nano /путь/к/серверу/plugins/Essentials/config.yml

Найдите секцию quit-message (примерно строки 400-450):

# quit-message: '&f%player% &7has left the server'

Раскомментируйте и измените:

quit-message: '&e%player% &7покинул сервер &8| &bНаш Discord: &ndiscord.gg/example'

Форматирование EssentialsX использует & вместо §:

  • &0-9, &a-f — цвета
  • &k — обфусцированный, &l — жирный, &m — зачёркнутый, &n — подчёркнутый, &o — курсив, &r — сброс

Дополнительные плейсхолдеры EssentialsX:

  • %player% — ник
  • %displayname% — отображаемое имя (с префиксами)
  • %group% — группа прав (LuckPerms/PermissionsEx)
  • %world% — текущий мир

10. Редактирование messages.properties (альтернатива)

Некоторые сборки EssentialsX выносят сообщения в отдельный файл:

/путь/к/серверу/plugins/Essentials/messages.properties

Найдите:

quit = &f%player% &7has left the server

Измените:

quit = &e%player% &7ушел играть в &cдругую игру &8(&a%online%/&c%max%&8)

11. Перезагрузка конфига без рестарта сервера

# В консоли сервера (screen/console):
essentials:reload
# или
/essentials reload

Или через systemd/Docker — полный рестарт (см. шаг 7).


Способ 3: Через плагин PlaceholderAPI + любой чат-плагин (LuckPerms Chat, VentureChat, MiniMessage)

12. Установка PlaceholderAPI

cd /путь/к/серверу/plugins/
wget https://github.com/PlaceholderAPI/PlaceholderAPI/releases/latest/download/PlaceholderAPI-2.11.6.jar
# Рестарт сервера

В консоли сервера:

/papi ecloud download player
/papi ecloud download server
/papi reload

13. Настройка VentureChat (пример)

nano /путь/к/серверу/plugins/VentureChat/config.yml

Найдите join-quit-messages:

join-quit-messages:
  enabled: true
  quit:
    - '<gray><strikethrough>----</strikethrough></gray> <yellow>%player%</yellow> <gray>покинул сервер</gray> <dark_gray>[<aqua>%luckperms_prefix%</dark_gray>] <gray><strikethrough>----</strikethrough></gray>'

Поддерживает MiniMessage формат (градиенты, ховеры, клики):

quit:
  - '<gradient:gold:yellow>%player%</gradient> <gray>ушел</gray> <click:open_url:'https://discord.gg/example'><hover:show_text:'<green>Нажми, чтобы присоединиться!</green>'><aqua>[Discord]</aqua></click></hover>'

14. Применение изменений

/venturechat reload
# или
/papi reload

Способ 4: Для Docker-контейнеров (itzg/minecraft-server)

15. Изменение через переменные окружения

Если контейнер запущен через docker run или docker-compose, проверьте .env или docker-compose.yml:

cat /путь/к/проекту/docker-compose.yml

Добавьте/измените в environment:

environment:
  - QUIT_MESSAGE=§e%player% §7покинул сервер §8| §bDiscord: discord.gg/example
  # Для EssentialsX внутри контейнера:
  - ESSENTIALS_QUIT_MESSAGE=&e%player% &7ушел &8(&a%online%&8/&c%max%&8)

Пересоздайте контейнер:

docker-compose down && docker-compose up -d

16. Прямое редактирование файлов в volume

# Найдите volume
docker volume inspect minecraft_data --format '{{.Mountpoint}}'
# Результат, например: /var/lib/docker/volumes/minecraft_data/_data

nano /var/lib/docker/volumes/minecraft_data/_data/server.properties
# или
nano /var/lib/docker/volumes/minecraft_data/_data/plugins/Essentials/config.yml

Проверка результата

17. Тестирование сообщения о выходе

  1. Зайдите на сервер любым аккаунтом (тестовым или основным)
  2. В чате сервера должно отображаться стандартное сообщение о входе
  3. Выйдите с сервера (Disconnect / Quit Game)
  4. Зайдите вторым аккаунтом или попросите игрока онлайн — проверьте, как выглядит quit-сообщение в чате

Логи сервера для отладки:

# Systemd
journalctl -u minecraft-server -f

# Docker
docker logs -f minecraft-server

# Screen
screen -r minecraft

Ищите строки:

[Server thread/INFO]: Player123 left the game
[Essentials] Quit message: Player123 покинул сервер | Discord: discord.gg/example

Возможные проблемы и решения

Проблема 1: Сообщение не изменилось, остаётся стандартное

Причины и решения:

  • Не тот файл конфигурации — проверьте, какой именно сервер использует (Paper/Spigot загружает server.properties из рабочей директории, а не из корня). Выполните pwd в консоли сервера и ищите файл там.
  • Кэш плагина — EssentialsX кэширует конфиг. Выполните /essentials reload или полный рестарт.
  • Перезапись при старте — некоторые панели управления (Pterodactyl, AMP) перезаписывают server.properties из шаблона при каждом запуске. Изменяйте шаблон в панели, а не файл на диске.

Проблема 2: Цветовые коды отображаются как символы § или &

Решение:

  • В server.properties (Vanilla/Paper) используйте только § (Unicode U+00A7). Вводите через Alt+0167 (Win)