跳至主要內容

BetterStructures 常見問題

如果你的問題是關於首次 Nightbreak 連結、套件下載或手動匯入,請先查看共享的全域頁面。此常見問題僅保留 BetterStructures 特定的答案。

為什麼結構沒有出現?

最常見的原因是你在 BetterStructures 安裝之前已經探索過的地形中進行測試。

BetterStructures 設計為生成到未探索的地形中,因此不會回溯填充舊的區塊。如果你想快速看到自然生成:

  • 飛到全新的區塊
  • 生成一個新的測試世界
  • 或使用放置和設定指令而不是等待自然生成

為什麼 BetterStructures 在重新載入後停用了自己?

/bs reload 會在工作執行緒重建之前清空所有內容註冊表。若該重建過程拋出例外,繼續執行會留下一個看似已啟用、但內容不完整或為空的外掛,因此 BetterStructures 會刻意以失敗關閉的方式停用自己。

真正的錯誤會在停用之前立即印到主控台。請修正它所指出的設定或 schematic,然後重新啟動伺服器。

為什麼重新載入進行中我的指令被拒絕了?

/bs place/bs lootify/bs pregenerate/bs generateModules 都會讀取或變更由重新載入工作執行緒所擁有的內容註冊表,因此在這段期間會以「content is reloading」訊息被拒絕。該期間新生成的區塊也會被略過。請等待重新載入回報成功後再試一次。

在重新載入期間再次執行 /bs reload 並不會失敗——你的請求會被排入佇列,等第一次完成後會再執行一次完整的重新載入,因此你在重新載入途中所做的檔案變更仍會被讀取到。

如何停止關於新結構的管理員警告?

BetterStructures 在 config.yml 中有一個 warnAdminsAboutNewBuildings 開關,/betterstructures silent 會為你切換該值。

這在預生成或其他管理員密集測試期間很有用,因為此時警告會變得嘈雜。

setupDone 是什麼意思?

setupDone 追蹤 BetterStructures 首次設定流程是否已完成。

  • false 表示設定流程仍被視為未完成
  • true 表示設定流程已經完成

如果你有意要重新執行設定,將 setupDone: false,重新載入外掛,然後再次執行 /bs initialize

BetterStructures 需要 WorldEdit 嗎?

是的。WorldEdit 是 plugin.yml 中的硬依賴,因此 BetterStructures 無法在沒有它的情況下運行。

WorldGuard 整合如何運作?

如果同時安裝了 WorldGuard 和 EliteMobs,BetterStructures 會為其受保護區域註冊並使用 betterstructures-protect 旗標。兩個外掛都必須存在才能啟用 WorldGuard 保護。

相關的設定開關是:

protectEliteMobsRegions: true

如果你不希望 BetterStructures 管理的 WorldGuard 保護支援的內容,將其設為 false

當玩家嘗試在受保護區域內破壞或放置方塊時顯示的訊息也是可設定的:

regionProtectedMessage: "&8[BetterStructures] &cDefeat the zone's bosses to edit blocks!"

我可以將自訂物品加入 BetterStructures 寶藏嗎?

可以。BetterStructures 包含:

/betterstructures lootify <generator> <rarity> <minAmount> <maxAmount> <weight>

在手持你要註冊的物品時使用此指令。該指令會將手持物品寫入所選的寶藏生成器條目。

指令實現的當前驗證規則:

  • 寶藏生成器必須存在
  • 稀有度必須已存在於該寶藏設定中
  • minAmount 必須至少為 1
  • maxAmount 必須至多為 64
  • 手持物品不能是空氣

BetterStructures 支援 MMOItems 寶藏條目嗎?

是的。BetterStructures 在專案中有 MMOItems 支援,現有的寶藏工作流程支援第三方物品。對於 MMOItems 特定的語法,請將你寶藏檔案中的確切設定範例與當前的寶藏頁面文件保持一致,而不是依賴較舊的常見問題片段。

EliteMobs 和 BetterStructures 如何協同工作?

BetterStructures 與 EliteMobs 有軟整合。

概括來說:

  • BetterStructures 可以在生成的結構內放置 EliteMobs 內容標記
  • 當整合啟用時,BetterStructures 還可以管理與 EliteMobs 支援的內容相關的受保護區域

對於共享的設定流程、令牌連結和官方套件生命週期,請使用全域文件和 BetterStructures 設定/內容頁面,而不是將此常見問題作為主要來源。

我可以更安全地預生成世界嗎?

