归咎

归咎

把责任推给损坏的模组!

工具

准备好找出该由谁来负责了吗?

 

如果你遇到奇怪的世界生成崩溃,或者命令在没有堆栈跟踪的情况下出错,那么 Blame 就是一款可以诊断问题的模组。启用 Blame 后,它会尝试收集更多信息,并将堆栈跟踪打印到 mods 文件夹上一级 logs 文件夹内的 latest.log 文件中。这是一个更方便的位置,包含你需要的所有信息!请注意,Blame 仅在单人游戏或服务器端生效,对连接到服务器的客户端无效。

 

 

以下是 Blame 目前的功能列表!

 

• 打印出使用后崩溃的命令的堆栈跟踪。(通常,模组命令崩溃时不会向日志打印任何内容)

 

• 在启动世界时检测并打印所有损坏的命令。(这会找出那些在 .then() 调用之外调用了 .executes() 的命令,因为它们无法正常工作)

 

• 为世界生成期间崩溃的特性或结构打印额外详细信息。

 

• 记录所有未注册的 ConfiguredFeatures、ConfiguredStructures、ConfiguredCarvers。(未注册这些东西的模组会导致其他模组的内容损坏,并且无法在世界生成期间生成)

 

• 检测 DynamicRegistry 是否被其他模组过早加载。(这样做会导致其他所有模组注册的世界生成内容爆炸,例如出现“Unknown Biome ID”问题)

 

• 准确记录来自任何模组或数据包的哪个世界生成 JSON 文件已损坏,并显示其 JSON 内容。

 

• 在尝试生成战利品时记录任何缺失的战利品表!如果某个箱子是空的,请检查日志,这个模组可能会找出原因。

 

• 打印出崩溃结构的名称,该结构的间距值被设为 0,或者其间隔值等于或大于间距值。(任一条件为真都会导致游戏崩溃。)

 

• 准确打印出是哪个结构导致自定义/超平坦 ChunkGenerator 崩溃,因为它没有被添加到 FlatGenerationSettings.STRUCTURES 中

 

• 精简损坏的配方和战利品表解析内容,以便你更轻松地分享日志并查看错误。

 

• 修复 MC-190122 漏洞,使日志中声明的实际已加载配方数量正确,从而帮助调试配方。https://bugs.mojang.com/browse/MC-190122

 

• 如果 Jigsaw Structure 尝试访问不存在的模板池,将打印到日志,以便你了解某个结构未完全生成。

 

• 如果某个模组或数据包尝试访问不存在的 nbt 文件,将记录下来,以便更轻松地调试

 

• 将打印出在结构生成期间导致结构处理器崩溃的方块及其 nbt。

 

面向模组开发者:在 Fabric/Quilt 开发环境中使用 Blame

 

在你的 build.gradle 文件中,添加这个 maven 仓库。这是 gradle 查找 Blame 的 jar 的位置。

repositories {

maven {

url "https://nexus.resourcefulbees.com/repository/maven-public/"

}

}

 

现在将其添加到依赖块中。将 替换为你想要使用的 Blame 版本,例如 1.16.5-3.0.1-fabric。查看 Modrinth 页面以了解最新版本。

dependencies {

...

modImplementation "com.telepathicgrunt:Blame-Forge:5.0.0+1.18.2"

}

 

启动游戏,Blame 应该就会运行!你可以通过 Blame 向 IDE 控制台和 latest.log 文件打印类似以下内容来判断:

[18:25:48] [main/ERROR] (Blame) Blame 1.18.2-5.0.0-forge initialized