跳到正文

Blame (Forge)

那些该死的崩溃日志就是不说是哪个世界生成特性崩了!

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

准备好找出该怪谁了吗?

Fabric 版本:https://www.curseforge.com/minecraft/mc-mods/blame-fabric

 

Blame 是一个诊断工具,仅当你遇到奇怪的世界生成崩溃,或命令在没有堆栈跟踪的情况下出错时才需要安装。但当你启用 Blame 时,它会尝试收集多得多的信息,并将堆栈跟踪打印到 logs 文件夹(位于 mods 文件夹之上)中的 latest.log 文件里。这是一个更方便的地方,包含你所需的全部信息!请记住,Blame 仅在单人游戏或服务器上有效,在连接到服务器的客户端上无效。 

 

注意:在 1.17+ 中如需更好地解析世界生成 JSON,请改用 Cyanide 模组: https://www.curseforge.com/minecraft/mc-mods/cyanide-forge

 

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

 • 打印出使用时会崩溃的命令的堆栈跟踪。

 (通常,模组命令崩溃时不会向日志打印任何内容)

 

• 在启动世界时会检测并打印出所有损坏的命令。

 (这会找出那些在 .then() 调用之外调用了 .executes() 的命令,因为它们无法正常工作)

 

• 为世界生成期间崩溃的地物或结构打印额外细节。

 

• 记录所有未注册的 ConfiguredFeatures、ConfiguredStructures、ConfiguredCarvers。

 (未注册这些东西的模组会导致其他模组的内容出错,并在世界生成期间无法生成)

 

• 检测 DynamicRegistry 是否被其他模组过早加载。

 (这样做会导致其他所有模组注册的世界生成内容崩溃,例如“Unknown Biome ID”问题)

 

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

 

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

 

• 打印出间距值被设为 0,或分离值等于或大于间距值的崩溃结构的名称。

 (这两个条件中任一为真都会导致游戏崩溃。)

 

• 精简损坏的配方和战利品表解析信息,让你更容易分享日志、更容易查看错误。

 

• 修复 MC-190122 漏洞,使日志中记录的实际加载配方数量正确,便于调试配方。https://bugs.mojang.com/browse/MC-190122

 

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

 

• 如果拼图结构尝试访问不存在的模板池,会打印到日志,让你知道某个结构没有完全生成。

 

• 如果模组或数据包尝试访问不存在的 nbt 文件,会记录到日志,便于调试。

 

• 如果模组类过早加载 TagCollectionManager,会打印出来,因为它可能会破坏之后注册标签的其他模组的标签。

 

• 将输出在结构生成期间导致结构处理器崩溃的方块、其 nbt 以及是哪个 nbt 文件。

 

 

如果你需要查看所有注册表中所有内容的注册表转储,请使用 Masady 的这个 TellMe 模组: 

https://www.curseforge.com/minecraft/mc-mods/tellme

 

 

致模组开发者:在 Forge 开发环境中使用 Blame

 

在你的 build.gradle 文件中,添加这个 maven 仓库。这是 gradle 查找 Blame 的 jar 的位置。
repositories {
  maven {
    url “https://nexus.resourcefulbees.com/repository/maven-public/“
  }
}

现在将其添加到依赖块中。将 <version> 替换为你想要使用的 Blame 版本,例如 `1.16.5-3.2.1-forge`。查看 CurseForge 页面以了解最新版本是什么。
dependencies {
  …
  runtimeOnly fg.deobf(“com.telepathicgrunt:Blame:<version>”)
}

现在是最重要的部分。将这两个属性添加到 build.gradle 文件中两个运行配置中。这些将允许 Blame 的 mixin 正常工作。添加属性行后,刷新 Gradle 并根据你使用的 IDE 运行 `genEclipseRuns` 或 `genIntellijRuns` 或 `genVSCodeRuns`。
minecraft {
  …
  runs {
    client {
      …
      property ‘mixin.env.remapRefMap’, ‘true’
      property ‘mixin.env.refMapRemappingFile’, “${projectDir}/build/createSrgToMcp/output.srg”
    }

    server {
      …
      property ‘mixin.env.remapRefMap’, ‘true’
      property ‘mixin.env.refMapRemappingFile’, “${projectDir}/build/createSrgToMcp/output.srg”
    }
  }
}

启动游戏,Blame 应该就在运行了!你可以通过 Blame 向 IDE 控制台和 latest.log 文件输出类似以下内容来判断:
[16:34:10] [modloading-worker-11/ERROR] [co.te.bl.Blame/]: Blame 1.16.5-3.0.1-forge initialized

 

 

 

我的模组的 Discord #telepathicgrunt-mods 频道链接!:

https://discord.gg/K8qRev3yKZ

discord-logo-png-free-transparent-png-logos-discord-png-logo-300_300 (PNG)  | BeeIMG

 

常见问题

Blame (Forge) 支持哪些 Minecraft 版本?

Blame (Forge) 支持 Minecraft Java 版 1.16.2–1.16.5,共 4 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Blame (Forge) 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

TelepathicGrunt 的其他作品

查看全部 →