一只鸽纸
本帖最后由 一只鸽纸 于 2022-4-4 23:01 编辑
BE地图存档转为Nukkit地图存档教程
—— by一只鸽纸
未经允许,严禁转载!

一、前言

   在开始本教程前,您需要准备什么?
*一台可以保持正常运行的电脑
*VS 2015 C++,一般来说你的电脑已经自带了,如果没有,请下载,本帖也附上了下载地址。
*知道基岩版是什么,JAVA版是什么
*关于Nukkit服务器的基础知识

   不论是新手服主,还是刚从BDS转来Nukkit(以下简称NK)的服主,在刚刚接触到NK开服的时候,几乎都遇到过这样的问题:诶?我的地图怎么提示旧的地图格式被自动转换格式了?为什么进服到那个地图一看建筑全没了?

     这是因为Nukkit(这里仅指Nukkit1.0核心)使用的是JAVA版1.12的地图格式,一般出现上述情况的服主大多是把基岩版地图直接导入地图文件夹了,NK是识别不了基岩版地图存档的。

     有些服主就要诉苦了:我的地图辣么漂酿!难道就废了嘛?别急,接下来就告诉你怎么办。

二、安装步骤

我们的目标是把基岩版地图转为JAVA版1.12地图。
首先我们要下载这个神奇的工具:MCC Toolcheast(以下简称MTC)。



进入下载地址,下载安装第一个,即MCCToolChest PE (Bedrock version)

注意,在MCCToolChest PE (Bedrock version)的下面这行有一个VS 2015 C++你可以把他理解为“前置”。

通常你的电脑已经有这个东西了,如果没有的话,请把VS 2015 C++也下载下来并安装。


下载完成,解压压缩包


双击安装程序(.exe)




点击Next



选择安装到哪个文件夹,一般默认就行,或者按照自己的需要自行选择。



确认无误的话点Install就行,然后静待安装完成。

三、正式操作

1.打开你刚刚下载的MTC



点击左上角的File,你会看到如下的内容




New是创建一个新的世界,如果你是想转换已有的地图的话则用不到这个选项。
Open是打开一个游戏内现有的存档
Save和Save as暂时不用管
MCWorld选项里的Exarct是从文件夹选择一个世界
根据你的需求选择导入世界的路径,我这里为了方便直接导入一个游戏内已有的存档了



打开存档之后你会看见这些凌乱的数据,不要头疼,一般来说你不需要管他们。
点击左上角的Tool,你会看到如下选项



选中Convert,点击To Java,你会看到这个弹窗



最上面那栏选择导出的文件夹,可以选择默认或者自定义
剩下的东西我来一个一个解释
Convert Dimension这栏下面有
Over world 主世界
Nether 下界
The end 末路之地
三个选项,一般我们只需要勾选Over world即可,如果你的这个地图在下界或者末地也有需要导出的建筑,就把它们也勾选上。但是NK的主世界、下界、末地是分开的,所以建议只勾选Over world

Incloud下面有

Block entities 方块实体(掉落物)
Entities 实体(一些其他生物或实体)
看你的需求勾选,如果怕地图卡的话,就不要勾选。
Convert into 和 Convert effect一般不用管

Convert to一定要注意了!勾选1.12,否则地图导入NK即使成功被读取了,也会因为版本高而造成一些问题。
Conversion Type请勾选safe否则你的地图有可能会缺少一些东西。
其他选项保持默认即可。

然后点击Convert,开始转换。
转换完成,将转换完的地图导入你的服务器地图文件夹,开启服务器,然后去享受吧!

四、一点补充内容

很多时候地图即使转换为1.12格式导入服务器了,也依然会有一些问题,最常见的就是一些方块变成了铁轨、侦测者这些奇怪的方块,这是由于某些方块的ID不同造成的。不过别担心,你可以使用这个插件来修复这些地图:


加载插件之后,在游戏内输入/wf fixlevel 你要修复的世界名 ,这个时候游戏内不会有任何提示,你需要在服务器控制台查看进度。当进度达到100%的时候,你就可以愉快地享用这张地图啦!

注意!这个插件的修复过程是不可逆的,且不一定能完全修复,建议修复前先进行备份。


Pren
很棒的教程,感谢分享!

HarryLai123
感谢大佬分享(๑❛ᴗ❛๑)

qiqiqi12345qi
感谢感谢,正愁nk的地图问题呢

大电鳗
感谢大佬分享

mingcha_233
感谢大佬分享

涂礼文
大佬,海洋还是生成不了怎么办

一只鸽纸
涂礼文 发表于 2021-1-31 22:17
大佬,海洋还是生成不了怎么办

Nukkit不支持海洋,只能生成海洋的水域,但海洋里面的东西都没有
等Nukkit2.0完善吧(Nukkit地图格式写死了没办法改了)

