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,因此运维排查权限问题时需注意区分。

相关条目