哈囉大家好,這裡是遇到超級疑難雜症的小編過路君子
當啟動 docker 服務之後,伺服器會在一段時間後 ping 不到 gateway,但是網卡依舊運作正常。
在我們使用 CoreProtect 查詢的時候,通常除了會顯示事件發生的位置以外,還會顯示在哪個維度 (下圖紅線處)。
而在預設下,我們會有三個維度:world、world_nether 和 world_the_end。
(所有圖片點擊都可以放大、變高清)
如果今天我們只有使用 Spigot 或是 Papermc 之類的來開伺服器,那在使用 CoreProtect 並搭配 MySQL 或是 MariaDB上是完全沒有問題的。
但是當我們一旦開始跨入 BungeeCord 或是 Waterfall 的領域時,除非兩伺服器的資料庫完全隔離,要不然在紀錄時就會打架了,我們根本無法知道上面標示的 world 到底是哪個伺服器的 world。
為了解決問題,我們便要將變更預設的維度名稱。
在開始之前,以下的資料來自以下網站並經小編測試有效:Rename Default World(Github)。
那接下來小編將示範如何將預設的維度名稱從 world 改為 eventworld;順帶一提,其使用的開服套件是 Papermc。
Step1. 關閉遊戲伺服器
不管是在遊戲內直接下 /stop 還是在外面強制停止伺服器,亦或者是下 docker-compose down 等等等之類的指令,只要能關停遊戲伺服器就 ok 了。
Step2. 重新命名遊戲資料夾
通常我們可以在伺服器資料夾下看到 world、world_nether 和 world_the_end 這三個資料夾或目錄(下圖紅框處)。
將其全部改成我們自訂的維度名稱,以小編為例就是改成 eventworld、eventworld_nether 和 eventworld_the_end。
可以依照需求自行改成自己喜歡的名子,例如:newname、newname_nether 和 newname_the_end。
Step3. 編輯 server.properties
打開 server.properties 這個檔案,找到 level-name 這欄,更改後面的名稱為我們的新名子。
以小編為例,就是將 level-name=world
改為 level-name=eventworld
;各位可以依照自己需求改動。
Step4. 啟動伺服器
這時候傳送到新的伺服器並破壞方塊,再次使用 CoreProtect 查詢,就可以發現標示的維度或是世界名稱已經變更為我們重新命名的名子囉。
只有新的資料會被正常顯示新的維度名稱,舊的資料不受影響。
後記
小編最一開始是使用 Multiverse-core 這個插件來開啟多重世界,但是很快便發現了一個致命的問題,那就是這個插件更新太慢,往往都要一個新版本出來後幾個月才會跟進升級。
對於一個需要常常維持版本更新的伺服器會造成非常大的困擾,所以後來就索性放棄了,改用 Proxy 架構的 Waterfall。
Waterfall 其實就是 BungeeCord 中的一個分支,由 Papermc 團隊負責維護,小編只是單純想說伺服器都開 Papermc 了,所以乾脆連 Proxy server 也用 papermc 的產品好了。