MENU

「Minecraft」修改 Dynmap 让 WarsFtbDynmap 能正常使用

2019 年 05 月 12 日 • Minecraft

修改 Dynmap Forge 的 index.html 和 markers.js 让 WarsFtbDynmap 能正常使用。
记录下来,方便下次使用。
版本信息:
Minecraft Java Edition 正式版 1.12.2 Forge
DynmapForge V3.0 beta 3
WarsFtbDynmap V1.0.4


前言

  • 可能是因为服务端的多世界功能是使用模组 Just Enough Dimensions 实现的,然后 WarsFtbDynmap 不能正确识别世界,导致其生成的marker.json文件的文件名为 marker_.json ,而不是 marker_世界名称.json(或者直接把标记点的数据写入到原有的 marker_世界名.json 中)。
  • 因为DynmapForge只能加载对应世界名称的 marker.json 文件,所以 WarsFtbDynmap 不能正常使用(不显示 FTB Utilities 设定的领地)。
  • 这只是临时解决方案,且本方案可能有可以改进的地方。
  • 目前网页地图只显示世界 world 和世界 DIM0(这两个世界名称是 Just Enough Dimensions 给的;world 是默认的主世界,DIM0 是自己加的世界)。

进行的修改

dynmap/web/js/markers.js

删除了第 28 行中的world,使在网页地图中切换世界时不能自动传入要加载的marker.json的文件名中的world参数。

默认:

function loadmarkers(world) {

修改为:

function loadmarkers() {

dynmap/web/index.html

因为去掉了“传入参数”,加载 marker.json 时会出错,所以要写一个用于手动传入参数的东西。

在第 38 行的后面插入 1 行,写入以下内容(用于设定初始加载的 marker.json 的世界名称为 DIM0):

<script type="text/javascript">world = "DIM0";</script>

在第 46 行的后面插入 11 行,写入以下内容(切换世界用的 function):

<script type="text/javascript">
    function loadMarkersDefault() {
        world = "world";
    }
    function loadMarkersDIM0() {
        world = "DIM0";
    }
    function loadMarkersFTB() {
        world = "";
    }
</script>

dynmap/configuration.txt

修改 DynmapForge 的配置文件,添加用于切换要加载的 marker.json 的按钮。

在第 178 行左右(内容是 # Note: more than one logo component can be defined)的后面插入 18 行,写入以下内容:

- class: org.dynmap.ClientComponent
  type: logo
  text: "加载标记 - FTB"
  logourl: "images/block_biome.png"
  linkurl: "javascript:loadMarkersFTB();"
  position: bottom-left
- class: org.dynmap.ClientComponent
  type: logo
  text: "加载标记 - 主世界"
  logourl: "images/block_biome.png"
  linkurl: "javascript:loadMarkersDIM0();"
  position: bottom-left
- class: org.dynmap.ClientComponent
  type: logo
  text: "加载标记 - 默认"
  logourl: "images/block_biome.png"
  linkurl: "javascript:loadMarkersDefault();"
  position: bottom-left

结果

网页地图的左下角多了 3 个图标,依次是:

  • 加载标记 - 默认
  • 加载标记 - 主世界
  • 加载标记 - FTB

点一下图标,然后再在右侧的侧边栏切换一下世界,就可以切换显示相应的标记了。(本来想点一下图标就能完成切换,但是暂时没有找到方法)

最后编辑于: 2021 年 05 月 03 日