Skip to content

feat: Forge+Connector 兼容——资源提取改 CoreSwapFixHelper 多级定位 jarFix/forge connector compat - #3

Closed
dustinmoon78 wants to merge 2 commits into
unknowbug:masterfrom
dustinmoon78:fix/forge-connector-compat
Closed

feat: Forge+Connector 兼容——资源提取改 CoreSwapFixHelper 多级定位 jarFix/forge connector compat#3
dustinmoon78 wants to merge 2 commits into
unknowbug:masterfrom
dustinmoon78:fix/forge-connector-compat

Conversation

@dustinmoon78

Copy link
Copy Markdown
Contributor

Forge 47.3.33 + Sinytra Connector 环境下,原资源提取方式失效:

  • FabricLoader.getRootPaths() 返回 Forge UnionFileSystem 的 Path,无法 Files.isDirectory/walk
  • Forge TransformingClassLoader 下 getCodeSource().getLocation() 返回 "/"

新增 wg/bench/CoreSwapFixHelper:多级定位 mod jar
(getCodeSource → FabricLoader.getAllMods().ModOrigin.getPaths() → ClassLoader.getResources),
用 JarFile 直接提取 worldgen-data / worldgen.dll,不依赖任何加载器路径 API。
CppBridge.extractWorldgenDir / CppWorldgen.extractNativeDll 改为调用它。

已实测:Forge 47.3.33 + Connector 1.0.0-beta.46 + 400+ mod 整合包,正常生成。
注:本 PR 基于 PR#1 分支(stacked),包含其一行 mod id 修复。

CppBridge.java 已在上次修复(ca87548)改为 coreswap,
但 CppWorldgen.extractNativeDll() 仍硬编码 worldgen-bench,
FabricLoader.getModContainer().get() 抛 NoSuchElementException,
全新环境解压 worldgen.dll 时启动崩溃。
原 extractWorldgenDir/extractNativeDll 依赖 FabricLoader.getRootPaths(),
在 Forge 宿主 + Sinytra Connector 环境下(Forge UnionFileSystem 的 Path
无法 Files.isDirectory/walk;Forge TransformingClassLoader 下
getCodeSource() 返回 /)资源提取失败。

新增 wg/bench/CoreSwapFixHelper:多级定位 mod jar
(getCodeSource → FabricLoader.getAllMods().ModOrigin.getPaths()
 → ClassLoader.getResources),JarFile 直接提取 worldgen-data / worldgen.dll,
不依赖任何加载器路径 API。实测 Forge 47.3.33 + Connector 1.0.0-beta.46 可正常生成。
@dustinmoon78

Copy link
Copy Markdown
Contributor Author

@unknowbug 您好,这是 1.0.4 全新环境启动崩溃(NoSuchElementException)的修复:

  1. CppWorldgen.java 漏改 mod id(worldgen-bench → coreswap),与之前 CppBridge.java:51 是同一个历史坑
  2. 新增 CoreSwapFixHelper:Forge + Sinytra Connector 环境下 getRootPaths/getCodeSource 均不可用,改为多级定位 jar + JarFile 提取资源

已实测:Forge 47.3.33 + Connector 1.0.0-beta.46 + 400+ mod 整合包正常生成。请 review,谢谢!

@unknowbug

Copy link
Copy Markdown
Owner

已手动合入本 PR 的 CoreSwapFixHelper 思路(commit 见 master)并增强 dev classpath 目录支持(Fabric 开发环境回归通过)。1.0.6 已发布(Pre-release,Forge 需 Sinytra Connector)。感谢贡献!

@unknowbug unknowbug closed this Aug 6, 2026
unknowbug added a commit that referenced this pull request Aug 6, 2026
…代 getRootPaths;增强 dev classpath 目录支持);Fabric 回归通过
@unknowbug

Copy link
Copy Markdown
Owner

补一条正式致谢:您的贡献已在 README(英文版 Credits / 中文版 致谢 段)署名,见 commit c61d96c

再次感谢 Forge + Sinytra Connector 兼容的攻坚——400+ mod 整合包实测通过,这份工作量非常扎实。后续您的 PR 会走标准合并流程,确保贡献记录完整保留。

1 similar comment
@unknowbug

Copy link
Copy Markdown
Owner

补一条正式致谢:您的贡献已在 README(英文版 Credits / 中文版 致谢 段)署名,见 commit c61d96c

再次感谢 Forge + Sinytra Connector 兼容的攻坚——400+ mod 整合包实测通过,这份工作量非常扎实。后续您的 PR 会走标准合并流程,确保贡献记录完整保留。

unknowbug added a commit that referenced this pull request Aug 7, 2026
…_range 叶子全对比)

实证:when_out_of_range 的 4 个 caves interp 与 cache 逐位一致(-0.192846/-0.078724/
-0.285579/0.386824 = cache #7/#6/#1/#3)——叶子全一致但组合差(0.040084 vs -0.00726)
→ 树构建结构差嫌疑(常量折叠/min-max 嵌套/引用解析)。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants