
归咎
把责任推给损坏的模组!
准备好找出该由谁来负责了吗?
如果你遇到奇怪的世界生成崩溃,或者命令在没有堆栈跟踪的情况下出错,那么 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
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。