Wild

基本信息

属性 值
类名 mytown.entities.Wild
文件 src/main/java/mytown/entities/Wild.java
行数 35
单例 Wild.instance(public static final)
启用版本 Minecraft 1.7.10

功能

荒野的全局行为定义 —— 即「不属于任何城镇 / 地块」时的默认权限。 类注释直白写着 Wilderness permissions。

它是一个进程级单例(不像 Town 那样每镇一份), 内部只持有一个 Flag.Container。

结构

成员 类型
instance public static final Wild
flagsContainer public final Flag.Container

hasPermission(Resident, FlagType<Boolean>)

判定居民在荒野中能否执行某 flag 对应的动作:

  1. res == null → 直接 return true(无居民上下文即放行)。
  2. flagsContainer.getValue(flagType) 为假 → 通过 ChatManager 向 res.getPlayer() 发送拒绝消息。
  3. 返回 flag 值本身。

实现要点

⚠️ flagsContainer 的内容由 WildPermsConfig 在 serverStarting 时写入 —— 该配置只挑 FlagType.isWildPerm 为真的 flag。

⚠️ 拒绝消息经 ChatManager.send(...) 发送(MyEssentials-Core 提供), 自动本地化为对应语言条目,flagType.getDenialKey() 提供 key。 因此「哪些 flag 可在荒野拒绝」受 isWildPerm 标记约束。

⚠️ 单例在类加载时即构造(new Wild() 作为 static final 初始化), 早于配置加载。配置内容靠后续 create() 往 flagsContainer 里 addAll 填充。

相关条目