涂礼文
一只鸽纸 发表于 2021-1-31 22:20
Nukkit不支持海洋,只能生成海洋的水域,但海洋里面的东西都没有
等Nukkit2.0完善吧(Nukkit地图格式写死 ...

好的,谢谢!!

aipaimore
谢谢大佬的帮助

SK-1
本帖最后由 SK-1 于 2021-5-10 17:52 编辑

我用的是PowerNukkit 这个插件好像有問題 輸入指令之後系統只回了個null 什麽都沒發生 有解決方法嗎
另外我發現地图导入服务器后,箱子裏面的東西也全消失了,這個也能修復嗎?

一只鸽纸
SK-1 发表于 2021-5-10 17:51
我用的是PowerNukkit 这个插件好像有問題 輸入指令之後系統只回了個null 什麽都沒發生 有解決方法嗎
另外我 ...

PowerNukkit核心修改了很多东西,这个插件是基于NukkitX开发的,不能保证在PN上完美运行,建议直接向原作者反馈

ImC013aa
ganxiedalao

nimenhagg
教程非常好,可惜MCC倒闭了

ACDL
感谢教程

a306259513
谢谢教程

13095542208
官网没了软件下载不了了

Lang_Jie
感谢分享

V607WILDCAT
楼主MCC已经停更了,然后用MCC倒出来的地图全都乱码对不上,有其他的方法吗

V607WILDCAT
大佬我问一下,改完后的地图,有些方块是透明的但过不去(原来在bedrock是玻璃)这个也清不掉,有什么解决办法吗

一只鸽纸
V607WILDCAT 发表于 2021-11-22 18:55
大佬我问一下,改完后的地图,有些方块是透明的但过不去(原来在bedrock是玻璃)这个也清不掉,有什么解决 ...

用worldfixer插件修复

V607WILDCAT
一只鸽纸 发表于 2021-11-22 18:56
用worldfixer插件修复

Throwing
java.lang.IllegalStateException: The default level cannot be unloaded while running, please switch levels.
        at cn.nukkit.Server.unloadLevel(Server.java:1904) ~[nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Server.unloadLevel(Server.java:1899) ~[nukkit-1.0-SNAPSHOT.jar:?]
        at com.creeperface.nukkitx.worldfixer.WorldFixer.fixWorld(WorldFixer.java:260) ~[?:?]
        at com.creeperface.nukkitx.worldfixer.WorldFixer.onCommand(WorldFixer.java:100) ~[?:?]
        at cn.nukkit.command.PluginCommand.execute(PluginCommand.java:33) ~[nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:257) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Server.dispatchCommand(Server.java:768) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Player.handleDataPacket(Player.java:2801) [nukkit-1.0-SNAPSHOT.jar:?]
        at org.itxtech.synapseapi.SynapsePlayer.handleDataPacket(SynapsePlayer.java:406) [synapse-api-1.0-SNAPSHOT.jar:?]
        at org.itxtech.synapseapi.SynapseEntry$Ticker.run(SynapseEntry.java:265) [synapse-api-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.scheduler.TaskHandler.run(TaskHandler.java:99) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.scheduler.ServerScheduler.runTasks(ServerScheduler.java:296) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.scheduler.ServerScheduler.mainThreadHeartbeat(ServerScheduler.java:277) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Server.tick(Server.java:1175) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Server.tickProcessor(Server.java:940) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Server.start(Server.java:908) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Server.<init>(Server.java:589) [nukkit-1.0-SNAPSHOT.jar:?]
        at cn.nukkit.Nukkit.main(Nukkit.java:120) [nukkit-1.0-SNAPSHOT.jar:?]
用worldfixer插件修复报出以下错误是咋回事啊

一只鸽纸
V607WILDCAT 发表于 2021-11-24 12:44
Throwing
java.lang.IllegalStateException: The default level cannot be unloaded while running, plea ...

因为这个插件是使用主线程进行工作,运行时服务器会停滞,所以默认地图(也就是服务器玩家默认默认进入的那个地图)是不可以被修复的,你可以把默认地图复制一个然后随便命一个其他名字,再在服务器里传送到这个副本世界进行修复

木兰记
大佬,我想问一下哪个转换文件的地址好像坏了,我点进去就变成了别的= =,是什么原因啊

凉宫墨
感谢大佬分享

樱花樱花樱
非常感谢

一只鸽纸
本帖最后由 一只鸽纸 于 2022-5-30 22:11 编辑

本教程所涉及软件现已停止维护,本人也不再对本教程进行进一步支持。新的地图转换教程,请见:https://www.mcbbs.net/thread-1316184-1-1.html

lxxboo
详细的教程 支持了

爱过方132
感谢 楼主分享

神罚天狼
MCBBS,有你更精彩