BD lib 库本体

基本信息

属性 值
modid bdlib(src/main/scala/net/bdew/lib/BdLib.scala:37)
模组名 BD lib(BdLib.scala:38)
声明语言 modLanguage = "scala"(BdLib.scala:40)
根包名 net.bdew.lib(gradle.properties:13)
Minecraft 版本 1.7.10(gradle.properties:24)
加载器 Forge 1.7.10(FML cpw.mods.fml)
注册方块数 0
注册物品数 0
注册 TileEntity 数 0
自带合成配方数 0
依赖声明 无(gradle.properties:168 curseForgeRelations = 为空;dependencies.gradle 依赖块为空)

功能

BD lib 是一个纯 Scala 库模组,作者 bdew,采用 Minecraft Mod Public License 1.0(MMPL-1.0.txt)。它的全部价值在于提供一整套供其他模组继承与调用的框架类,自身不向游戏注册任何方块、物品、实体或合成配方,因此在创造模式物品栏中不会出现任何属于本模组的内容。

全仓共 209 个 .scala 源文件、0 个 .java 源文件(find src -name '*.scala' | wc -l 与 find src -name '*.java' | wc -l)。

主类生命周期

主类是单例对象 BdLib(BdLib.scala:42),使用 FML 的 EventHandler 注解驱动,共 3 个事件回调:

事件 行为 出处
FMLPreInitializationEvent 绑定日志、注册崩溃信息输出、建立配置目录、登记 4 个可序列化封包类、加载网络白名单配置、初始化多方块网络通道、客户端初始化 tooltip BdLib.scala:58-74
FMLServerStartingEvent 注册 2 条服务端指令并触发内部事件总线 BdLib.scala:76-83
FMLServerStoppingEvent 触发内部事件总线 BdLib.scala:85-88

preInit 中的封包白名单登记顺序为:BaseMessage、MsgOutputCfgRSMode、MsgOutputCfg、MsgOutputCfgSlot(BdLib.scala:65-68)。

配置目录

配置目录固定为 <游戏目录>/config/bdlib(BdLib.scala:64)。

加载的 API 报告

ApiReporter(ApiReporter.scala)实现了 FML 的 ICrashCallable 接口,被注册进 FMLCommonHandler.registerCrashCallable(BdLib.scala:63)。它遍历 ModAPIManager 中所有已加载的 API 模组,按 modid 小写排序后输出「modid (版本) 来自 jar 名或目录」的清单。这只在游戏崩溃报告中出现,不影响正常游戏流程。

数值

数值名 值
.scala 源文件数 209
.java 源文件数 0
@Mod 注解数量 1(grep -rn '@Mod(' --include=*.scala src/ 仅命中 BdLib.scala:36)
顶层事件回调 3(preInit / serverStarting / serverStopping)
服务端指令 2
预初始化时登记的封包类 4
源码分支 仅 master 单分支,无跨版本合并

交互

玩家侧可见的行为仅有以下几项,均为运维/调试用途:

触发 行为
启动服务端 自动注册 /dumpregistry 与 /oredistribution 两条指令(BdLib.scala:80-81)
游戏崩溃 崩溃报告中附带「List of loaded APIs」章节,列出所有已加载的 API 模组(ApiReporter.getLabel)
日志 启动时输出 bdlib <版本> loaded(BdLib.scala:61),debug 级别输出已加载 API 列表(BdLib.scala:62)

本模组不占用任何材质、渲染、GUI 或本地化键位来展示自身内容;assets/bdlib/lang/*.lang 中的全部条目都是供下游模组的多方块框架调用的通用字符串(见 多方块框架)。

相关条目

  • 注册框架 - 下游模组如何通过 Machine / BlockManager / ItemManager 注册自己的机器
  • 多方块框架 - MachineCore 机器与模块的组装规则
  • 配置加载机制 - config/bdlib 目录下的 .cfg 加载与覆盖顺序