Backhand

模组主类:modid、配置注册与副手黑名单查询

基本信息

属性 值
路径 xonin.backhand.Backhand
注解 @Mod(modid = Backhand.MODID, name = "Backhand", version = Tags.VERSION, dependencies = "required-after:gtnhlib@[0.6.34,)")

modid

public static final String MODID = "backhand"(:28),全小写。

⚠️ 两个构建期占位符陷阱:

  • version = Tags.VERSION —— Tags 类由 Gradle 在编译期生成,源码里不存在
  • 仓库 mcmod.info 整份都是 ${modId} / ${modName} / ${modVersion} 占位符

name = "Backhand" 则是源码硬编码的展示名。

唯一的硬依赖

required-after:gtnhlib@[0.6.34,)——GTNHLib。 其余所有 mod(Thaumcraft / TConstruct / IC2 / Draconic Evolution 等) 都不在 FML 依赖串里,而是由 mixin 按目标存在与否动态开关。

生命周期

阶段 处理
load(FMLPreInitializationEvent) 通过 GTNHLib ConfigurationManager 注册 BackhandConfig 与 BackhandConfigClient,然后 proxy.load()
init(FMLInitializationEvent) BackhandPacketHandler.init()

配置注册失败只 LOGGER.warn,不中断加载。

工具方法

方法 作用
isOffhandBlacklisted(ItemStack) 是否命中 BackhandConfig.offhandBlacklist
doesMainhandUseStopOffhandFallback(ItemStack) 是否命中 mainhandUseStopsOffhandFallback
matchesItemName(ItemStack, String[]) 私有,按物品名匹配(stack == null 返回 false)
getServer() FMLCommonHandler.instance().getMinecraftServerInstance()

Proxy

@SidedProxy(clientSide = "xonin.backhand.client.ClientProxy", serverSide = "xonin.backhand.CommonProxy")