迁移到 Sponge

本节内容旨在帮助服主将服务器从其它平台迁移到 Sponge。

警告

在迁移 备份所有的服务端数据。如果出了什么事,你仍然还有机会从头再来!

迁移到 Sponge

下面的章节将会有助于你把服务器迁移到 SpongeForge 或 SpongeVanilla 上。大部分指令是通用的,不同之处将会有说明。

从 CraftBukkit 或者 Spigot 迁移

注解

Spigot 是 CraftBukkit 的一个派生版本。

世界

与原版 Minecraft 类似,Forge、SpongeForge(同样包括 SpongeVanilla)也使用了相同的结构来保存世界。原版 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 中的 spigot.yml 和 Sponge 中的 global.conf 作对照。spigot.yml 中的一些设置和 global.conf 中的一些设置十分相似, 因此用户可以适当通过复制相似设置的值来设置 Sponge 的 global.conf

插件

Sponge 不能原生支持 Bukkit 插件。但是一些社区开发者正在制作一个 Sponge 插件来实现 Bukkit API,这个 Sponge 插件使得一些 Bukkit 插件运行于 Sponge 服务器上成为可能。不过这个插件目前还没有正式发布。

Ore 是 Sponge 的官方插件发布源,强烈建议用户从 Ore 上下载插件。当你在寻找替代 Bukkit 功能的插件时,还有几点需要注意:

  • 不是所有的 Bukkit 插件作者都打算将他们的插件移植到 Sponge 上,不过以后或许会有一些人制作功能相似的插件。
  • 不是所有从 Bukkit 移植到 Sponge 上的插件都会自动转换配置文件,这取决于插件作者是否打算去做这个自动转换的功能。
  • 一些从 Bukkit 移植过来的 Sponge 插件可能会与之前的 Bukkit 插件有所差异,同时有可能使用着截然不同的配置文件结构。

从 Canary 迁移

世界

与原版 Minecraft 类似,Forge 以及 SpongeForge(当然也包括 SpongeVanilla)也使用了相同的结构来保存世界。原版 Minecraft 将下界(通常是 world_nether 目录)与末地(通常是 world_the_end 目录)的数据保存在 world 目录下。

Canary 将下界和末地世界存储于 world 文件夹之外。如果想在迁移到 Sponge 之后,保留下界和末地世界的地图,请务必注意这一点。Canary 提供了一个易用的方法,通过使用 /makevanilla 指令,便可将 Canary 世界转换为能被 Sponge 使用的结构。成功转换后的世界会存放在 vanilla 文件夹里。

服务器和世界配置文件

Sponge 会使用一些由原版 Minecraft 生成的配置文件,比如 server.properties。Canary 则不同,只使用了原版 Minecraft 的 usercache.json 文件。所以,能被 Sponge 重新使用的就只有 usercache.json 文件。

尽管如此,还是能够手动将一些 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 无对应文件

插件

Sponge 不能原生支持 Canary 插件。他只能通过别的 Sponge 插件来实现 Canary API。

Ore 是 Sponge 的官方插件发布源,强烈建议用户从 Ore 上下载插件。当你在寻找替代 Canary 功能的插件时,还有几点需要注意:

  • 不是所有的 Canary 插件作者都打算将他们的插件移植到 Sponge 上,不过以后或许会有一些人制作功能相似的插件。
  • 不是所有从 Canary 移植到 Sponge 上的插件都会自动转换配置文件,这取决于插件作者是否打算去做这个自动转换的功能。
  • 一些从 Canary 移植过来的 Sponge 插件可能会与之前的 Canary 插件有所差异,同时有可能使用着截然不同的配置文件结构。

从 Forge 迁移

将一个普通的 Forge 服务器转换成一个 Sponge 服务器是一个非常简单的过程,我们只需要做一些简单的准备工作。

迁移到 SpongeForge

你必须首先确保你正在使用的服务器的 Forge 版本兼容你打算使用的 Sponge 版本。你可以在Forge 下载页找到推荐使用的 Forge 版本。如果你有使用任何其他 Mod,务必同时升级它们。

当你准备好安装 SpongeForge 的时候,请继续执行以下步骤:

  1. 如果你的 Forge 服务器正在运行,请关闭。
  2. 从 Sponge 官方下载 SpongeForge , 官方服务器则可以去 MojangForge 上下载。
  3. SpongeForge.jar 放置到服务器的 mods 文件夹里。
  4. 大功告成,开服玩耍吧!

注解

如果 SpongeForge 是你服务器里安装的唯一一个模组,则玩家可以直接使用原版客户端登录。当然如果还安装了其它模组,则客户端也得安装相应的模组。

迁移到 SpongeVanilla

警告

如果迁移到 SpongeVanilla:你将失去所有属于 Forge 模组的数据、 方块和实体,因为 SpongeVanilla 不能安装 Forge 模组。所以你在选择 SpongeForge 或 SpongeVanilla 的时候要搞清楚你究竟需要哪一个。

迁移过程几乎跟上面的一样︰

  1. 如果你的 Forge 服务器正在运行,请关闭。
  2. 下载 SpongeVanilla ,并从 Mojang 下载原版服务端。
  3. 将你的世界和配置文件放在服务器文件夹中。
  4. 通过启动 spongevanilla.jar 运行服务器。

从原版(Vanilla)迁移

原版服务器可以轻松地将服务器迁移到 Sponge,因为 Forge 和 Sponge 都使用与原版服务器相同的世界储存格式。同时 Sponge 还使用与原版服务器相同的配置文件,比如 server.properties

首先你应该决定你要使用 SpongeForge 或 SpongeVanilla 中的哪一个。

注解

这两种版本的 Forge 都能作为原版服务器。(在 SpongeForge 不安装其他模组的情况下)

  1. 如果你的官方端服务器正在运行,请关闭。
  2. 下载 SpongeVanilla 或 SpongeForge。
  3. 将你的世界和配置文件放在服务器文件夹中。
  4. 运行你的新服务器。

安装 Sponge

安装 SpongeForge安装 SpongeVanilla 的相关内容提供了你迁移到你想要迁移到的 Sponge 的迁移指南。