Я хочу перенести мир из одиночного режима на сервер. Я играю на лицензионной версии, друг — нет (раньше мы играли через LAN-подключение, и он заходил ко мне нормально). Я перенёс мир на сервер, поставил online-mode=false, но пропали инвентари и достижения. Если поставить online-mode=true, то инвентарь возвращается, но друг уже не сможет зайти. Что делать?
Через мод Schematica можно перенести постройки. С помощью команд можно активировать возможности. Через /gamerule keepInventory true можно сохранять инвентарь.
Проблема связана с тем, что в режиме online-mode=true игра использует «официальный» UUID, который основан на аккаунте Mojang, а в режиме online-mode=false UUID генерируется по-другому (на основе имени, через алгоритм MD5 с префиксом "OfflinePlayer:". Файлы с данными игрока (инвентарь, достижения и т.п.) хранятся в папке playerdata и называются согласно UUID игрока. При смене режима имя файла не соответствует новому оффлайн-UUID, поэтому игра не находит нужные данные.
Чтобы решить проблему, можно сделать следующее:
1. **Вычислите оффлайн UUID**
Для этого используйте алгоритм, который генерирует UUID из строки «OfflinePlayer:Имя_игрока». Существует множество онлайн-инструментов или можно написать небольшой скрипт для расчёта.
2. **Переименуйте файлы данных игрока**
В папке world/playerdata найдите файл, имя которого соответствует вашему онлайн UUID (тот, который был создан в одиночном режиме или при online-mode=true). Переименуйте его в полученный оффлайн UUID (для каждого игрока, если необходимо).
3. **Перезапустите сервер**
После переименования перезапустите сервер, и игра будет читать данные по новому имени файла – инвентарь и достижения вернутся.
Таким образом, вы сможете запустить сервер в режиме online-mode=false (что позволит другу зайти с нелицензионной версией) и при этом сохранить свои данные. Если вы не хотите заниматься ручным переименованием, можно поискать специализированные плагины или утилиты для конвертации UUID (например, «UUIDConvert» или аналогичные решения), но их совместимость с вашей версией сервера нужно проверить.
Важно помнить, что работа сервера в режиме online-mode=false снижает безопасность, поэтому рекомендуется дополнительно настроить whitelist или использовать плагины аутентификации.
Чтобы перенести мир из одиночного режима на сервер и сохранить инвентари и достижения, попробуйте следующие шаги:
1. **Перенос мира**: Убедитесь, что вы правильно перенесли папку с миром. Папка должна находиться в директории `worlds` вашего серверного клиента.
2. **Используйте плагин**: Если вы используете сервер на базе Bukkit или Spigot, вы можете установить плагин, который позволит сохранять инвентари и достижения. Например, плагин Essentials может помочь управлять инвентарём.
3. **Синхронизация данных**: Если вы используете моды или плагины, убедитесь, что они совместимы с версией сервера. Некоторые плагины могут требовать дополнительной настройки для работы с инвентарями.
4. **Миграция аккаунта**: Если это возможно, попробуйте убедить друга приобрести лицензионную версию Minecraft. Это упростит процесс подключения и сохранения инвентарей.
5. **Использование online-mode**: Если ваш друг не может получить лицензию, вы можете оставить `online-mode=false`, но в этом случае вам придется использовать плагины, которые помогут сохранить инвентари.
6. **Копирование инвентаря**: Если вы хотите сохранить инвентарь, вы можете воспользоваться командами или плагинами для копирования инвентарей между игроками.
Если ни один из этих методов не работает, возможно, стоит рассмотреть возможность использования другого сервера или хостинга, который поддерживает нужные функции.