Class ChunkPriceMap
java.lang.Object
net.chen.legacyLand.resource.pricing.map.ChunkPriceMap
BlueMap 地价标记管理(兼容 BlueMap-Towny 2.4.0 接入模式)。
接入约定(参考 codes.antti.bluemaptowny.BlueMapTowny):
BlueMapAPI.onEnable(java.util.function.Consumer)触发后调用onBlueMapEnable(BlueMapAPI),为每个 BlueMap 世界一次性注册 MarkerSet。- 每个世界一个 MarkerSet(按
WorldInfo.getUID()缓存),同一 MarkerSet 会被注入到该BlueMapWorld的所有BlueMapMap中。 - 定时刷新采用「全清后重写」策略,确保国家/城镇解散后旧标记自动消失。
- MarkerSet id 与 BlueMap-Towny 的
"towny"互不冲突,可并存。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublegetNationalTotalPrice(com.palmergames.bukkit.towny.object.Nation nation) 计算国家所有领土区块的地价总和。voidonBlueMapDisable(de.bluecolored.bluemap.api.BlueMapAPI api) 由BlueMapAPI.onDisable(Consumer)回调触发:从所有地图移除 MarkerSet,清空缓存。voidonBlueMapEnable(de.bluecolored.bluemap.api.BlueMapAPI api) 由BlueMapAPI.onEnable(Consumer)回调触发:为每个已映射的 Bukkit 世界注册 MarkerSet。voidremoveChunkPriceMarker(String world, int cx, int cz) 单点移除:从对应世界缓存里删除 markerId。voidremoveNationPriceMarker(com.palmergames.bukkit.towny.object.Nation nation) 从所有世界的 MarkerSet 中移除指定国家的 POI(用于解散事件)。void全清后重写所有地块 Shape(与 BlueMap-Towny 的批量刷新一致)。void全清后重写所有国家 POI(参照 BlueMap-Towny 的 updateMarkers 策略)。voidupdateChunkPriceMarker(com.palmergames.bukkit.towny.object.TownBlock tb) 为单个 TownBlock 写入 16×16 的 ShapeMarker,颜色随价格在绿→红之间渐变。voidupdateNationPriceMarker(com.palmergames.bukkit.towny.object.Nation nation) 为单个国家更新 POI 标记。voidupdateTownChunkPriceMarkers(com.palmergames.bukkit.towny.object.Town town)
-
Constructor Details
-
ChunkPriceMap
public ChunkPriceMap()
-
-
Method Details
-
onBlueMapEnable
public void onBlueMapEnable(de.bluecolored.bluemap.api.BlueMapAPI api) 由BlueMapAPI.onEnable(Consumer)回调触发:为每个已映射的 Bukkit 世界注册 MarkerSet。 重复调用是幂等的——会先清空再重建。 -
onBlueMapDisable
public void onBlueMapDisable(de.bluecolored.bluemap.api.BlueMapAPI api) 由BlueMapAPI.onDisable(Consumer)回调触发:从所有地图移除 MarkerSet,清空缓存。 -
getNationalTotalPrice
public double getNationalTotalPrice(com.palmergames.bukkit.towny.object.Nation nation) 计算国家所有领土区块的地价总和。- Parameters:
nation- Towny 国家;为 null 返回 0
-
updateNationPriceMarker
public void updateNationPriceMarker(com.palmergames.bukkit.towny.object.Nation nation) 为单个国家更新 POI 标记。标记位置:首都 spawn;首都缺失/未设置 spawn 则跳过。 -
updateAllNationMarkers
public void updateAllNationMarkers()全清后重写所有国家 POI(参照 BlueMap-Towny 的 updateMarkers 策略)。 国家解散后旧标记会随清空消失。 -
removeNationPriceMarker
public void removeNationPriceMarker(com.palmergames.bukkit.towny.object.Nation nation) 从所有世界的 MarkerSet 中移除指定国家的 POI(用于解散事件)。 -
updateChunkPriceMarker
public void updateChunkPriceMarker(com.palmergames.bukkit.towny.object.TownBlock tb) 为单个 TownBlock 写入 16×16 的 ShapeMarker,颜色随价格在绿→红之间渐变。 -
removeChunkPriceMarker
单点移除:从对应世界缓存里删除 markerId。 -
updateTownChunkPriceMarkers
public void updateTownChunkPriceMarkers(com.palmergames.bukkit.towny.object.Town town) -
updateAllChunkPriceMarkers
public void updateAllChunkPriceMarkers()全清后重写所有地块 Shape(与 BlueMap-Towny 的批量刷新一致)。
-