ResourcePackManager (RSPM)
ResourcePackManager 會發現、合併、託管並分發來自受支援外掛和手動提供的資源包。它還能將合併後的 Java 資源包轉換為 Bedrock 資源包,讓 GeyserMC 玩家看到與 Java 玩家相同的自訂內容,並提供對 BungeeCord、Waterfall 和 Velocity 代理網路的一級支援。
功能
- 發現受支援的外掛資源包,並依照
priorityOrder進行合併 - 執行其內建的 HTTP 伺服器以便自行託管合併後的資源包(無需外部檔案託管)
- 在無法自我託管時,可回退至 MagmaGuy 的免費託管(自動託管)
- 可強制或選擇性地提示使用資源包
- 監視資源包變更,並在來源穩定後自動重新合併
- 將合併後的 Java 資源包轉換為適用於 GeyserMC 的 Bedrock 資源包
- 支援代理網路:每個後端伺服器各自產出 Bedrock 資源包,代理外掛則會將其拉取、合併,再透過 Geyser 提供合併結果
架構概覽
RSPM v2 是一個多模組的 Maven 建置專案,但它以單一 jar 形式發佈:ResourcePackManager.jar。這一個 jar 同時包含 Bukkit/Paper 外掛、Velocity 外掛以及 BungeeCord/Waterfall 外掛——Minecraft 會載入與其執行平台相符的那個進入點。不再有獨立的 ResourcePackManager-Velocity.jar / ResourcePackManager-BungeeCord.jar 檔案,也不再有 proxy-extension/ 資料夾。
同一個 jar 會依你放置的位置扮演兩種角色:
- 作為後端外掛(在每個 Paper/Spigot 後端上)— 混合 Java 資源包、執行 Bedrock 轉換器、託管資源包、提供一個小型 HTTP 伺服器,並將資源包推送給 Java 用戶端。
- 作為代理外掛(在 Velocity 或 BungeeCord/Waterfall 代理上)— 拉取每個後端的 Bedrock 資源包與對應檔,合併成單一的網路級資源包,並透過代理的 Geyser 將其提供給 Bedrock 用戶端。
獨立伺服器只需要在後端放置該 jar。代理網路則需要在每個後端放置同一個 jar,並在代理上放一份副本。
當後端偵測到本地安裝了 Geyser-Spigot 時,它也會將內附的 ResourcePackManager-GeyserBridge.jar 放入 Geyser-Spigot/extensions/(這是一個 Geyser 擴充,並非獨立的外掛),讓 Geyser 能夠渲染 RSPM 的自訂 Bedrock 實體。
託管選項
當 autoHost: true 時,會以下列順序自動選擇三種交付路徑:
- 優先自我託管(
preferSelfHost: true,預設)— RSPM 啟動自己的 HTTP 伺服器,執行一連串的健全性檢查(非 LAN 位址、本地端 self-probe、透過 magmaguy.com 的外部可達性探測),然後將本機 URL 公告給用戶端。對 MagmaGuy 零頻寬成本。 - 遠端自動託管回退 — 若任一個自我託管檢查失敗,RSPM 會將資源包上傳到 MagmaGuy 的 CDN(
magmaguy.com/rsp/),並改為公告該 URL。 - 強制自我託管(
selfHostForce: true)— 完全跳過兩種探測與遠端上傳。主要用於測試。
若 autoHost: false,RSPM 會將合併後的 zip 寫入 plugins/ResourcePackManager/output/,由你自行處理後續。
完整的交付決策樹、連接埠解析與外部主機偵測,請參閱自我託管。
Java 轉 Bedrock 轉換
Bedrock 轉換器不再僅限於 FreeMinecraftModels。它會遍歷合併資源包中每一個 1.21.4+ 物品定義檔案 (assets/<namespace>/items/*.json),並為提供這些檔案的任何外掛產出 Bedrock 幾何模型、附掛物 (attachables) 與物品欄圖示:
- Bedrock 玩家可看到任何使用 1.21.4+ 物品定義格式的外掛資源包提供的 3D 物品、自訂盔甲與模型裝備。
- 自訂盔甲材質透過使用原版盔甲幾何結構加上 Java 材質作為可見圖層,在 Bedrock 玩家身上呈現。
- 3D 物品的物品欄圖示是透過
display.gui變換從 Java 模型以軟體渲染產出。 - Bedrock 資源包會透過 Geyser API 以每個 Bedrock 工作階段即時提供,因此材質和模型微調可立即傳遞給下一位加入的 Bedrock 玩家,無需重啟伺服器。但自訂物品對應仍需重啟,因為 Geyser 在啟動時才會註冊它們。
bedrock_display_offsets.yml提供十二個可由使用者調整的手持物品顯示偏移選項(第一人稱六個、第三人稱六個)。
目前的整合
ResourcePackManager 內建支援以下外掛的整合條目:
- BackpackPlus
- BetterHUD
- BetterStructures
- CannonRTP
- EliteMobs
- EternalTD
- FreeMinecraftModels
- InfiniteVehicles
- ItemsAdder
- MegaBlockSurvivors
- MMOInventory
- ModelEngine
- Nexo
- Nova
- Oraxen
- RealisticSurvival
- ResurrectionChest
- ValhallaMMO
- vane-core
每個整合僅在對應外掛已安裝、且其設定的本機路徑或遠端 URL 可使用時才會啟用。此外掛也會在啟動時偵測 Geyser(後端上的 Geyser-Spigot、代理上的 Geyser-Velocity / Geyser-BungeeCord),並將 Bedrock 資源包交付串接到偵測到的版本。