ServerUtilities 认领标记
基本信息
| 属性 | 值 |
|---|---|
| 类 | org.dynmap.forge.integration.ServerUtilitiesClaimedChunksMarkers(forge/integration/ServerUtilitiesClaimedChunksMarkers.java) |
| 基类 | DynmapCommonAPIListener(ServerUtilitiesClaimedChunksMarkers.java:33) |
| 依赖 modid | serverutilities(非 ServerUtilities) |
| 开关 | config/GTNH-Web-Map.cfg 的 ServerUtilities.enableClaimMarkers + ServerUtilities.boostClaimMarkers |
| 注册位置 | DynmapMod.java:141-143 |
| 关联指令 | /gwm updatesuclaims(ServerUtilitiesClaimedChunksMarkers.java:50) |
功能
把 ServerUtilities 玩家队伍认领的区块画成 area marker 标记集。与 区块加载标记 的区别:数据源不是 Forge 强制加载票据,而是 ServerUtilities 的 ClaimedChunks。
该类是本 mod 中唯一直接 import serverutils.* 的类(全仓 serverutils.* 导入共 8 处,全部集中于此文件):
| 导入 | 用途 |
|---|---|
serverutils.ServerUtilitiesConfig |
读取配置 |
serverutils.data.ClaimedChunk、serverutils.data.ClaimedChunks |
认领区块数据 |
serverutils.events.chunks.ChunkModifiedEvent |
认领变更事件 |
serverutils.lib.EnumTeamStatus |
队伍状态枚举 |
serverutils.lib.data.ForgePlayer、serverutils.lib.data.ForgeTeam |
玩家/队伍 |
serverutils.lib.math.ChunkDimPos |
维度化区块坐标 |
常量 private static final int CHUNK_SIZE = 16;(ServerUtilitiesClaimedChunksMarkers.java:35),用于把认领矩形换算为地图坐标(:95)。
双条件注册
if(GwmConfig.enableServerUtilitiesClaimsMarkers && Loader.isModLoaded("serverutilities")){
DynmapCommonAPIListener.register(new ServerUtilitiesClaimedChunksMarkers());
}
见 DynmapMod.java:141-143。带字面量 modid 的 Loader.isModLoaded(...) 调用在全仓仅 2 处(DynmapMod.java:141 与 GwmConfig.java:15),且两处的 modid 都是 serverutilities。另有 2 处 isModLoaded 是方法定义/透传(common/DynmapServerInterface.java:159 的接口声明、forge/DynmapPlugin.java:904-905 的实现),不针对具体 mod。DynmapMod.java:141 一行内同时读取配置开关与检测 mod 存在性。
enableClaimMarkers 的默认值本身就是 Loader.isModLoaded("serverutilities")(GwmConfig.java:15),因此未装 ServerUtilities 时开关默认关闭,双重判断中的第二重是冗余保险。
boost 标志
ServerUtilitiesClaimedChunksMarkers.java:100 读取 GwmConfig.boostServerUtilitiesClaimsMarkers(默认 true,GwmConfig.java:16)。开启后给认领标记加 boost 标志,使这些区块在启用了 boosting 的地图上以更高质量/缩放级别渲染。
GwmConfig.java:16 的配置说明同时指出:默认配置下没有任何地图启用 boosting,故该标志在默认部署中不产生可见差异。
指令
ServerUtilitiesClaimedChunksMarkers.java:50 注册子命令:
GwmCommand.registerSubCommand(new UpdateSUClaimsGwmSubCommand("updatesuclaims"));
子命令名 updatesuclaims。因注册在构造函数内且该类条件实例化,关闭开关或未装 ServerUtilities 时 /gwm updatesuclaims 不存在。
数值
| 数值名 | 值 |
|---|---|
enableClaimMarkers 默认值 |
Loader.isModLoaded("serverutilities")(GwmConfig.java:15) |
boostClaimMarkers 默认值 |
true(GwmConfig.java:16) |
serverutils.* 导入数 |
8 |
| 区块尺寸常量 | 16(ServerUtilitiesClaimedChunksMarkers.java:35) |
交互
| 触发 | 行为 |
|---|---|
| 服务端启动 + 双条件满足 | 注册监听器 |
ChunkModifiedEvent |
认领范围变化时更新标记 |
/gwm updatesuclaims |
手动刷新 |
权限并存注意事项
仓库 README.md “Permissions” 一节指出本 mod 自带权限系统并与 ServerUtilities 的权限系统并存,可能出现"rank 权限已配好但仍被拒绝"的情况。本条目所依赖的正是 ServerUtilities 的数据(认领记录),与该权限系统是两件事,但同处一个 mod,因此运维排查权限问题时需注意区分。
相关条目
- config/GTNH-Web-Map.cfg - 两个开关的定义
- 区块加载标记 - 另一条标记数据通路
- 权限体系 - 本 mod 自带权限与 ServerUtilities 并存的说明
- 标记 API - 标记集接口