module-gasstation
基本信息
| 属性 | 值 |
|---|---|
| modid | gasstation(源码里是 GRADLETOKEN_MODID) |
| Java 文件 | 12 |
| 加载插件 | com.falsepattern.gasstation.core.GasStationCore |
| mixin 配置 | mixins.gasstation.json |
| 上游版本 | 0.5.1(extraVersion) |
| GasMix 版本 | 0.8.5-gasstation_7(gasMixVersion) |
| 产出 | …-gasstation-1.7.10.jar |
| 启用版本 | Minecraft 1.7.10 |
功能
GasStation 的 vendored fork。mcmod.info 自述
UniMixins module that provides GasStation extras.\nDepends on: SpongeMixins, MixinBooterLegacy, MixinExtras。
类全部位于 com.falsepattern.gasstation.*(原作者 FalsePattern 的包),
即本仓内联了 GasStation 源码,不是引用外部 jar。
⚠️ modid 是构建期占位符
// module-gasstation/.../Tags.java:8
public static final String MODID = "GRADLETOKEN_MODID";
module-gasstation/build.gradle:39-43:
minecraft {
replace("GRADLETOKEN_MODID", "gasstation")
replace("GRADLETOKEN_MODNAME", "GasStation")
replace("GRADLETOKEN_VERSION", extraVersion)
replace("GRADLETOKEN_GROUPNAME", "com.falsepattern.gasstation")
}
⚠️ 本仓 4 个 GRADLETOKEN_* 占位符全部集中在本模块。
grep 源码得到的 modid 是 "GRADLETOKEN_MODID",不是 gasstation。
真实值以 mcmod.info 的 "modid": "gasstation" 为准。
12 个类
| 分组 | 文件 |
|---|---|
| 根 | com/falsepattern/gasstation/GasStation.java、Tags.java |
| 核心 | core/GasStationCore.java 等 |
| mixin(3) | mixins/mixin/LoadControllerMixin.java、mixins/mixin/dev/ModDiscovererMixin.java、mixins/mixin/dev/LoaderMixin.java |
| plugin | mixins/DevMixinPlugin.java |
mixin 配置
| 项 | 值 |
|---|---|
| 文件 | mixins.gasstation.json |
package |
com.falsepattern.gasstation.mixins.mixin |
required |
true |
minVersion |
0.8.3 |
refmap |
mixins.gasstation.refmap.json |
compatibilityLevel |
JAVA_8 |
target |
@env(PREINIT)(本仓唯一显式声明 target 的配置) |
mixins |
[] —— 空数组(0 个) |
plugin |
com.falsepattern.gasstation.mixins.DevMixinPlugin |
⚠️ 源码缺陷:3 个 mixin 一个都没被应用
⚠️ mixins 数组为空,而 DevMixinPlugin 的两个钩子也不做任何筛选:
public List<String> getMixins() { return Collections.emptyList(); }
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { return true; }
但源码中确实存在 3 个 @Mixin 类:
| 类 | 目标 |
|---|---|
mixins/mixin/LoadControllerMixin.java |
LoadController(remap = false) |
mixins/mixin/dev/ModDiscovererMixin.java |
ModDiscoverer |
mixins/mixin/dev/LoaderMixin.java |
Loader |
即:按检入的 mixins.gasstation.json,这 3 个 mixin 都不会被应用。
shouldApplyMixin 返回 true 只在 mixin 已被列入时才起作用,
getMixins() 返回空列表意味着不会有额外 mixin 被注入。
⚠️ dev/ 子包下的 2 个(ModDiscovererMixin、LoaderMixin)目标是
ModDiscoverer / Loader 这类 dev 环境专用类,
即便启用也只在 runClient 下有意义。
这与 HackClasspathModDiscoveryTransformer
服务的 dev 场景一致。
实现要点
reobf.enabled = false,注释说明「Obfuscation is unnecessary since this module does not reference Minecraft classes」—— 本模块不引用任何 Minecraft 类。archivesBaseName去掉-1.7.10换成-gasstation-1.7.10。shadow依赖module-common(transitive = false)并 relocate 到…unimixins.gasstation.repackage.common。- 本模块版本号在 build 中追加:
version += "+" + ext.extraVersion。
相关条目
- 模块总览 - 10 模块对照
- mixin 配置对照 - 4 个配置的
required与minVersion - HackClasspathModDiscoveryTransformer - dev 场景配套
- module-mixin - 自检检查
gasstation-前缀