Как изменить иконку сервера Minecraft

Подготовка и требования к файлу иконки

Прежде чем подключаться к серверу, подготовьте изображение. Minecraft накладывает строгие ограничения на файл server-icon.png:

  • Формат: только PNG (с прозрачностью или без).
  • Разрешение: ровно 64×64 пикселя. Файлы других размеров клиент не отобразит или выдаст ошибку в логах.
  • Цветовой режим: RGB или RGBA (8 бит на канал). Индексированные цвета (палитра) иногда вызывают артефакты — лучше сохранять в Truecolor.
  • Имя файла: строго server-icon.png. Регистр важен для Linux.
  • Размер файла: рекомендуется не более 10–15 КБ. Большие PNG загружаются дольше, но технического лимита нет.

Проверить параметры можно утилитой file или identify (ImageMagick) после загрузки на сервер.

1. Подключение к выделенному серверу через proxify.cloud

  1. Откройте панель управления proxify.cloud.
  2. Перейдите в раздел Серверы → выберите ваш выделенный сервер (Dedicated Server).
  3. Нажмите кнопку Консоль (VNC/NoVNC) или используйте SSH-доступ, если он уже настроен.
    • Для SSH: ssh root@<IP-адрес_сервера> (IP указан в карточке сервера на proxify.cloud).
    • Пароль root также доступен в панели (вкладка «Доступ» или письмо при создании).

Важно: Все дальнейшие команды выполняются в терминале Ubuntu на этом выделенном сервере.

2. Определение рабочей директории сервера Minecraft

Расположение файлов зависит от способа установки. На выделенных серверах чаще всего используются:

  • Docker-контейнер (популярные образы: itzg/minecraft-server, parkervcp/pufferpanel).
  • Systemd-сервис с запуском jar-файла напрямую.
  • Панель управления (Pterodactyl, PufferPanel, AMP) — файлы лежат в /var/lib/panel/servers/<uuid>/ или /home/<user>/server/.

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

Выполните команду, чтобы найти корневую папку сервера:

find / -name "server.properties" -type f 2>/dev/null | head -n 5

Пример типичных путей:

  • /opt/minecraft/server.properties — ручная установка.
  • /home/minecraft/server.properties — отдельный пользователь.
  • /var/lib/pterodactyl/volumes/<id>/server.properties — Pterodactyl на proxify.cloud.
  • /data/server.properties — внутри Docker-контейнера (см. пункт 4).

Запомните путь к папке, где лежит server.properties. Это и есть SERVER_ROOT.

3. Загрузка иконки на сервер (SCP / SFTP)

Самый надежный способ — скопировать файл с локального ПК через SCP или SFTP-клиент (WinSCP, FileZilla, Termius).

Вариант А: SCP (Linux/macOS/WSL)

# Синтаксис: scp <путь_локально> <пользователь>@<IP_сервера>:<SERVER_ROOT>/
scp ~/Downloads/server-icon.png root@192.0.2.10:/opt/minecraft/

Вариант Б: SFTP через FileZilla

  1. Протокол: SFTP.
  2. Хост: IP-адрес сервера с proxify.cloud.
  3. Порт: 22 (стандартный SSH).
  4. Логин: root (или ваш пользователь).
  5. Пароль: из панели proxify.cloud.
  6. Перетащите server-icon.png в папку SERVER_ROOT.

Вариант В: Загрузка через веб-консоль proxify.cloud (если нет SSH-клиента)

  1. В панели proxify.cloud откройте Консоль (NoVNC).
  2. Установите wget или curl, если отсутствуют: apt update && apt install -y wget.
  3. Загрузите файл по прямой ссылке (например, с GitHub Gist, Imgur direct link или вашего веб-сервера):
    cd /opt/minecraft
    wget -O server-icon.png "https://example.com/path/to/server-icon.png"
    

4. Проверка и коррекция изображения на сервере

После загрузки обязательно проверьте параметры файла командой:

cd /opt/minecraft  # замените на ваш SERVER_ROOT
file server-icon.png
identify server-icon.png  # если установлен imagemagick

Ожидаемый вывод file:

server-icon.png: PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced

Ожидаемый вывод identify:

server-icon.png PNG 64x64 64x64+0+0 8-bit sRGB 2.3KB 0.000u 0:00.000

Если разрешение не 64x64 — исправьте прямо на сервере

Установите ImageMagick:

apt update && apt install -y imagemagick

Приведите к нужному размеру (с обрезкой или масштабированием):

# Масштабирование с сохранением пропорций и заполнением прозрачностью (рекомендуемо)
convert server-icon.png -resize 64x64^ -gravity center -extent 64x64 server-icon.png

