标记 API

基本信息

属性 值
接口 org.dynmap.markers.MarkerAPI(markers/MarkerAPI.java,68 行)
实现 org.dynmap.markers.impl.MarkerAPIImpl(markers/impl/MarkerAPIImpl.java,3611 行)
接口方法数 9
获取途径 DynmapCommonAPI.getMarkerAPI()(DynmapCommonAPI.java:16)
就绪检查 DynmapCommonAPI.markerAPIInitialized()(DynmapCommonAPI.java:22)

标记类型

markers/ 包下共 11 个接口,markers/impl/ 下共 9 个实现类:

接口 实现 用途
Marker MarkerImpl 标记基类
GenericMarker MarkerImpl 通用标记(点)
MarkerSet MarkerSetImpl 标记集
MarkerIcon MarkerIconImpl 标记图标
AreaMarker AreaMarkerImpl 矩形区域标记
PolyLineMarker PolyLineMarkerImpl 折线标记
CircleMarker CircleMarkerImpl 圆形标记
EnterExitMarker — 出入口标记(接口)
MarkerDescription — 标记描述(接口)
PlayerSet PlayerSetImpl 玩家集合

markers/impl/ 下另有 MarkerSignManager(告示牌文本管理)。

接口方法

方法 源码行 说明
getMarkerSets() MarkerAPI.java:14 取全部标记集
getMarkerSet(String id) MarkerAPI.java:20 按 ID 查标记集,未找到返回 null
createMarkerSet(id, lbl, iconlimit, persistent) MarkerAPI.java:29 建标记集,失败返回 null
getMarkerIcons() MarkerAPI.java:34 取全部图标
getMarkerIcon(String id) MarkerAPI.java:40 按 ID 查图标
createMarkerIcon(id, label, marker_png) MarkerAPI.java:48 注册图标(读入 InputStream 并复制)
getPlayerSets() MarkerAPI.java:52 取全部玩家集合
getPlayerSet(String id) MarkerAPI.java:58 按 ID 查玩家集合
createPlayerSet(id, symmetric, players, persistent) MarkerAPI.java:67 建玩家集合

ID 约束(源码 Javadoc 原文):

约束 位置
标记集 id “must be unique among marker set - limit to alphanumerics, periods, underscores” MarkerAPI.java:23
图标 id “must be unique among marker icons - letters, numbers, periods, underscores only” MarkerAPI.java:43
玩家集合 id “must be unique among player sets - letters, numbers, periods, underscores only” MarkerAPI.java:61

createPlayerSet 的 symmetric 参数控制"集合内玩家能否互相看见"(MarkerAPI.java:62)。

指令与权限

标记的增删改通过 /dmarker 暴露,其白名单 MarkerAPIImpl.commands(MarkerAPIImpl.java:1280-1286)共 33 项,在 MarkerAPIImpl.java:1394 用 commands.contains(c) 拦截。每个分支独立调用 checkPlayerPermission,权限名形如 marker.add(MarkerAPIImpl.java:1434)、marker.delete(:1446)、marker.list(:1401)。

MarkerAPIImpl 还提供 Tab 补全数据:tabCompletions.put("add", markerArgs)(MarkerAPIImpl.java:576)、"delete"(:591)、"list"(:598)。

数值

数值名 值
MarkerAPI 接口方法数 9
markers/ 接口数 11
markers/impl/ 实现类数 9(含 MarkerSignManager,非 Marker 实现)
/dmarker 白名单子命令数 33
内置图标数 85(见 内置标记图标)
MarkerAPIImpl 行数 3611

交互

触发 行为
markerAPIInitialized() 返回 false 标记系统尚未就绪,API 调用无意义
标记集 persistent: true 标记集及其标记持久化到磁盘
网页端或指令创建标记 写入标记集,受 marker.* 权限约束

相关条目