轉移至 Sponge

本節內容是為了協助伺服器擁有者從其他的伺服器平台轉移至 Sponge。

警告

請在轉移之前先備份您的伺服器檔案。如果有什麼萬一,至少還有備份!

轉移至 Sponge

如要轉移至 SpongeForge 或 SpongeVanilla,請看下方的章節。大部份的說明兩者皆適用,不同處會另外說明。

從 CraftBukkit 或 Spigot 轉移

備註

Spigot 是 CraftBukkit 的衍生版本。

世界

Forge,同理與 SpongeForge(還有 SpongeVanilla),都和原版的 Minecraft 使用相同的世界結構。原版的 Minecraft 將地獄(通常是 world_nether)與終界(通常是 world_the_end)維度放在 world 資料夾。然而 Bukkit 和 Spigot 並不是使用這套系統來儲存世界,因此必須進行轉換。

SpongeForge 與 SpongeVanilla 提供了一個完全自動化的轉換腳本,協助你轉換你的世界。這是它的運作方式:

  1. 關閉你的 Bukkit 或 Spigot 伺服器並備份整個資料夾。

  2. 在舊伺服器的資料夾裡安裝 SpongeForge 或 SpongeVanilla,並移除 Bukkit 或 Spigot 的 jar 檔。如果你不確定如何正確地安裝 SpongeForge 或 SpongeVanilla,請參閱這裡。

  3. 啟動 Sponge 伺服器,轉移工具將會自動載入。

  4. 轉移工具將檢視 bukkit.yml 中一個名為 world-container 的設定,並搜尋世界的資料夾以進行轉移。如果這些檔案不存在(或由於什麼原因導致無法讀取),那轉移工具將會使用伺服器的 root 資料夾(因為這是 CraftBukkit 的預設值)。

  5. 接著將會進行轉移。在此同時,世界會從我們稱為 world container 的位置複製到以 server.properties 檔案中的 level-name 所命名的資料夾。請注意,在 world container 中的原始檔案在轉移過程會保持不變,也就是說產生了一個副本。

  6. Bukkit 將資料放在奇怪的地方(並賦予其詭異的名字),因此必須套用兩項重要的修正。請記住,這些修正是基於假設(根據 Bukkit 的結構)。

    • 第一個修正是將所有以 level-name 屬性開頭並以原版維度名稱結尾(_nether/_the_end)的任何資料夾分別重新命名為 DIM-1 與 DIM1。

    • 第二個修正是將 Bukkit 原版地獄與終界的 region 資料進行轉移。Bukkit 分別將他們放到 DIM-1\region 與 DIM1\region,而原版和 Forge 期望將 region 放到世界資料夾結構的根目錄 。

轉移工具無法提供所有所需的設定值。也就是說,你必須手動修改幾個參數以使得世界能夠被 SpongeForge 或 SpongeVanilla 正確載入。強烈建議使用世界管理插件來設定正確的參數與實際載入世界。

備註

正如已經指出的那樣,我們基於幾個假設來轉移你的世界。因此 Sponge 並不會直接載入這些世界,你需要安裝一個插件來處理這件事。

如果一切正常,轉移工具所產生的輸出應該會像這樣:

[17:32:29] [Server thread/INFO] [Sponge]: Checking for worlds that need to be migrated...
[17:32:29] [Server thread/INFO] [Sponge]: Migrating [world_lol] from [.].
[17:32:29] [Server thread/INFO] [Sponge]: Migrated world [world_lol] from [.] to [.\world\world_lol]
[17:32:29] [Server thread/INFO] [Sponge]: Migrating [world_nether] from [.].
[17:32:29] [Server thread/INFO] [Sponge]: Migrated world [world_nether] from [.] to [.\world\DIM-1]
[17:32:29] [Server thread/INFO] [Sponge]: Migrating [world_the_end] from [.].
[17:32:29] [Server thread/INFO] [Sponge]: Migrated world [world_the_end] from [.] to [.\world\DIM1]
[17:32:29] [Server thread/INFO] [Sponge]: [3] worlds have been migrated back to Vanilla's format.

當一切完成後,你應該會得到能以 Sponge 載入的所有世界副本。為防萬一,原本的世界檔案會保留在原處。

伺服器與世界設定檔案

CraftBukkit 與 Sponge 皆共享由原版 Minecraft 提供的檔案。如果你安裝的 CraftBukkit 中已經存在這些檔案,它們將能夠再次被 Sponge 利用。

  • server.properties

  • banned-ips.json

  • banned-players.json

  • ops.json

  • usercache.json

  • whitelist.json

以下檔案只可供 CraftBukkit 使用,而 Sponge 用不到它們,可以移除:

  • bukkit.yml

  • commands.yml

  • help.yml

  • permissions.yml

想要從 Spigot 轉移的使用者可能會希望能將 spigot.yml 與 Sponge 中的 global.conf 相互對照。 spigot.yml 中的某些鍵在 global.conf 中有其對應項,可能需要複製同時存在於兩個檔案中的所有鍵值。

插件

Sponge 並未原生支援 Bukkit 插件。然而有些社群成員正在利用特殊的 Sponge 插件重新實作 Bukkit API,或許能讓 Bukkit 的插件作用於 Sponge 伺服器。而這個插件目前還沒有發佈的預定。

