FreeMinecraftModels
FreeMinecraftModels 既是自訂模型運行時,也是面向開發者的 API。
當前的外掛已不再只是「imports 資料夾加上 /fmm reload」的工作流程。當前的程式碼庫新增了:
- 首次設定流程,以及在設定標記為完成前的加入時提醒
- 由 Nightbreak 支援的設定選單,用於安裝和更新官方模型包
- 在
plugins/FreeMinecraftModels/output/FreeMinecraftModels生成的資源包資料夾 - 在
plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip生成的壓縮包成品 - 更廣泛的指令介面,涵蓋設定、內容更新、生成、偽裝、道具和除錯
- 坐騎點骨骼 — 名稱以
m_開頭的骨骼會在模型上建立可騎乘的座位點,讓玩家騎乘自訂實體 - 自訂顯示模型 JSON — 在
.bbmodel旁放置同名的.json檔案(Blockbench 顯示物品匯出)以覆蓋遊戲內物品外觀(需要 1.21.4+) - 自訂可腳本化物品 — YML 設定中設定了
material:的模型會成為可手持的自訂物品,支援完整的 Lua 腳本和 22 個物品鉤子 - 管理員內容瀏覽器(
/fmm admin)— 供管理員瀏覽已安裝的包、資料夾、模型和自訂物品的物品欄選單 - 玩家可合成物品選單(
/fmm)— 顯示所有可合成物品及其配方的物品欄選單;點擊物品會顯示空間 3x3 方格、箭頭和輸出 - 玩家偽裝系統 —
/fmm disguise <model> [player]、/fmm undisguise [player]、/fmm disguiselist,並提供公開的DisguiseAPI供第三方外掛使用 - 家具商店 — 可選的 Vault 支援
/fmm shop,用於銷售可合成道具,透過每個配方的shopEnabled/shopPrice設定 - 玩家 UI API — Lua 腳本可以向玩家顯示 Boss 血條、動作列和標題
- LocationAPI — 第三方外掛可以註冊地城偵測器和保護提供者,用於驅動 FMM 的 Lua
em.location.is_in_dungeon和em.location.is_protected判斷
從這裡開始
Lua 腳本
FreeMinecraftModels 內建支援針對道具與自訂物品的 Lua 腳本,由 MagmaCore 2.0 腳本引擎驅動。腳本放置於 plugins/FreeMinecraftModels/scripts/。
道具鉤子(8 個)
道具腳本可以回應下列鉤子:
| 鉤子 | 觸發時機 |
|---|---|
on_spawn | 道具被生成到世界中 |
on_game_tick | 道具存在的每一個遊戲 tick |
on_zone_enter | 玩家進入道具的互動區域 |
on_zone_leave | 玩家離開道具的互動區域 |
on_destroy | 道具從世界中被移除 |
on_left_click | 玩家左鍵點擊道具 |
on_right_click | 玩家右鍵點擊道具 |
on_projectile_hit | 拋射物擊中道具 |
道具腳本會接收到 context.prop 表格,其中包含 model_id 和 current_location 等欄位,以及 play_animation(name) 和 stop_animation() 等方法。
物品鉤子(22 個)
自訂物品腳本(針對 YML 中設定了 material: 的模型)可以回應下列鉤子:
| 鉤子 | 觸發時機 |
|---|---|
on_equip | 物品被裝備(進入有效槽位) |
on_unequip | 物品被卸下(離開有效槽位) |
on_attack_entity | 玩家持有該物品時攻擊實體 |
on_kill_entity | 玩家持有該物品時擊殺實體 |
on_take_damage | 玩家裝備該物品時受到傷害 |
on_shield_block | 玩家用盾牌格擋傷害 |
on_shoot_bow | 玩家射出弓箭 |
on_projectile_hit | 玩家發射的拋射物擊中目標 |
on_projectile_launch | 玩家發射拋射物 |
on_right_click | 玩家持有該物品時右鍵點擊 |
on_left_click | 玩家持有該物品時左鍵點擊 |
on_shift_right_click | Shift + 右鍵點擊 |
on_shift_left_click | Shift + 左鍵點擊 |
on_interact_entity | 玩家持有該物品時右鍵點擊實體 |
on_swap_hands | 物品在主副手間切換 |
on_drop | 玩家丟棄物品 |
on_break_block | 玩家持有該物品時破壞方塊 |
on_consume | 物品被消耗(食物/藥水) |
on_item_damage | 物品耐久度受損 |
on_fish | 玩家使用釣魚竿 |
on_death | 玩家裝備該物品時死亡 |
on_game_tick | 物品裝備期間的每個伺服器 tick |
物品腳本會接收到 context.item 表格,包含與所持物品和持有玩家相關的欄位和方法。Lua 腳本也可以使用玩家 UI API 來顯示 Boss 血條、動作列和標題。
當前說明
- 內建於外掛中、由 Nightbreak 管理的官方內容包:
Basic Furniture Pack、BetterStructures Prop Pack、EliteMobs Prop Pack、Craftenmine's Weapons Item Pack,以及Craftenmine Tools Item Pack。 - FreeMinecraftModels 會在啟動和
/fmm reload時重建其資源包輸出,並派發FmmReloadedEvent,讓相依的外掛可以重新附加其模型參考。 - ResourcePackManager 仍然是自動將生成資源包分發給客戶端的建議方式。