本文章所述内容仅适用于Java版。

本教程将告诉你如何修复因数据包更改(移除、禁用、更新等操作)而损坏的世界。

目录

1 原因

2 准备

3 恢复数据

3.1 重新加入数据包

3.2 启用数据包

3.3 自行编写数据包

4 移除数据

4.1 排查并调整世界预设数据

4.1.1 缺失的维度类型

4.1.2 缺失的噪声设置

4.1.3 生物群系列表中缺失的生物群系

4.2 直接替换世界预设数据

5 导航

原因[编辑 | 编辑源代码]

即使使用安全模式,你也无法加载损坏的世界

在创建世界时,选中的自定义世界预设数据会写入 level.dat的WorldGenSettings中。此后,每次加载世界时都会使用 level.dat中的自定义世界预设。

世界预设数据可能会引用自定义数据包的世界生成数据,这些内容的缺失会使世界预设无效,从而无法正常加载世界。

启用安全模式会强制开启原版数据包并禁用其他数据包,但这无法解决问题:世界使用的世界预设储存在 level.dat中,这不会因为数据包改动而变化;仅开启原版数据包不可能提供自定义世界预设中缺失的数据。

要修复损坏的世界,你需要恢复或移除缺失的世界生成数据。

准备[编辑 | 编辑源代码]

首先,你需要打开损坏的世界的对应文件夹。这可以通过选中世界→点击“编辑”→点击“打开世界文件夹”实现。你也可以在 saves文件夹内寻找损坏的世界。

部分方法需要修改 level.dat,这需要你准备可以修改NBT文件的工具,例如NBTExplorer。

恢复数据[编辑 | 编辑源代码]

重新加入数据包[编辑 | 编辑源代码]

如果你能找到原来的数据包,事情会简单许多:你只需要把数据包放入世界文件夹的 datapacks文件夹即可。游戏在加载时会自动启用数据包。

如果文件夹内有此数据包的其他版本,记得移除它。

启用数据包[编辑 | 编辑源代码]

如果你曾禁用了一些数据包,游戏会忽略它们的内容,包括需要的世界生成数据。重新启用数据包需要进入游戏并使用命令,但此时你无法加载世界。

你可以修改 level.dat来改变启用状态。不过,这里有一个更简单的方法:重命名被禁用的数据包。

游戏通过数据包名称识别数据包。所以,在数据包名称改变后,游戏会以为你移除了被禁用的数据包,同时加入了一个新的数据包。这个“新的数据包”会被游戏自动启用。

自行编写数据包[编辑 | 编辑源代码]

既然世界损坏源于缺失世界生成数据,那么我们需要做的就是补充世界生成数据。

如果你知道如何编写世界生成数据包,排查 level.dat(见下文),找到缺失的内容,写数据包把它们补回来就行了。

移除数据[编辑 | 编辑源代码]

如果你无法恢复数据,或者你希望移除数据包内容,你只能选择移除 level.dat里的自定义世界预设数据。

排查并调整世界预设数据[编辑 | 编辑源代码]

首先,打开世界文件夹内的 level.dat,之后依次展开Data→WorldGenSettings→dimensions→<维度ID>。

在<维度ID>里,你需要排查以下内容:

维度类型(type)。

minecraft:noise生成器下的噪声设置(generator.settings)。

minecraft:noise生成器下的生物群系列表(generator.biome_source.biomes)。

Mod可能会在世界预设里添加更多自定义内容。通常来说,自定义内容不会使用minecraft命名空间,这可以作为排查的线索。

下面将介绍常见的调整方法。

缺失的维度类型[编辑 | 编辑源代码]

双击type,打开编辑框。

将值修改为minecraft:overworld。

如果此维度是下界或具有下界的特征,将值修改为minecraft:the_nether;如果此维度是末地或具有末地的特征,将值修改为minecraft:the_end。

保存文件并加载游戏。

游戏将使用指定的原版维度类型。

缺失的噪声设置[编辑 | 编辑源代码]

展开generator。

双击settings,打开编辑框。

如果settings是一个复合标签,移除settings,之后在generator里创建一个字符串标签,将其命名为settings。

将值修改为minecraft:overworld。

如果此维度是下界,将值修改为minecraft:the_nether;如果此维度是末地,将值修改为minecraft:the_end。

如果此维度具有洞穴或浮岛世界的特征,将值修改为minecraft:caves(洞穴)或minecraft:floating_islands(浮岛)。

保存文件并加载游戏。

游戏将使用指定的原版噪声设置。

