UseForcedChunks
基本信息
| 属性 | 值 |
|---|---|
| 配置项 | Settings.UseForcedChunks |
| 宿主字段 | DynmapMod.useforcedchunks(forge/DynmapMod.java:47,public static boolean) |
| 读取位置 | forge/DynmapMod.java:87 |
| 文件路径 | event.getSuggestedConfigurationFile()(DynmapMod.java:83)→ <MC 根目录>/config/dynmap.cfg |
| 格式 | Forge Configuration(INI 风格) |
| 分区 | Settings |
功能
控制 Dynmap 是否通过 Forge 的 ForgeChunkManager 强制区块加载机制来保证其追踪的区块保持在内存中。
读取在 DynmapMod.preInit 内完成,同样是"读-改-写"模式:cfg.load() → cfg.get("Settings", "UseForcedChunks", true).getBoolean(true) → finally { cfg.save(); }(DynmapMod.java:84-92)。注意 getBoolean 的默认值传了两次(getBoolean(true) 与 get(...) 的第三参 true),二者一致,均为 true。
消费点在 DynmapMod.init(DynmapMod.java:99):
- 为
true(默认):ForgeChunkManager.setForcedChunkLoadingCallback(DynmapMod.instance, new LoadingCallback())(DynmapMod.java:103) - 为
false:向 stdout 输出[Dynmap] World loading using forced chunks is disabled(DynmapMod.java:106)
LoadingCallback 是 DynmapMod 的内部类(DynmapMod.java:61),实现 ForgeChunkManager.LoadingCallback。其 ticketsLoaded 在收到票据时取第一张作为"忙碌世界"标记,并立即释放其余所有票据(DynmapMod.java:63-69)——即刻意只保留 1 张强制加载票据。
数值
| 数值名 | 值 |
|---|---|
| 默认值 | true |
| 取值类型 | 布尔 |
| 保留的强制加载票据数 | 至多 1(DynmapMod.java:66-68 释放 i >= 1 的全部票据) |
交互
| 触发 | 行为 |
|---|---|
值为 true |
注册 ForgeChunkManager 回调,进入 LoadingCallback.ticketsLoaded |
值为 false |
打印禁用提示,不注册回调 |
关闭后的取舍
仓库 README.md 未讨论该项。结合源码:关闭后 Dynmap 不再持有强制区块,渲染将依赖区块自然卸载——已被卸载的区块需要重新加载才能增量渲染。仓库 README.md 建议的 fullrender 预渲染流程因此更适合在关闭该项时使用。
相关条目
- config/GTNH-Web-Map.cfg - 同一
preInit内读取的另一份配置 - 性能与渲染配置 -
dynmap/configuration.txt中的渲染节流参数