Minecraft的疑难杂症#13-Feature order cycle found, involved sources
又来写文章了(,崩溃专栏都能高产嘛?
这个崩溃(Exception generating new chunk)主要是因为在数据包(模组也会包含数据包)中当两个生物群系在同一步骤中以不同的顺序引用同一放置的地物时,就会发生地物顺序循环(Feature order cycle)。
地物指的是地面上各种自然生成的物体w
这个问题主要是出自于数据包(模组)间的冲突w,手动修复对大多数人来说比较困难。
崩溃日志原来长这个样子的——
---- Minecraft Crash Report ----
[...省略...]
Description: Exception generating new chunk
java.lang.IllegalStateException: Feature order cycle found, involved sources: [Reference{ResourceKey[minecraft:worldgen/biome / minecraft:ice_spikes]=net.minecraft.class_1959@3e59e106}]
at net.minecraft.class_7510.method_44210(class_7510.java:100)
at net.minecraft.class_2794.method_44215(class_2794.java:102)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:183)
[...省略...]
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
[...省略...]
-- Chunk to be generated --
Details:
Location: -8,27
Position hash: 120259084280
Generator: net.minecraft.class_3754@4d13c517
Stacktrace:
at net.minecraft.class_3898.method_17225(class_3898.java:684)
[...省略...]
-- Affected level --
Details:
[...省略...]
-- System Details --
Details:
[...省略...]
单看这个崩溃日志并不能发现什么,他只告诉我是原版的(minecraft:ice_spikes)地物有问题......难不成我要删掉原版的地物?!
唔,有人专门为这个问题做了一个模组,可以方便地查看出错的地方!
那就是Cyanide模组[*2][*3]!它可以准确确定并列出数据包中的错误。
来看看在他的作用下,崩溃日志变成什么样子了:
---- Minecraft Crash Report ----
[...省略...]
Description: Exception generating new chunk
com.alcatrazescapee.cyanide.codec.FeatureCycleDetector$FeatureCycleException: A feature cycle was found.
Cycle:
At step 6
Feature 'gtceu:ore'
must be before 'gtceu:ore' (defined in 'minecraft:deep_frozen_ocean' at index 36, 37 and 52 others)
at com.alcatrazescapee.cyanide.codec.FeatureCycleDetector.buildFeaturesPerStep(FeatureCycleDetector.java:141)
at net.minecraft.class_7510.handler$cbe000$cyanide$buildFeaturesPerStepWithAdvancedCycleDetection(class_7510.java:529)
[...省略...]
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
[...省略...]
-- Chunk to be generated --
Details:
Location: 7,18
Position hash: 77309411335
Generator: net.minecraft.class_3754@26e93d74
Stacktrace:
at net.minecraft.class_3898.method_17225(class_3898.java:684)
at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
[...省略...]
-- Affected level --
[...省略...]
-- System Details --
[...省略...]
这下我们就可以看到谁是幕后黑手了,是格雷(gtceu)在深海(minecraft:deep_frozen_ocean)的矿物生成出了问题!
解决方案:
如果你是玩家,且不懂如何修改数据包:
删掉模组似乎是你的唯一选择...... 这个崩溃如果遇到第一次,还可以通过绕开刷新该区块的地方继续游戏,但是这并非长久之计,有一个肯定会有其他的地方会有.......
如果你是玩家,但是了解如何修改数据包,又或者你是数据包开发者
请参考相关链接的[1]了解如何操作w(由于我没有操作过,不敢乱说w,据我个人看的话,是需要到数据包(模组)内部,就可以在worldgen文件夹里找到这个文件)

相关链接:
[1] How to fix feature order cycles - Minecraft 1.18, 1.18.2, 1.19 (https://misode.github.io/guides/feature-order-cycle/)
[2] Cyanide (Forge) - Minecraft Mods - CurseForge(https://www.curseforge.com/minecraft/mc-mods/cyanide-forge)
[3] Cyanide (Fabric) - Minecraft Mods - CurseForge(https://www.curseforge.com/minecraft/mc-mods/cyanide-fabric)
(MC百科没有收录,我提交了但是还没审核,所以这里先放Curseforge)