轉移至 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-1DIM1
    • 第二個修正是將 Bukkit 原版地獄與終界的 region 資料進行轉移。Bukkit 分別將他們放到 DIM-1\regionDIM1\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 的安裝說明。