HTTP 接口

基本信息

属性 值
Servlet 实现类 src/main/java/org/dynmap/servlet/ 下 10 个
路由注册入口 DynmapCore.addServlet(DynmapCore.java:992-995)→ web/HandlerRouter.addServlet(HandlerRouter.java:33)
挂载位置 DynmapCore.java:963-969(登录相关在 InternalClientUpdateComponent 内)
根路径 /

端点

DynmapCore.java:963-969 挂载的端点:

路径 Servlet 条件 源码行
/up/configuration org.dynmap.servlet.ClientConfigurationServlet 无条件 DynmapCore.java:963
/standalone/config.js org.dynmap.servlet.ConfigJSServlet 无条件 DynmapCore.java:964
/up/login org.dynmap.servlet.LoginServlet authmgr != null(即 login-enabled) DynmapCore.java:967
/up/register org.dynmap.servlet.LoginServlet(同一实例) authmgr != null DynmapCore.java:968

InternalClientUpdateComponent 挂载的端点:

路径 Servlet 条件 源码行
/up/world/* ClientUpdateServlet 无条件 InternalClientUpdateComponent.java:23
/up/sendmessage SendMessageServlet 条件启用 InternalClientUpdateComponent.java:82

静态图块由 org.dynmap.servlet.MapStorageResourceHandler 提供(该类存在于 servlet/ 目录)。

Servlet 类清单

src/main/java/org/dynmap/servlet/ 下的 10 个类:

类 职责
MainServlet 顶层 Servlet 容器(MainServlet.java:16),内含 Header(:17)与 Registration(:26)内部类,addServlet 在 :39
ClientConfigurationServlet 下发客户端配置
ClientUpdateServlet 玩家位置/血量/聊天增量推送
ConfigJSServlet 生成 config.js
FileResourceHandler 通用静态文件处理
JSONServlet JSON 输出基类
JettyNullLogger 静音 Jetty 日志(JettyNullLogger.java:6 覆写 getName())
LoginServlet 登录与注册
MapStorageResourceHandler 地图图块字节输出
SendMessageServlet 网页端发言写入游戏聊天

客户端兼容性

本条目是 gtnh-web-map-client(modid gwmclient)的服务端对端。客户端侧证据(源码位于 /Users/evlos/a/mirror/GTNH-Web-Map-Client/,与本 mod 不同的仓库):

  • gwmclient 默认 baseUrl 为 http://127.0.0.1:8123(RemoteConfiguration.java:17)
  • 配置项同名,默认值相同(Config.java:20 configuration.get("remote", "baseUrl", "http://127.0.0.1:8123"))
  • 取图块时拼 RemoteConfiguration.baseUrl + "/tiles/"(TileLoaderUrl.java:74)

:8123 正是本 mod webserver-port 的默认值(DynmapCore.java:880),/tiles/ 由 MapStorageResourceHandler 提供。两个 mod 源码之间没有任何直接引用——gtnh-web-map 全仓搜索 GTNH-Web-Map-Client / web-map-client / webmapclient 均为 0 命中,配对纯靠约定俗成的 URL 契约。

交互

触发 行为
login-enabled: false(仓库默认) /up/login 与 /up/register 不挂载,访问 404
login-enabled: true 两个端点由同一 LoginServlet 实例处理
网页端发言 经 /up/sendmessage,受 allowwebchat 与 webchat 权限约束

相关条目