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。

相关条目