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),属历史遗留,不参与编译。

相关条目