/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.*(见 权限体系) |