可以。BetterStructures 在 config.yml 中公開了面向效能的預生成設定,包括:

  • percentageOfTickUsedForPregeneration(預設:0.1)- 每個伺服器 tick 用於區塊預生成的比例
  • pregenerationTPSPauseThreshold(預設:12.0)- TPS 低於此值時預生成暫停
  • pregenerationTPSResumeThreshold(預設:14.0)- TPS 高於此值時預生成恢復

對於正常的結構貼上,主要的節奏設定是:

percentageOfTickUsedForPasting: 0.2

較低的值減少每 tick 的影響但使結構貼上更慢。

結構位置如何確定?

BetterStructures 在 config.yml 中保持每種結構類型的間距和隨機偏移控制。完整參考請見設定檔

每種結構類型都會被放置在自己的種子菱形網格上。距離與偏移數值是以區塊(chunk)為單位,而非方塊 - distanceSurface27 大約表示每 27 個區塊有一個地表結構,也就是約 432 個方塊。

主要的距離控制是:

  • distanceSurface(預設:27
  • distanceShallow(預設:22
  • distanceDeep(預設:22
  • distanceSky(預設:90
  • distanceLiquid(預設:60
  • distanceDungeonV2(預設:80

相關的偏移控制是:

  • maxOffsetSurface(預設:5
  • maxOffsetShallow(預設:5
  • maxOffsetDeep(預設:5
  • maxOffsetSky(預設:5
  • maxOffsetLiquid(預設:5
  • maxOffsetDungeonV2(預設:18

距離必須至少為 1。偏移必須介於 01073741823 之間(放置隨機器能安全使用的最大值)。若某個數值超出有效範圍,BetterStructures 會記錄一則警告、把該鍵的預設值寫回 config.yml,並以預設值繼續執行,而不是讓生成失敗。

實際上,這意味著生成是由種子和設定驅動的,而不是在每次重啟時隨機重新洗牌。

modularChunkPastingSpeed 是做什麼的?

目前什麼都不做。modularChunkPastingSpeed(預設:10)仍會被寫入 config.yml,但外掛中沒有任何程式讀取它,因此更改它不會有任何效果。貼上的節奏改由 percentageOfTickUsedForPasting 控制 - 若你想調整 BetterStructures 每個 tick 花在放置方塊上的比例,請使用那個鍵。

spawnProtectionRadius 是做什麼的?

spawnProtectionRadius(預設:100)定義了從世界座標 0, 0 起不會放置任何結構的最小距離(以方塊為單位)。這適用於所有世界。設為 0 以停用出生保護。

如何在特定世界中停用結構?

BetterStructures 維護一個 ValidWorlds.yml 設定檔,控制哪些世界有資格進行結構生成。每個世界都有一個布林開關:

New worlds spawn structures: true
Valid worlds:
world: true
world_nether: true
world_the_end: true

將世界設為 false 以防止 BetterStructures 在該世界中放置任何結構。New worlds spawn structures 設定控制新偵測到的世界是否自動啟用結構生成。

有兩項行為值得留意:

  • 由 EliteMobs 管理的世界預設會被排除。 由 EliteMobs 擁有的世界 - 冒險者公會樞紐與副本地城的複本 - 即使 New worlds spawn structurestrue,仍會被註冊為 false。它們未建構的虛空區塊會被算作新區塊,過去因此導致 BetterStructures 在地城樞紐上加裝結構。既有的 em_ 條目已被一次性遷移翻轉為 false;檔案中的 EliteMobs worlds excluded by default 標記鍵記錄了這項遷移已經執行過,因此若你刻意把某個 em_ 世界改回 true,你的選擇會在重新啟動後保留。
  • 已刪除世界的條目會被清除。 在啟動時,以及世界卸載後約十秒,BetterStructures 會移除任何其世界既未載入也不存在於磁碟上的 Valid worlds 條目,避免檔案累積失效條目。

如何修復損壞或被部分刪除的內容包?

使用 /bs forcereinstallcontent <package|all>。一般的下載會比對版本並略過所有已是最新的項目,而當磁碟上的檔案損壞時,那正是最不該有的行為。強制重新安裝會不管版本,把套件重新推送過同一條已驗證的下載、匯入與重新載入管線。

all 涵蓋 BetterStructures 目前視為已下載、已安裝或已過時的所有套件。如果某個套件的檔案完全消失,BetterStructures 就再也看不到它,因此請直接指定它的 slug - Tab 補全會列出所有已知的 slug。