网页前端资源
基本信息
| 属性 | 值 |
|---|---|
| 位置 | src/main/resources/extracted/web/ |
| 释放方式 | 运行时从 jar 内解压到 dynmap/webroot/(DynmapCore.java 约 :2585-2596 的解压循环) |
| 版本占位替换 | 仅对 .html / .js / .php / .txt 四类做文本替换(DynmapCore.java:2588) |
| 占位符 | TAG_TO_REPLACE_ON_EXTRACT → Tags.GRADLETOKEN_VERSION(DynmapCore.java:2589) |
语言构成:本 mod 的源码是纯 Java(342 个 .java,无 .scala/.kt/.ts),但网页端是 PHP + JavaScript + CSS + HTML 的组合。extracted/web/ 下按扩展名统计:
| 扩展名 | 数量 |
|---|---|
.png |
102 |
.php |
30 |
.js |
29 |
.css |
7 |
.html |
3 |
.ico |
2 |
.map |
2 |
.gif / .svg / .webmanifest / .xml / .txt / .aspx |
各 1 |
功能
浏览器端渲染与交互层。三个 HTML 页面是入口:index.html(主地图页)、login.html(登录页)、inactive.html。
JS 层的功能划分可直接由文件名读出:
| 类别 | 文件 |
|---|---|
| 地图显示 | hdmap.js、map.js、minecraft.js、dynmaputils.js、projectiontest.js |
| 标记 | markers.js、custommarker.js、sidebarmarkers.js、sidebarutils.js |
| 聊天 | chat.js、chatbox.js、chatballoon.js |
| 玩家 | playermarkers.js、inactive.js |
| 叠加控件 | coord.js、link.js、logo.js、regiongrid.js、regions.js、digitalclock.js、timeofdayclock.js |
| 第三方库 | jquery-1.11.0.js、jquery-3.5.1.js、jquery.json.js、jquery.mousewheel.js、leaflet.js、leaflet-src.js |
仓库同时携带 两个 jQuery 版本(1.11.0 与 3.5.1),此处仅如实记录,不判定其是否为冗余。
CSS 共 7 个,位于 extracted/web/css/:dynmap_style.css、embedded_example.css,其余为图片资源目录 images/。
PHP 布局
30 个 PHP 文件分两组:
| 组 | 文件 | 数量 |
|---|---|---|
| 顶层端点 | gettiles.php、up.php |
2 |
standalone/ 独立部署套件 |
configuration.php、login.php、register.php、markers.php、tiles.php、update.php、sendmessage.php |
7 |
standalone/ 数据库适配 |
MySQL_*.php(9)、PostgreSQL_*.php(9)、SQLite_markers.php、SQLite_tiles.php |
20 |
standalone/ 是一套绕过 Java 服务端、直接连数据库的 PHP 实现,含 MySQL_access.php、MySQL_configuration.php、MySQL_funcs.php、MySQL_getlogin.php、MySQL_login.php、MySQL_markers.php、MySQL_register.php、MySQL_sendmessage.php、MySQL_tiles.php、MySQL_update.php 与对应的 9 个 PostgreSQL 文件,另有 SQLite_markers.php、SQLite_tiles.php。
数值
| 数值名 | 值 |
|---|---|
| PHP 文件数 | 30 |
| JS 文件数 | 29 |
| CSS 文件数 | 7 |
| HTML 页面数 | 3 |
| 做版本替换的扩展名种类 | 4(.html .js .php .txt) |
交互
| 触发 | 行为 |
|---|---|
| 首次启动 | 从 jar 解压 extracted/ 到 dynmap/webroot/ |
| 每次解压 | .html/.js/.php/.txt 中的版本占位符被替换为构建版本 |
| 其余二进制资源 | 逐字节原样复制(DynmapCore.java:2591-2596) |