迁移到 Sponge

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

警告

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

迁移到 Sponge

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

Migrating from CraftBukkit, Spigot, or Paper

备注

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. Now the migration is performed. At this point, worlds are copied over from what we call the world container into the folder defined in the server.properties file via the level-name key. Note that the original files in the world container remain unchanged, a copy is made during migration.

  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 插件有所差异,同时有可能使用着截然不同的配置文件结构。

Migrating from CanaryMod

世界

与原版 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 的迁移指南。