本文章所述内容仅适用于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
命令统计值
村民养殖(村庄与掠夺前)
村庄链
水道
水车
仅英文
自定义纹理包
基于门的铁傀儡陷阱
人工湖
矿车加速器
中继器重启系统
水梯
无延迟电路
教程
新手手册
高难度通关配装总结
成就指南
高塔指南
常见问题
教程
新手手册
基地建设指南
资源收集指南
单位阵容组合
注:作下划线标记的教程为中文原创教程。