预加载技巧是一个仅限开发者使用的模组,能够在模组加载器的极早期阶段启用高级操作。 它提供早期钩子、基于 Java Instrumentation 的类转换,以及由 SPI 驱动的回调以支持加载器扩展。
概述 预加载技巧 是一个仅限开发者使用的模组,能够在模组加载器的极早期阶段启用高级操作。 它提供早期钩子、基于 Java Instrumentation 的类转换,以及由 SPI 驱动的回调以支持加载器扩展。 支持的环境: Fabric – 1.20.1, 1.21+ Forge (LexForge) – 1.20.1 NeoForge – 1.20.6, 1.21+ 由于它依赖于加载器版本而非 Minecraft 版本,因此你可以在更多版本中进行测试。 功能 早期加载器入口点 通过 PreloadingEntrypoint (基于SPI) 使用 PreloadingTricksCallbacks 事件注册回调: SETUP_LANGUAGE_ADAPTER – 早期语言适配器设置阶段 COLLECT_MOD_CANDIDATES – 在发现之前动态添加 mod 候选路径 SETUP_MODS – 修改 mod 列表(通过 ModManager API 添加/删除/查询) 基于插桩的 ClassTransform 可以转换已加载的类,包括 Java 核心类和类加载器类。 通过 MANIFEST.MF 在所有平台上(见下文)。 Forge 变体检测 (仅限类似 Forge 的环境) 访问 ForgeVariants 以在运行时检测特定的 Forge/NeoForge 版本 用法(Gradle) 将 Maven 仓库和依赖项添加到您的构建中: Kotlin DSL: repositories { maven("https://raw.githubusercontent.com/settingdust/maven/main/repository/") } dependencies { // Recommended: use the base artifact (no classifier). // Gradle variant matching / cloche will resolve the correct platform artifact automatically. implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION") // Optional: pin to a specific classifier when you want to avoid accidentally using APIs // from other platforms. // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:fabric") // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:forge-service") // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:neoforge-modlauncher") // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:neoforge-fancy-mod-loader") } 替换 VERSION 为最新版本(例如 3.5.9 ). 如果您使用的是 cloche 根据 loader/minecraft 属性自动选择相应的变体。 ClassTransform 配置 对于所有平台,将以下属性添加到您的 MANIFEST.MF : ClassTransformConfig: xxxx.classtransform.json 多个配置可以指定为逗号分隔的值: ClassTransformConfig: first.classtransform.json,second.classtransform.json 示例配置( xxxx.classtransform.json ): { "package": "settingdust.preloading_tricks.neoforge.transformer", "transformers": [ "mod_setup_hook.FMLLoaderTransformer" ] } Forge 变体检测(仅限类 Forge 环境) 允许模组仅在特定的类 Forge 加载器变体上加载。这允许通过 jar-in-jar 技术将 LexForge 和 NeoForge JAR 打包在单个模组文件中。 配置: 在 MANIFEST.MF : ForgeVariant: LexForge 或者 ForgeVariant: NeoForge 具有 ForgeVariant 的模组仅在运行于匹配的加载器变体时才会加载,从而允许变体特定实现安全共存。 对于需要深入 Minecraft 加载过程最早阶段进行操作的开发者。
在鱼乐云资源中心浏览该资源,登录后可一键安装到你的游戏服务器。