Ore 是 Sponge 官方的插件查詢資料庫,建議從 Ore 中下載所有的 Sponge 插件。在查找 Bukkit 插件的代用品時,請牢記以下幾點:

  • 並非所有的 Bukkit 開發者都選擇將插件移植到 Sponge。然而隨著時間的推移,其他人也可能會建立一個合適的替代品。

  • 並非所有從 Bukkit 移植的 Sponge 插件都能自動轉換設定檔。能否自動轉換設定檔取決於每個插件開發者。

  • 有些從 Bukkit 移植的 Sponge 插件可能會有功能上的變化,甚至可能使用不同的設定結構。

從 Canary 轉移

世界

Forge 與 SpongeForge(還有 SpongeVanilla),都和原版的 Minecraft 使用相同的世界結構。原版的 Minecraft 將地獄(通常是 world_nether)與終界(通常是 world_the_end)維度放在 world 資料夾。然而 Bukkit 和 Spigot 並不是使用這套系統來儲存世界。

Canary 把地獄和終界放在 world 資料夾外,如果你還想保留它們的話,Canary 提供一個簡單將世界轉換成與 Sponge 相容的結構的指令:/makevanilla。轉換成功的話,世界檔案會放在 vanilla 資料夾內。

伺服器與世界設定檔案

Sponge 沿用了許多原版 Minecraft 的設定檔,像是 server.properties 等,不過 Canary 並非如此,它唯一沿用的檔案是 usercache.json,因此只有這個檔案能夠繼續被 Sponge 利用。

即使如此還是能手動轉換部分 Canary 設定檔供 Sponge 使用,可轉換的檔案列表如下。

Canary 檔案

對應的 Sponge 檔案

server.cfg <world>_<dimension>.cfg

server.properties

<world>_<dimension>.cfg

global.conf <dimension>/dimension.conf

ops.cfg

ops.json

db.cfg

無對應檔案

motd.txt

無對應檔案

插件

SpongeVanilla 和 SpongeForge 都沒有對 Canary 插件提供原生支援。未來可能會以特殊 Sponge 插件的形式重新實作 Canary API。

Ore 是 Sponge 官方的插件儲存庫,建議僅從 Ore 中下載的 Sponge 插件。在尋找 Canary 插件的替代品時,請注意以下幾點:

  • 並非所有的 Canary 開發者都想將插件移植到 Sponge。然而隨著時間的推移,其他人可能也會製作適合的替代品。

  • 並非所有從 Canary 移植的 Sponge 插件都能自動轉換設定檔。能否自動轉換取決於插件開發者是否打算實作這個功能。

  • 某些從 Canary 移植的 Sponge 插件可能會有功能上的變化,甚至可能使用不同的設定檔結構。

從 Forge 轉移

從普通的 Forge 伺服器轉移至 SpongeForge 或 SpongeVanilla 十分簡單,且不需太多準備工作。

轉移至 SpongeForge

請先確保你的伺服器正在使用相容於 SpongeForge 的 Forge 版本,你可以在 Forge Downloads 找到建議版。如果你還有其他模組,也得一起更新。

準備好安裝 SpongeForge 後,請進行以下步驟:

  1. 如果你的伺服器還在開啟狀態,請停止伺服器。

  2. 從 Sponge 網站上下載 SpongeForge,然後從 MinecraftForge 上下載 Forge。

  3. 把 SpongeForge.jar 放進伺服器目錄中的 mods 資料夾。

  4. 大功告成,啟動伺服器吧!

備註

如果伺服器上只有安裝 SpongeForge 一個模組的話,玩家們就能使用原版客戶端進行遊戲。如果有其他的模組,可能玩家也得安裝才能進入伺服器。

遷移到 SpongeVanilla

警告

如果選擇轉移至 SpongeVanilla 的話,會遺失所有 Forge 模組的資料、方塊和實體,因為 SpongeVanilla 無法支援 Forge 模組。在選擇要使用 SpongeForge 還是 SpongeVanilla 時請考慮這點。

轉移過程幾乎和上述相同:

  1. 如果你的伺服器還在開啟狀態,請停止伺服器。

  2. 下載 SpongeVanilla,然後從 Mojang 官網上下載原版伺服器。

  3. 把世界和設定檔放在伺服器資料夾中。

  4. 透過執行 spongevanilla.jar 以啟動伺服器。

從原版轉移

從原版 Minecraft 伺服器轉移到 Sponge 很簡單,因為 Forge、SpongeForge 和 SpongeVanilla 一樣都使用跟原版 Minecraft 相同的世界結構。Sponge 還使用與原版相同的設定檔,像是 server.properties 等。

首先你該選擇要使用 SpongeForge 還是 SpongeVanilla 。

備註

只要你 SpongeForge 伺服器不安裝會修改客戶端的模組,兩種 Sponge 實作都能支援原版客戶端。

  1. 如果你的伺服器還在開啟狀態,請停止伺服器。

  2. 下載 SpongeVanilla 或 SpongeForge。

  3. 把世界和設定檔放在伺服器資料夾中。

  4. 啟動你的新伺服器。

安裝 Sponge

位於 安裝 SpongeForge 以及 安裝 SpongeVanilla 中的指南提供了轉換至 Sponge 的安裝說明。