本站文本內容除另有聲明外,轉載時均必須註明出處。(詳情…本站文本內容除另有聲明外,轉載時均必須註明出處。(詳情…中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!Minecraft中文Wiki微博正在更新!或許有興趣去看看Minecraft中文Wiki微博正在更新!或許有興趣去看看想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。
各位用戶:為了讓我們能更好了解您的需求,提供更優良的服務,請幫助我們填寫一份問卷。編者問卷讀者問卷(需要花費7分鐘左右)

Hi Gamepedia users and contributors! Please complete this survey to help us learn how to better meet your needs in the future. We have one for editors and readers. This should only take about 7 minutes!

Classic世界格式

從 Minecraft Wiki
跳到: 導覽搜尋
Information icon.svg
此特性為Java版獨有。
Grass Block Revision 2.png
該頁面的內容關於過時或已移除的功能。
這些特性只存在於舊版本的Minecraft

Classic世界格式用於各種MinecraftClassic。它使用gzip壓縮,並包含一個後跟序列化的Java對象的短標題。單人遊戲地圖的擴展名為「.mine」。Classic Creative伺服器使用的地圖名為「server_level.dat」。可以備份該文件以保存內容,這有助於保護構造免受惡意破壞者或使用該文件進行地圖編輯

因為這個世界格式取決於Java序列化對象的方式,所以使用它的最簡單方法是通過Classic伺服器本身,minecraft-server.jar。提供了示例代碼以說明如何在minecraft-server.jar之上構建編輯器。

文件格式[編輯 | 編輯原始碼]

解壓縮後,文件格式如下:

位置 大小(字節) 名稱 說明
0 4 Magic ID 魔數ID是用於標識Minecraft文件格式的常數。當前值為0x271bb788
4 1 Version Number 版本號表示用於保存地圖的當前格式。當前值為2
5 可變的 序列化的Javacom.mojang.minecraft.level.Level 有關Java使用的序列化格式的更多信息,請參見手冊],但是編輯文件的最簡單方法是使用此處提供的和官方的minecraft-server.jar文件

訪問字節數組[編輯 | 編輯原始碼]

地圖中最有趣的部分是方塊數組。該數組中的每個字節定義了世界上相應位置的方塊類型。通常有兩個用於訪問方塊字節數組的選項:

您可以將壓縮的.dat文件直接反序列化回Java內部的Level對象的實例,從而可以完全像Minecraft伺服器那樣訪問Level對象的實例。這將允許您通過調用實例化的Level對象上的方法直接設定方塊、維度、生成點和其他地圖的方面。加載前不需要手動解壓縮,因為Java可以動態壓縮和解壓縮gzip壓縮文件。要將數據文件加載回Level類的實例,您需要Level類的類定義。這包含在minecraft-server.jar文件中。可以在創建和保存類中看到此示例。

其他人只需訪問數據文件文件中的原始字節數組就可以讀取和修改地圖的數據。為此您將解壓縮它,更改存儲字節數組的字節,然後再次壓縮它。由於您正在編輯它,因此必須保持第一個344(HEE中的14E)字節不變。接下來的256x256x64位元組是存儲字節數組的位置。此外,如果您知道要查找的位置,也可以通過這種方式更改生成位置坐標:從字節284開始有3個整數值,因此覆蓋接下來的12個字節(3個整數)將允許您更改生成位置。

(免責聲明:這可能會隨着Java的變化發生變化)