生物群系列表中缺失的生物群系[编辑 | 编辑源代码]

展开generator→biome_source。

检查type的值。

如果type的值为multi_noise:

展开biomes。

展开biomes的所有子对象。

移除列表里所有含有biome:<命名空间不为minecraft的ID>的对象。

保存文件并加载游戏。

如果你觉得这样做太麻烦:

直接移除biomes。

在biome_source里创建一个名为preset的字符串标签,将值修改为minecraft:overworld。

如果此维度是下界,将值修改为minecraft:nether。

保存文件并加载游戏。

如果type的值为checkerboard,且biomes为列表:

展开biomes。

移除列表里所有命名空间不为minecraft的生物群系ID。

保存文件并加载游戏。

如果type的值为checkerboard,且biomes为字符串:

双击biomes,打开编辑框。

将值修改为minecraft:plains。

保存文件并加载游戏。

所有缺失的生物群系会被游戏调整为平原生物群系。

直接替换世界预设数据[编辑 | 编辑源代码]

如果你觉得排查世界预设太麻烦,你可以直接替换WorldGenSettings。

在游戏内创建一个新的世界,这个世界不应加载任何世界生成数据包,下文将称其为白板世界。

打开白板世界的世界文件夹,打开其 level.dat。

展开Data,选中WorldGenSettings,进行复制操作(点击“复制”按钮或使用快捷键)。

打开损坏的世界的 level.dat。

展开Data,移除WorldGenSettings。

选中Data,进行粘贴操作(点击“粘贴”按钮或使用快捷键)。

保存文件并加载损坏的世界。

游戏将使用白板世界的世界预设。

导航[编辑 | 编辑源代码]

编教程

新手教程

下载、安装与购买

成功地启动游戏

菜单屏幕

游戏术语

计量单位

不该做的事

新手生存

新手指南

第一天

第二天

第三天

提示与技巧

饥饿管理

生存注意事项

庇护所

庇护所

沙漠

微型

最佳居住生物群系

最佳建筑材料

建筑与结构

房屋类型

导航

综合

无聊的时候做什么

跑酷

空置域

伪和平

节省时间的小窍门

在水下利用TNT破坏方块

成就指南[仅BE]

进度指南[仅JE]

Minecraft

下界

末地

冒险

农牧业

最佳附魔指南

拓殖

战斗

完成冒险

双持

探索洞穴

利用碰撞箱

使用地图

测量距离和角度

采矿技术

钻石

化石

远古残骸

下界快速旅行

下界传送门

支柱跳跃

幻翼防护

生成骑士

穿越和破坏基岩

防卫僵尸围城[仅JE]

考古

不可破坏的末地水晶

使用更少的末地水晶重生末影龙

区块加载器

透视镜

挂机池

整理物品

潜影盒储存

物品运输

生物运输

自动化烧炼

选择燃料

爆炸室

凋灵笼

光速船[仅BE]

无材料消耗转换药水类型[仅BE]

在超平坦世界中管理史莱姆

减少摔落伤害

Minecraft和教育

视频

游戏直播

村民和交易

村庄生存

创建村庄

村庄机制

治愈僵尸村民

村民养殖

村民交易所

流浪商人陷阱

建筑

给工程添加美感

空气闸

建筑术语

建造游轮

建造大都市

建造过山车

建造安全的家园

建造水建筑

建造几何体

防御

家具

电梯

带釉陶瓦的图案

建造地板

像素艺术

牧场

屋顶类型

弧形屋顶

屋顶建造指南

暗门

建造居住地

水下建筑

墙壁和桥墩

水闸

调色板

建造蹦床

挑战

获得潮涌核心

触发及战胜袭击

打败末影龙

打败凋灵

挑战自定义地图

制作自定义地图

征服结构

征服神殿和神庙

征服掠夺者前哨站

征服堡垒遗迹

征服林地府邸

征服海底神殿

征服试炼密室

征服下界要塞

征服末地城

探索深暗之域和远古城市

特殊玩法

冒险模式生存

极限模式

超极限模式

在一个地区中长期生存下去

沙漠生存

在无限沙漠中生存

下界生存

从零开始下界生存

末地生存

雷暴生存

超平坦世界生存[仅JE]

岛屿生存

空岛生存

在和平难度中收集资源

速通

游荡生存

无限石头生存

愚人节版本生存[仅JE]

22w13oneBlockAtATime

24w14potato

农场

方块和物品

紫水晶

骨粉

仙人掌

农作物(小麦、胡萝卜、马铃薯、甜菜根、火把花和瓶子草)

