跳至主要内容

FreeMinecraftModels 家具商店

FreeMinecraftModels 內建一個可選的 Vault 支援商店,讓玩家可以用遊戲內貨幣購買可合成的道具。商店預設為停用 — 只有在明確啟用且有可用的 Vault 經濟提供者時,才會註冊自己。

快速設定

  1. 安裝 Vault 與相容 Vault 的經濟提供者(EssentialsX、CMI 等)。
  2. 啟動伺服器一次,以生成 plugins/FreeMinecraftModels/shop_config.yml
  3. shop_config.yml 中設定 enabled: true
  4. 重啟伺服器(商店會在啟動期間註冊)。
  5. 在遊戲中執行 /fmm shop 以確認選單已開啟。

如果上述任一前提條件缺失,/fmm shop 指令會保持未註冊狀態,玩家會看到「無此指令」的錯誤,而非可設定的停用訊息。

運作方式

  • 商店從 plugins/FreeMinecraftModels/recipes/ 讀取配方。
  • 每個 isEnabled: true shopEnabled: true 的配方都會列在商店中。
  • 每個項目顯示配方的輸出物品(道具的紙質放置物品),並附加兩行物品說明:Price: 行與 Click to purchase 提示。
  • 點擊項目會呼叫 PurchaseHandler,它會透過 Vault 檢查玩家的餘額、扣除價格,並將放置物品交給玩家。無法放入物品欄的物品會被丟在玩家腳邊。

權限

權限預設說明
freeminecraftmodels.shoptrue開啟商店所需。預設為 true,讓每位玩家都可瀏覽

僅有權限本身並不會啟用商店 — 在 shop_config.yml 中設定 enabled: true 與一個運作中的經濟提供者仍然是必要條件。

shop_config.yml

請參閱 配置頁面 以取得完整的鍵參考。主要的鍵有:

  • enabled — 主開關(預設 false
  • defaultPrice — 寫入未設定自己 shopPrice 的配方檔的價格
  • menuTitlepriceLoreFormatclickToBuyLoreFormat — 視覺風格
  • 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
欄位預設行為
shopEnabledtruefalse 時,配方仍可合成但永遠不會出現在 /fmm shop
shopPrice來自 shop_config.ymldefaultPrice玩家點擊物品時的 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: falsemessages.itemNotForSale
SHOP_DISABLED在執行階段強制停用(例如經濟提供者消失)messages.shopDisabled

疑難排解

/fmm shop 不存在。 商店未註冊。請驗證以下三項:

  • 已安裝 Vault
  • 已註冊經濟提供者(執行 /balance/eco 以確認有提供者回應)
  • shop_config.ymlenabled: true

然後重啟伺服器。該指令僅在啟動時註冊。

我預期看到的物品在選單中遺失。plugins/FreeMinecraftModels/recipes/ 中開啟配方檔。檢查 isEnabledshopEnabled 是否皆為 true。編輯後執行 /fmm reload

玩家被扣款但沒有取得物品。 請檢查伺服器主控台是否有 Vault 錯誤。處理器只在成功的餘額檢查後才消耗貨幣,但下游的經濟提供者仍可能讓實際的扣款失敗 — 處理器會捕捉這種情況並回傳 INSUFFICIENT_FUNDS。如果扣款成功而物品生成失敗,請附上點擊前後的完整主控台日誌提交錯誤報告。