跳到正文

Preloading Tricks

作者:settingdust

一款用于提前访问加载器、转换类以及预加载破解的开发者工具。

收藏

介绍

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

概述

Preloading Tricks 是一个仅面向开发者的模组,可在模组加载器的极早期阶段启用高级操作。
它提供早期钩子、基于 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 – 在发现之前动态添加模组候选路径
  • SETUP_MODS – 修改模组列表(通过 ModManager API 添加/移除/查询)
  • 基于 Instrumentation 的 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,则会根据加载器/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 加载过程最早阶段的开发者。

常见问题

Preloading Tricks 支持哪些 Minecraft 版本?

Preloading Tricks 支持 Minecraft Java 版 1.16.5–26.1.2,共 31 个版本,可用的加载器:Fabric / Forge / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。

Preloading Tricks 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端 / 服务端。

评论

登录后评论和评分

settingdust 的其他作品

查看全部 →