/dmarker

基本信息

属性 值
指令名 dmarker
注册位置 src/main/java/org/dynmap/forge/DynmapPlugin.java:1473
处理类 DmarkerCommand(DynmapPlugin.java:2059-2063)
分派入口 DynmapCore.processCommand 的 dmarker 分支(DynmapCore.java:1416-1420)
子命令白名单 MarkerAPIImpl.commands(MarkerAPIImpl.java:1280-1286),33 项
分派实现 MarkerAPIImpl.onCommand(MarkerAPIImpl.java:1382)
帮助表 commandinfo 中本指令 47 行(DynmapCore.java:1185-1290)

功能

地图标记(marker)的完整增删改。标记数据在服务端持久化到 dynmap/markers/ 目录,随仓库提供 85 个内置图标 PNG。

子命令先过白名单校验:MarkerAPIImpl.onCommand 在 MarkerAPIImpl.java:1394 用 commands.contains(c) 拦截非法子命令,因此白名单是真正的注册闸门,而非仅用于补全。分派本身是显式 equals 链(MarkerAPIImpl.java:1401 list、:1434 add、:1446 delete 等),每个分支各自调用 checkPlayerPermission。

子命令

白名单 MarkerAPIImpl.java:1280-1286 原文列举(33 项,顺序与源码一致):

类别 子命令
通用 add movehere update delete list icons
标记集 addset updateset deleteset listsets
标记集图标 addicon updateicon deleteicon
折线角点 addcorner clearcorners
区域 addarea listareas deletearea updatearea
折线 addline listlines deleteline updateline
圆 addcircle listcircles deletecircle updatecircle
描述 getdesc resetdesc appenddesc importdesc
标签 getlabel importlabel

数值

数值名 值
白名单子命令总数 33
权限命名空间 marker.*(如 marker.add marker.delete marker.list)

权限名可由分派处直接读出:marker.list(MarkerAPIImpl.java:1401)、marker.add(MarkerAPIImpl.java:1434)、marker.delete(MarkerAPIImpl.java:1446)。仓库 README.md 的 “Permissions” 一节亦以 marker.add / marker.delete 为例。

仓库 README.md 特别提示:GTNH-Web-Map 自带权限系统并与 ServerUtilities 的权限系统并存,因此即使已在 ServerUtilities 配好等级权限,仍可能看到本 mod 自己抛出的 “You don’t have permission to use this command!”。

交互

触发 行为
子命令不在白名单 MarkerAPIImpl.java:1394 拦截,回落打印帮助
权限不足 每个分支独立 checkPlayerPermission 拦截
网页端添加标记 需 permissions.yml 中开启相应 marker.*(见 权限体系)

相关条目