Classic level формат – Minecraft
Классический уровень Formate используется во всех версиях Minecraft Classic. Он заархивирован и содержит короткий заголовок, за которым следуют последовательные объекты Java. Одиночные миры (SinglePlayer) имеют расширение «.mine». Миры, используемые на серверах Minecraft Classic, использовали «server_level.dat». Эти файлы могут быть зарезервированы, чтобы обеспечить некоторую защиту от гриферов или для использования в редакторах карт.
Поскольку этот формат зависит от того, как Java сериализует объекты, проще всего работать с собственным серверным файлом Minecraft Classic, minecraft-server.jar. Были предоставлены примеры кода, чтобы показать, как собрать редактор в файле minecraft-server.jar.
Формат файла.
В несжатом виде формат файла показывает следующее:
Magic ID Magic ID — это постоянное число, используемое для идентификации формата файла Minecraft. Текущее значение — 0x271bb788. 4 1 Номер версии Номер версии представляет собой текущий формат, используемый для сохранения уровня. Текущее значение равно 2. 5 Сериализованная переменная Java com. mojang. minecraft. level.
Класс уровня более подробная информация о формате сериализации Java доступна в руководстве, самый простой способ отредактировать файл — использовать классы, представленные здесь, в официальном файле minecraft-server.jar.
Доступ к порядку байтов.
Самая интересная часть уровня — порядок блоков. Каждый байт представляет собой организацию, которая определяет тип блока в соответствующем месте в мире. Есть два способа получить доступ к порядку байтов блоков.
Вы можете десериализовать сжатый файл .dat непосредственно в Java как объектный уровень, точно так же, как это делает сервер Minecraft. Это позволяет вам изменять блоки, размеры, точку появления и другие аспекты карты напрямую, вызывая экземпляр объекта уровня. Ручная распаковка перед загрузкой не требуется, так как java может сжимать и распаковывать сжатые файлы во время работы. Чтобы загрузить данные обратно в экземпляр класса уровня. Вам нужно определение класса класса уровня. Это включено в файл minecraft-server.jar.
Другие читали и модифицировали данные карты, просто обращаясь к исходному порядку байтов в файле данных. Для этого можно распаковать файл, внести изменения в ту часть, где находится блочный порядок, и повторно сжать его. Поскольку вы будете редактировать необработанный файл байтов, вы должны оставить первые 344 байта (14E в HEX) нетронутыми. Следующие 256X256X64 байта — это место, где хранится порядок блоков. Кроме того, также возможно изменить местоположение точки стартовых координат мира (спауна).