guiFactory 指向真实的类 #26

Merged
layue13 merged 2 commits from fix/guifactory into main 2026-11-06 14:47:02 +00:00
Owner

Requested by Ethyn · project thread

改动

  • guiFactory: 从不存在的 mrdimka...ConfigurationGuiFactory 改成实际的 com.pengu.thaumcraft.additions.config.ConfigurationGuiFactory。启动时不再报 ClassNotFoundException,模组列表的 Config 按钮能用了。
  • 配置界面: 原来只显示空的 general,选项看不到。现在列出有选项的实际分类:clientside、customization、misc。general 是空的,所以不列。
  • 旧路径: TA.java 里 Botania 的 init、postInit,还有 StructureDefiner 的默认类,改成 com.pengu 下实际存在的类。这几处行为不变:Botania 的这两个方法是空的,结构类原来也回退到同一个类。

实测

用这个分支和 ThaumicConcilium#21 分支构建的 jar,放进 TDLM-launch-c 的副本,在真实客户端测试:

  • 日志里没有 guiFactory 的 ClassNotFoundException,也没有崩溃。
  • Mods 列表选中 Thaumic Additions 后点 Config,界面打开并列出 3 个分类。选中这一行用了只放在测试实例里的辅助模组,点按钮走的是真实流程。
  • 进 customization,把 CustomModelSupport 切到 true,确定退出,thaumicadditions.cfg 里确实写成了 true,回到 Mods 列表。
  • Botania 已加载,日志里没有相关报错。这两处调用本来就没有内容,所以游戏里看不出变化。
  • 只测了客户端,没有启动专用服务端。这里的改动不碰服务端专有路径。

截图在 Mac 的 ~/work/tdlm-fix2-shots/。

没有动

  • TA.java:177(ModelLoader): 目标类存在,但改了只多一段日志和一个晚注册检查。getDeclaredMethod 要解析带客户端类型的方法签名,专用服务端可能报 NoClassDefFoundError,而这里只捕获 Exception。
  • libThaumicAdditions: 改了会在服务端启动时实例化 APIProvide,它引用客户端专用的 HUD。现在唯一的使用者 BlockNeedsResearch 没有子类,而模型 ID 用回退值也一直正常。
  • Reference.java 里的路径常量: 没有代码使用。
  • OpenLibDownloadEngine: 只有 TACore 调用,而 jar 的 MANIFEST 没有声明 coremod,所以不会运行。它会从网上下载 jar,不要重新启用。

🤖 Generated with Claude Code

https://claude.ai/code/session_01TiBPbTviTx789GNU9SbE4p

<!-- claude-projects-attribution --> _Requested by **Ethyn** · [project thread](https://claude.ai/code/project/chan_01DUNCDJLEksDHKpX5X5cThi?thread=cmsg_01DUNCDJLEksDHKpX5X5cThi8VZqMkbaA1Vv46Chh7FCYR)_ ## 改动 - **`guiFactory`:** 从不存在的 `mrdimka...ConfigurationGuiFactory` 改成实际的 `com.pengu.thaumcraft.additions.config.ConfigurationGuiFactory`。启动时不再报 `ClassNotFoundException`,模组列表的 Config 按钮能用了。 - **配置界面:** 原来只显示空的 `general`,选项看不到。现在列出有选项的实际分类:`clientside`、`customization`、`misc`。`general` 是空的,所以不列。 - **旧路径:** `TA.java` 里 Botania 的 `init`、`postInit`,还有 `StructureDefiner` 的默认类,改成 `com.pengu` 下实际存在的类。这几处行为不变:Botania 的这两个方法是空的,结构类原来也回退到同一个类。 ## 实测 用这个分支和 ThaumicConcilium#21 分支构建的 jar,放进 `TDLM-launch-c` 的副本,在真实客户端测试: - 日志里没有 `guiFactory` 的 `ClassNotFoundException`,也没有崩溃。 - Mods 列表选中 Thaumic Additions 后点 Config,界面打开并列出 3 个分类。选中这一行用了只放在测试实例里的辅助模组,点按钮走的是真实流程。 - 进 `customization`,把 `CustomModelSupport` 切到 `true`,确定退出,`thaumicadditions.cfg` 里确实写成了 `true`,回到 Mods 列表。 - Botania 已加载,日志里没有相关报错。这两处调用本来就没有内容,所以游戏里看不出变化。 - 只测了客户端,没有启动专用服务端。这里的改动不碰服务端专有路径。 截图在 Mac 的 `~/work/tdlm-fix2-shots/`。 ## 没有动 - **`TA.java:177`(ModelLoader):** 目标类存在,但改了只多一段日志和一个晚注册检查。`getDeclaredMethod` 要解析带客户端类型的方法签名,专用服务端可能报 `NoClassDefFoundError`,而这里只捕获 `Exception`。 - **`libThaumicAdditions`:** 改了会在服务端启动时实例化 `APIProvide`,它引用客户端专用的 `HUD`。现在唯一的使用者 `BlockNeedsResearch` 没有子类,而模型 ID 用回退值也一直正常。 - **`Reference.java` 里的路径常量:** 没有代码使用。 - **`OpenLibDownloadEngine`:** 只有 `TACore` 调用,而 jar 的 MANIFEST 没有声明 coremod,所以不会运行。它会从网上下载 jar,不要重新启用。 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01TiBPbTviTx789GNU9SbE4p
layue13 added 1 commit 2026-11-06 14:21:16 +00:00
guiFactory 指向真实的类
Build / build (push) Skipped
Build / publish (push) Skipped
Build / publish (pull_request) Canceled after 0s
Build / build (pull_request) Canceled after 9m55s
cac303797f
@Mod 里的 guiFactory 还是作者改包名前的 mrdimka 路径,类不存在,启动时报 ClassNotFoundException,模组列表的配置按钮也用不了。
改成 com.pengu 下实际存在的 ConfigurationGuiFactory。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiBPbTviTx789GNU9SbE4p
layue13 added 1 commit 2026-11-06 14:31:01 +00:00
配置界面列出实际分类,补上 Botania 和结构类的旧路径
Build / build (push) Skipped
Build / publish (push) Skipped
Build / build (pull_request) Successful in 5m46s
Build / publish (pull_request) Skipped
0af6cc0b7f
配置界面只显示空的 general 分类,选项都在 clientside、customization、misc 里,现在按实际分类列出有选项的分类。
TA.java 里 Botania 的 init、postInit 和 StructureDefiner 的默认类还是 mrdimka 旧路径,改成 com.pengu 下实际存在的类。这几处目标方法都是空的或和原来的回退一样,行为不变。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiBPbTviTx789GNU9SbE4p
layue13 merged commit b8e763aa68 into main 2026-11-06 14:47:02 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TDLM/thaumicadditions#26