MyTown
基本信息
| 属性 | 值 |
|---|---|
| 类名 | mytown.MyTown |
| 文件 | src/main/java/mytown/MyTown.java |
| 行数 | 237 |
| modid | MyTown2(经 Constants 间接引用) |
| 启用版本 | Minecraft 1.7.10(gradle.properties:24) |
功能
mod 主类。声明 @Mod(modid = Constants.MODID, name = Constants.MODNAME, version = Constants.VERSION, dependencies = Constants.DEPENDENCIES, acceptableRemoteVersions = "*")
(MyTown.java:54-60)。注意 modid 并不写成字面量,而是引用 Constants 中的常量。
生命周期分四个阶段:
| 阶段 | 处理 |
|---|---|
preInit |
建 Logger、设 Constants.CONFIG_FOLDER、初始化 Config、建 Local 本地化、调用 registerHandlers;注册 DatasourceCrashCallable |
postInit |
调用 SellSign.SellSignType.instance.register();若 Loader.isModLoaded("Thaumcraft") 则执行 TCWarpHandler 的 tcReflect() |
serverStarting |
EconomyProxy 初始化 → checkConfig() → registerCommands → 加载 3 个 JSON 配置 → ProtectionParser.start() → 建 MyTownDatasource |
serverStopping |
datasource.deleteAllBlockOwners()、把区块所有者写回数据库、datasource.stop() |
实现要点
- 本 mod 不注册任何 Block / Item / Entity / TileEntity / 维度 / 生物群系。
唯一的「内容注册」是告示牌类型
MyTown:SellSign,见 SellSign。 registerCommands()依赖Config.instance.enablePlots,为真时才多注册 3 个 Plots 嵌套命令类。acceptableRemoteVersions = "*":允许任意远端版本加入。serverStarting中有一行被注释掉的SafemodeHandler.setSafemode(!DatasourceProxy.start(config))(MyTown.java:116),属历史遗留,不参与编译。
相关条目
- Constants - modid / 名称 / 依赖 / 各种 NBT key 的唯一来源
- EconomyProxy - 费用经济后端代理
- Config - 37 项配置的入口
- MyTownDatasource - 数据源
- MyTown2-Client - 本 mod 的客户端扩展