# Или простое принудительное растяжение (может исказить)
# convert server-icon.png -resize 64x64! server-icon.png

Проверьте снова командой identify server-icon.png.

5. Установка прав доступа и владельца

Это критически важный шаг. Если сервер запускается от пользователя minecraft, pterodactyl, docker или root — файл должен быть читаем именно этим пользователем.

Определите пользователя запуска

ps aux | grep -E "java.*minecraft|java.*server.jar" | grep -v grep

Смотрите на первый столбец (USER).

Настройка прав (пример для пользователя minecraft)

chown minecraft:minecraft /opt/minecraft/server-icon.png
chmod 644 /opt/minecraft/server-icon.png

Если сервер в Docker (образ itzg/minecraft-server)

Файл должен лежать в смонтированной хост-директории (volume). Права на хосте выставляйте для UID/GID контейнера (по умолчанию 1000:1000):

chown 1000:1000 /opt/minecraft/server-icon.png
chmod 644 /opt/minecraft/server-icon.png

Если используется панель Pterodactyl/PufferPanel на proxify.cloud

Панели обычно запускают сервер от пользователя pterodactyl или контейнера с UID 999/1000.

# Для Pterodactyl (обычно)
chown 999:999 /var/lib/pterodactyl/volumes/<UUID>/server-icon.png
chmod 644 /var/lib/pterodactyl/volumes/<UUID>/server-icon.png

6. Перезапуск сервера Minecraft

Иконка кэшируется клиентом при пинге (Server List Ping). Сервер читает файл только при старте. Горячая перезагрузка (/reload) не обновляет иконку.

Перезапуск через systemd (ручная установка)

systemctl restart minecraft
# или
systemctl restart minecraft-server

Проверьте статус: systemctl status minecraft.

Перезапуск через Docker

docker restart <container_name_or_id>
# Пример для itzg/minecraft-server
docker restart mc-server

Перезапуск через панель proxify.cloud (Pterodactyl / PufferPanel / AMP)

  1. Зайдите в панель управления игровым сервером (часто доступна по поддомену или порту, указанному в proxify.cloud).
  2. Нажмите Stop → дождитесь остановки → Start.
  3. Либо используйте кнопку Restart.

Перезапуск через screen/tmux (ручной запуск в консоли)

Если вы запускали jar вручную в screen:

  1. Подключитесь к сессии: screen -r minecraft.
  2. Остановите сервер командой stop в консоли сервера.
  3. Запустите снова: java -Xms4G -Xmx4G -jar server.jar nogui.
  4. Отсоединитесь: Ctrl+A затем D.

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

  1. Запустите клиент Minecraft (той же версии, что и сервер).
  2. Добавьте сервер в список (Multiplayer → Add Server).
  3. Иконка должна отобразиться рядом с адресом сервера.

Проверка через протокол (для отладки без клиента)

Используйте mcstatus (Python) или онлайн-чекеры (mcsrvstat.us, api.mcsrvstat.us).

Установка mcstatus:

pip3 install mcstatus

Запрос:

mcstatus <IP_сервера>:<порт> ping

В выводе ищите поле icon (base64 строка). Если оно присутствует и начинается с data:image/png;base64, — иконка передана сервером корректно.

8. Очистка кэша клиента (если иконка не обновилась)

Клиент Minecraft кэширует иконки в папке servers.dat и кэше текстур.

Windows

%APPDATA%\.minecraft\servers.dat  — удалите запись сервера и добавьте заново.
%APPDATA%\.minecraft\server-icon-cache\ — можно удалить всю папку (в новых версиях).

Linux

~/.minecraft/servers.dat
~/.minecraft/server-icon-cache/

macOS

~/Library/Application Support/minecraft/servers.dat

После удаления перезапустите клиент и добавьте сервер снова.


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

1. Иконка не появилась, в логах ошибка Failed to load server icon

Причина: Неверный формат, разрешение не 64x64, поврежденный PNG или индексированные цвета. Решение:

  • Проверьте identify server-icon.png.
  • Пересохраните в GIMP/Photoshop: Export As → PNG → 64x64 → RGB/RGBA → без интерлейса.
  • Загрузите заново, перезапустите сервер.

2. Иконка отображается как «сломанный квадрат» или розовый/черный квадрат

Причина: Файл имеет разрешение 64x64, но Minecraft не может его декодировать (например, APNG, 16-битные каналы, нестандартные чанки). Решение:

# Принудительное перекодирование в безопасный PNG 8-bit RGBA
convert server-icon.png -depth 8 -strip -define png:color-type=6 PNG32:server-icon.png
chown <user>:<group> server-icon.png

Затем перезапуск сер