Minecraft Руководство

Как восстановить данные одного игрока из бэкапа Minecraft Java: поиск UUID, файлы .dat и защита инвентаря

Восстановление данных отдельного игрока из бэкапа Minecraft Java: сопоставление никнейма с UUID через usercache.json, точечное извлечение файлов .dat и защита от перезаписи из памяти.

Как восстановить данные одного игрока из бэкапа Minecraft Java: поиск UUID, файлы .dat и защита инвентаря

Случайная смерть в лаве из-за серверного лага, повреждение чанка или непреднамеренное удаление инвентаря вызывают необходимость отката данных отдельного пользователя. Полный откат мира из резервной копии уничтожит постройки и прогресс всех остальных участников сервера, поэтому администратору требуется точечное хирургическое восстановление.

В этом практическом руководстве мы разберём, где хранятся файлы инвентарей игроков, как сопоставить никнейм с UUID через usercache.json, безопасно извлечь файл .dat из архива и предотвратить его перезапись из оперативной памяти сервера.

Структура хранения данных игроков в Minecraft Java#

В отличие от ранних версий игры, серверы Minecraft Java идентифицируют пользователей исключительно по уникальному идентификатору UUID (Universally Unique Identifier).

В каталоге мира (world/ или world_nether/) за состояние игроков отвечают три директории:

  • world/playerdata/<UUID>.dat — бинарный файл формата GZip NBT. Содержит инвентарь игрока, содержимое сундука Края (Ender Chest), уровень опыта, текущие координаты (Pos), активное измерение и запас здоровья.
  • world/stats/<UUID>.json — текстовая статистика (количество добытых блоков, пройденное расстояние, смерти).
  • world/advancements/<UUID>.json — дерево выполненных достижений.

Определение UUID игрока через usercache.json#

Перед извлечением данных необходимо узнать точный UUID пострадавшего игрока. Сервер ведёт локальный кэш сопоставлений в корневой папке игры:

bash
cd /opt/minecraft/server
jq '.[] | select(.name=="Steve")' usercache.json

Команда выведет структуру:

json
{
  "name": "Steve",
  "uuid": "4566e69f-c907-48ee-8d71-d7ba5aa00c20",
  "expiresOn": "2026-12-07 12:00:00 +0000"
}

Сохраните полученный UUID в переменную оболочки:

bash
PLAYER_UUID="4566e69f-c907-48ee-8d71-d7ba5aa00c20"
echo "Target UUID: ${PLAYER_UUID}"

Извлечение данных конкретного игрока из резервной копии#

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

bash
mkdir -p /tmp/mc_restore
tar -I zstd -xf /opt/backups/minecraft_2026-11-06.tar.zst \
  -C /tmp/mc_restore "world/playerdata/${PLAYER_UUID}.dat"
ls -la "/tmp/mc_restore/world/playerdata/${PLAYER_UUID}.dat"

Если резервная копия была сохранена в формате .tar.gz, замените флаг -I zstd на стандартный -xzf.

Безопасная замена файлов и предотвращение перезаписи из памяти#

Критическая ошибка администраторов — замена файла .dat, когда игрок находится на сервере. Java Virtual Machine держит состояние подключённого пользователя в оперативной памяти. При отключении игрока или очередном автоматическом сохранении мира сервер запишет данные из RAM на диск, полностью уничтожив восстановленный файл.

Остановите сервер или принудительно отключите игрока:

bash
# Принудительное отключение игрока через RCON (или systemctl stop minecraft)
mcrcon -H 127.0.0.1 -P 25575 -p "SecretPass" "kick Steve Восстановление инвентаря"

# Замена файла данных на версию из бэкапа
cp "/tmp/mc_restore/world/playerdata/${PLAYER_UUID}.dat" \
   "/opt/minecraft/server/world/playerdata/${PLAYER_UUID}.dat"

# Очистка временного каталога
rm -rf /tmp/mc_restore

После повторного входа на сервер игрок появится с точным состоянием инвентаря, сундука Края и координат на момент создания снимка, при этом прогресс всех остальных выживших останется нетронутым.

Если вы хотите управлять мирами Minecraft с поддержкой гранулярного отката игроков в один клик, автоматическими бэкапами без остановки сервера и удобным поиском UUID, профессиональный хостинг серверов Minecraft предоставляет все необходимые инструменты в интуитивной панели управления.

Источники#