西瓜、南瓜

紫颂果

圆石、石头或玄武岩

可可豆

泥土

滴水石锥

鸡蛋

花朵

蛙明灯

蜂蜜

海带

蘑菇

音乐唱片

下界疣

黑曜石

袭击农场

1.21前

海泡菜

甘蔗

甜浆果

原木、树苗和苹果

海龟鳞甲

藤蔓

羊毛

药水

经验

基岩

方块和物品复制

过时方法

铁轨复制机[仅JE]

TNT复制[仅JE]

零刻作物催熟技术[仅BE]

生物

刷怪塔

怪物磨床

刷怪笼陷阱

动物(猪、牛、绵羊)

烈焰人

洞穴蜘蛛

苦力怕

闪电苦力怕

溺尸

末影人

山羊

守卫者

铁傀儡

岩浆怪

以物易物

潜影贝

史莱姆

鱿鱼

海龟

村民

女巫

流浪商人

凋灵骷髅

僵尸猪灵

悦灵

红石

基础红石

基本逻辑门

高频电路

计时器

抽奖箱

漏斗

通用物品分类器

机械

侦测器稳定器

密码锁

随机发生器

红石机械

红石音乐

红石技巧

鲁布·戈德堡机械

探测器

方块更新感应器

比较器更新感应器

昼夜探测器

矿车

矿车

火车站

储存

数字化存储系统

陷阱

陷阱

陷阱设计

雪傀儡防御炮

TNT大炮

活板门利用

活塞

活塞使用

活塞电路

无延迟科技

飞行器

半连接性[仅JE]

零刻活塞[仅JE]

无头活塞[仅JE]

高级红石

光照操纵

高级红石电路

算术逻辑

计算器

时钟

摩尔斯码

打印机

红石计算机

红石电报机

多人游戏

玩法

游玩服务器

PvP

Java版1.9前、基岩版

基地

隐藏箱子

起床战争

空岛战争

猎人游戏

服务器管理

防止恶意破坏

服务器监狱

服务器商店

雪球菜单

架设服务器

架设Java版服务器

架设基岩版服务器

服务器架设脚本[仅JE]

服务器启动脚本

FreeBSD启动脚本

OpenBSD启动脚本

Ubuntu启动脚本

WebSocket服务器[仅BE]

架设Mod服务器[仅JE]

架设Hamachi服务器

架设Spigot服务器

虚拟硬盘服务器

使用ngrok搭建服务器

架设ZeroTier服务器

本地局域网联机

服务器维护

使用LeviLamina架设服务器[仅BE]

技术性

Minecraft帮助FAQ

自定义皮肤

地图

自定义地图

下载地图

使用MCEdit刷新旧区块[仅JE]

强制打开存档[仅JE]

降级存档

资源包

制作资源包

纹理

音效和音乐

语言和文本

模型

加载资源包

数据包[仅JE]

制作数据包

实例:射线投射

视线魔法

自定义物品

安装数据包

自定义世界生成

自定义结构生成

自定义盔甲纹饰

附加包[仅BE]

基岩版开发指南

制作资源附加包

高级

基岩版实体文档

修改实体模型

制作行为包

自定义实体

自定义方块

自定义物品

自定义附加包语言文件

自定义音效

命令格式

仅Java版

生成下落的方块

文本组件

NBT命令标签

物品堆叠组件

记分板

SNBT

命令方块

结构方块

用命令操控实体

NBT与JSON

自定义命令触发

目标选择器

游戏安装

仅Java版

提高帧率

更新Java

修复Apache Log4j2漏洞

编写启动器

快照版本安装

获取崩溃报告

查看游戏日志

仅基岩版

Minecraft URL Scheme

汇报漏洞

在U盘中使用旧版启动器运行游戏

恢复损坏的地图数据

修复因数据包损坏的世界

在Google Drive上运行游戏

将游戏数据保存到Dropbox云端

仅限地图数据

在ChromeOS上运行Java版

过时教程

到达边境之地

获取崩溃报告(旧版)

无数据包生存

升级LWJGL

更新Minecraft

命令统计值

村民养殖(村庄与掠夺前)

村庄链

水道

水车

仅英文

自定义纹理包

基于门的铁傀儡陷阱

人工湖

矿车加速器

中继器重启系统

水梯

无延迟电路

教程

新手手册

高难度通关配装总结

成就指南

高塔指南

常见问题

教程

新手手册

基地建设指南

资源收集指南

单位阵容组合

注:作下划线标记的教程为中文原创教程。