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 中的全部条目都是供下游模组的多方块框架调用的通用字符串(见 多方块框架)。