MyTown2

[!INFO] Git Commit: 0c08811 | Updated: 2026-10-28

城镇 / 领地保护 mod。MyTown 是 GTNH 社区的老牌城镇 mod,本条目是其 GTNH 维护分支 (仓库 README / mcmod.info 自称 This is the GTNH fork,原作者 Alpha, 维护者 Legobear154 / AfterWind)。

由于 1.7.10 原版没有方块可用,本 mod 不注册任何 Block / Item / Entity / TileEntity / 维度 / 生物群系——它的全部玩法落在命令、flag 权限与长方体领地上。 唯一的游戏内容注册是告示牌类型 MyTown:SellSign。

身份

属性 实测值
modid MyTown2(混合大小写;util/Constants.java:10)
modName MyTown 2(Constants.java:11)
版本 GRADLETOKEN_VERSION —— 构建期占位符,源码无真实值(Constants.java:9)
mcmod.info 7 字段全为 ${modId} / ${modName} / ${modVersion} / ${minecraftVersion} 占位符,不可用于确认 modid
Minecraft 1.7.10(gradle.properties:24)
Java 文件 87(15 268 行)
主类 mytown.MyTown(@Mod 在 Java,非 Scala / Kotlin)
命令 164(/mytown 别名 /t /town,+ /mytownadmin)
配置 37 项(MyTown.cfg)+ 3 个 JSON(Flags / DefaultTownRanks / WildPerms)
Flag 15 种(14 布尔 + MAXWARP 整数)
数据表 22 张,32 条 DB 迁移
注册内容 1 个告示牌类型 MyTown:SellSign
硬依赖 MyEssentials-Core、MyPermissions(required-after)
软依赖 WorldEdit(after)、ForgeEssentials(before)

依赖范围

依赖 收录状态
MyEssentials-Core 已收录,已完成
MyPermissions 已收录,已完成
Thaumcraft 已收录,已完成(运行时软依赖,见 TCWarpHandler)
WorldEdit(worldedit-gtnh) 已登记但尚未成文,前向引用
ForgeEssentials 不在收录范围(relation.md 无此行),仅作 before 顺序声明

Mod 入口

  • Mod 入口 - @Mod(modid = Constants.MODID, ...),四个生命周期阶段
  • Constants - modid / 名称 / 依赖 / NBT key 的唯一权威来源
  • EconomyProxy - 建城 / 圈地 / 传送的费用后端
  • 工具类 - Formatter、MyTownUtils、TownBlockKey
  • 异常类 - 7 个,仅 ConditionException / GetterException 为 checked

命令

配置

  • Config - 37 项,含全部实测默认值
  • FlagsConfig - 建城默认 flag,回写 FlagType.defaultValue
  • RanksConfig - 建城默认 Rank,整体替换 defaultRanks
  • WildPermsConfig - 荒野 flag,与 MyPermissions 无关

数据层

保护系统

数据模型

  • Town - 核心模型,7 个 final 子容器
  • Nation - 国家层
  • AdminTown - getMaxBlocks() 返回 Integer.MAX_VALUE
  • Plot - 长方体领地,不是多方块
  • TownBlock - 区块级单元,无 y
  • Resident - 居民,主键 UUID
  • Rank - 3 个内置等级,含 - 拒绝语义
  • FlagType - 15 种 flag 定义
  • Flag - flag 实例与容器
  • BlockWhitelist - 方块级白名单(含 y),软删除
  • Bank - 城镇账本,amount 初值 0
  • Wild - 荒野单例
  • SellSign - 唯一注册内容

事件与工具

公开 API

关联