
Hyinit | Mixin 引导程序
Hytale 中的无限制 Mixin 环境 | 与 Hyxin 的兼容性
⚠️ 警告: Hyinit 并非标准早期插件!请仔细阅读说明。
🚀 Hyinit
Hyinit 是一个用于 Hytale 的无限制 Mixin 环境引导程序。
你使用 Hyinit 替代 HytaleServer.jar 运行,它会在服务器启动前引导 Mixin。这为你的模组提供了 Mixin 和 MixinExtras 的完整功能集,允许它们引用任意服务器类,并能转换早期插件自身无法触及的类。
它也与 Hyxin 向后兼容。
✅ 安装
Hyinit 并非标准早期插件。请不要将其放入 earlyplugins 文件夹。相反,使用 Hyinit-0.2.1.jar 替代 HytaleServer.jar 启动,并确保两个 JAR 文件位于同一目录下。
如果你通常这样启动服务器:
java -Xms10G -Xmx10G -jar HytaleServer.jar --assets=../Assets.zip
请改为通过 Hyinit 启动:
java -Xms10G -Xmx10G -jar Hyinit-0.2.1.jar --assets=../Assets.zip
Hyinit 会自动找到 HytaleServer.jar。若要指向特定的服务器 JAR,请传递 --server-jar=<路径>。若要从额外目录加载早期插件,请传递 --early-plugins=<目录1,目录2>。
现在,将依赖于 Hyinit Mixin 环境的模组 JAR 安装到 earlyplugins 文件夹中。
❓ 为什么不直接用早期插件?
标准早期插件由服务器加载,此时类加载已经开始。这个沙箱限制了哪些 Mixin 功能可用以及你能触及哪些类。
Hyinit 则取而代之进行引导:
| 其他 Mixin 引导程序 | Hyinit | |
|---|---|---|
| 启动模式 | 标准早期插件 implements ClassTransformer |
替换启动器;拥有自己的类加载器 |
| 类加载 | 委托给服务器现有的加载器 | 自身定义类,控制整个图 |
@Accessor / @Invoker / 接口注入 |
不可用 | 支持,通过 transformer.generateClass() 生成合成类 |
| 单个 JAR = Mixins 和 运行时插件 | 不支持 | 支持 |
| Hyxin 清单格式 | 原生 | 为兼容性而读取 |
📖 开发者信息
Hyinit 的环境允许所有标准的 Mixin 和 MixinExtras 功能。要注册 Mixin 配置,请将其添加到模组的 manifest.json 中:
{
"Mixins": [
"yourmodid.mixins.json"
]
}
将包含 Mixin 的模组放入 earlyplugins 文件夹。配置在启动时读取,之后加载的类会被转换。
单 JAR 模组
一个 earlyplugins 的 JAR 可以同时作为 Mixin 提供者和运行时插件。在单个 manifest.json 中声明 Main 和 Mixins:
{
"Main": "yourmodid.YourPlugin",
"Mixins": [
"yourmodid.mixins.json"
]
}
Hyinit 应用 Mixin,服务器从同一个 JAR 加载 Main。无需拆分为 earlyplugins/ 和 mods/。
Hyxin 兼容性
使用 Hyxin 格式的 manifest.json 也会被读取:
{
"Hyxin": {
"Configs": [
"yourmodid.mixins.json"
]
}
}正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。