FreeMinecraftModels 家具商店
FreeMinecraftModels 內建一個可選的 Vault 支援商店,讓玩家可以用遊戲內貨幣購買可合成的道具。商店預設為停用 — 只有在明確啟用且有可用的 Vault 經濟提供者時,才會註冊自己。
快速設定
- 安裝 Vault 與相容 Vault 的經濟提供者(EssentialsX、CMI 等)。
- 啟動伺服器一次,以生成
plugins/FreeMinecraftModels/shop_config.yml。 - 在
shop_config.yml中設定enabled: true。 - 重啟伺服器(商店會在啟動期間註冊)。
- 在遊戲中執行
/fmm shop以確認選單已開啟。
如果上述任一前提條件缺失,/fmm shop 指令會保持未註冊狀態,玩家會看到「無此指令」的錯誤,而非可設定的停用訊息。
運作方式
- 商店從
plugins/FreeMinecraftModels/recipes/讀取配方。 - 每個
isEnabled: true且shopEnabled: true的配方都會列在商店中。 - 每個項目顯示配方的輸出物品(道具的紙質放置物品),並附加兩行物品說明:
Price:行與Click to purchase提示。 - 點擊項目會呼叫
PurchaseHandler,它會透過 Vault 檢查玩家的餘額、扣除價格,並將放置物品交給玩家。無法放入物品欄的物品會被丟在玩家腳邊。
權限
| 權限 | 預設 | 說明 |
|---|---|---|
freeminecraftmodels.shop | true | 開啟商店所需。預設為 true,讓每位玩家都可瀏覽 |
僅有權限本身並不會啟用商店 — 在 shop_config.yml 中設定 enabled: true 與一個運作中的經濟提供者仍然是必要條件。
shop_config.yml
請參閱 配置頁面 以取得完整的鍵參考。主要的鍵有:
enabled— 主開關(預設false)defaultPrice— 寫入未設定自己shopPrice的配方檔的價格menuTitle、priceLoreFormat、clickToBuyLoreFormat— 視覺風格messages.*— 五個可自訂的回饋訊息
所有訊息字串都支援 & 顏色代碼以及配置參考中列出的佔位符。
每個配方的欄位
plugins/FreeMinecraftModels/recipes/<model_id>.yml 中的每個配方都帶有兩個商店專屬欄位:
isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
| 欄位 | 預設 | 行為 |
|---|---|---|
shopEnabled | true | 為 false 時,配方仍可合成但永遠不會出現在 /fmm shop |
shopPrice | 來自 shop_config.yml 的 defaultPrice | 玩家點擊物品時的 Vault 貨幣成本 |
/fmm craftify 建構器在儲存時會寫入這兩個欄位,所以調整價格只需要編輯一下配方檔,然後執行 /fmm reload。
購買結果
PurchaseHandler 識別五種結果。每種都對應到 shop_config.yml 中一個可設定的訊息:
| 結果 | 觸發條件 | 訊息鍵 |
|---|---|---|
SUCCESS | 扣款成功且物品放入了物品欄 | messages.purchaseSuccess |
SUCCESS_WITH_OVERFLOW | 扣款成功,但物品必須丟在玩家腳邊 | messages.purchaseSuccess + messages.inventoryFull |
INSUFFICIENT_FUNDS | 玩家餘額低於價格,或底層的經濟提供者拒絕扣款 | messages.insufficientFunds |
NOT_FOR_SALE | 配方已停用或 shopEnabled: false | messages.itemNotForSale |
SHOP_DISABLED | 在執行階段強制停用(例如經濟提供者消失) | messages.shopDisabled |
疑難排解
/fmm shop 不存在。
商店未註冊。請驗證以下三項:
- 已安裝 Vault
- 已註冊經濟提供者(執行
/balance或/eco以確認有提供者回應) shop_config.yml中enabled: true
然後重啟伺服器。該指令僅在啟動時註冊。
我預期看到的物品在選單中遺失。
在 plugins/FreeMinecraftModels/recipes/ 中開啟配方檔。檢查 isEnabled 與 shopEnabled 是否皆為 true。編輯後執行 /fmm reload。
玩家被扣款但沒有取得物品。
請檢查伺服器主控台是否有 Vault 錯誤。處理器只在成功的餘額檢查後才消耗貨幣,但下游的經濟提供者仍可能讓實際的扣款失敗 — 處理器會捕捉這種情況並回傳 INSUFFICIENT_FUNDS。如果扣款成功而物品生成失敗,請附上點擊前後的完整主控台日誌提交錯誤報告。