CraftEngine 重新定義了 Minecraft 外掛程式架構,作為下一代自定義內容實現的解決方案。通過 JVM 級別的注入,它提供了前所未有的性能、穩定性和可擴充性。該框架提供了一個代碼優先的 API,用於註冊原生集成的方塊行為和物品交互邏輯。
- 安裝 JDK 21。
- 開啟終端並切換到項目資料夾。
- 執行 './gradlew build',構建產物將生成在 '/target' 資料夾中。
- 匯入項目並執行 Gradle 構建作。
- 構建產物將生成在 '/target' 資料夾中。
- 確保您正在運行 Paper(或其分支)1.20.1+ 伺服器。CraftEngine 不支援 Spigot,且未來也不太可能支援。該外掛程式包含了超過 10,000 行基於 Paper 伺服器的 Minecraft 代碼。
- 使用 JDK 21 來運行伺服器。
CraftEngine 提供了兩種安裝模式:標準安裝和 Mod 模式。標準安裝與傳統外掛程式安裝方式相同,即將外掛程式放入外掛程式資料夾中。下面我們將詳細介紹 Mod 模式的安裝步驟。
- 下載最新的 ignite.jar到您的伺服器根目錄。
- 选择以下任一操作:
- 將您的伺服器 JAR 檔案重新命名為
paper.jar
- 添加啟動參數:
-Dignite.locator=paper -Dignite.paper.jar=./paper-xxx.jar
- 示例:
java -Dignite.locator=paper -Dignite.paper.jar=./paper-1.21.4-164.jar -jar ignite.jar
- 將您的伺服器 JAR 檔案重新命名為
- 啟動伺服器以生成 '/mods' 目錄。
- 將最新的 mod.jar 放入 '/mods' 資料夾。
- 將外掛程式的 JAR 檔案放入 '/plugins' 資料夾安裝。
- 執行兩次重啟:
- 第一次重啟用於檔案初始化。
- 第二次重啟以啟動所有元件。
CraftEngine 使用運行時位元組碼生成技術,在伺服器原生級別註冊自定義方塊,並結合客戶端數據包修改以實現視覺同步。此架構提供了以下功能:
🧱 自訂原生方塊
- 動態註冊方塊,完全可控。
- 物理屬性:硬度、引燃幾率、亮度等所有標準屬性。
- 自定義行為:通過 API 實現樹苗、作物、下落的方塊等。
- 原生相容性:完全保留原生方塊機制(例如音符盒、絆線)。
📦 數據包集成
- 定義自定義礦脈。
- 產生自定義樹木。
- 配置自定義地形生成。
⚡ 性能優勢
- 比傳統的 Bukkit 事件監聽器更快、更穩定。
- 策略性代碼注入以最小化開銷。
CraftEngine 通過底層注入實現完全可定製的合成系統。與傳統外掛程式不同,它在處理 NBT 修改時不會失效,確保配方結果僅與唯一的物品標識符綁定。
該外掛程式使用核心實體來儲存傢俱元數據,同時將碰撞實體和模組元件作為用戶端數據包傳輸。此架構實現了顯著的伺服器端性能優化,同時支持通過多部分物品集成實現複合傢俱組裝。
鑒於外掛程式配置的廣泛性和複雜性,CraftEngine 實現了模組化範本系統以分隔關鍵設置。這使得使用者可以自定義配置格式,同時顯著減少冗餘的 YAML 定義。
該外掛程式通過配置實現模型繼承和紋理覆蓋,同時支援從 1.21.4 版本開始的所有物品模型。它包含一個版本遷移系統,可以自動將 1.21.4+ 的物品模型降級為舊格式,以實現最大向後相容性。
CraftEngine 從以下開源專案中汲取了靈感:
CraftEngine 的實現依賴於以下基礎庫:
如果您提交的 PR 是關於 Bug 修復的,它很可能會被合併。如果您想提交新功能,請提前在 QQ 上聯繫我。
- 克隆此倉庫。
- 在 '/bukkit-loader/src/main/resources/translations' 中創建一個新的語言檔。
- 完成後,提交 pull request 以供審核。我們感謝您的貢獻!
如果您喜欢使用 CraftEngine,请考虑支持开发者!
- Polymart: [无]
- BuiltByBit: [无]
- 愛發電: 通過愛發電支援
repositories {
maven("https://repo.momirealms.net/releases/")
// 如果你的網路環境受限可以嘗試下面的存儲庫位址
// maven("https://repo-momi.gtemc.cn/releases/")
}
dependencies {
compileOnly("net.momirealms:craft-engine-core:0.0.22")
compileOnly("net.momirealms:craft-engine-bukkit:0.0.22")
}