mirror of
https://github.com/webbukkit/dynmap.git
synced 2024-11-24 19:25:15 +01:00
Cleanup unused methods, speed up world lookup
This commit is contained in:
parent
a117987840
commit
2f6e52261c
@ -105,6 +105,38 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
private Metrics metrics;
|
private Metrics metrics;
|
||||||
private BukkitEnableCoreCallback enabCoreCB = new BukkitEnableCoreCallback();
|
private BukkitEnableCoreCallback enabCoreCB = new BukkitEnableCoreCallback();
|
||||||
private Method ismodloaded;
|
private Method ismodloaded;
|
||||||
|
private HashMap<String, BukkitWorld> world_by_name = new HashMap<String, BukkitWorld>();
|
||||||
|
/* Lookup cache */
|
||||||
|
private World last_world;
|
||||||
|
private BukkitWorld last_bworld;
|
||||||
|
|
||||||
|
private final BukkitWorld getWorldByName(String name) {
|
||||||
|
if((last_world != null) && (last_world.getName().equals(name))) {
|
||||||
|
return last_bworld;
|
||||||
|
}
|
||||||
|
return world_by_name.get(name);
|
||||||
|
}
|
||||||
|
private final BukkitWorld getWorld(World w) {
|
||||||
|
if(last_world == w) {
|
||||||
|
return last_bworld;
|
||||||
|
}
|
||||||
|
BukkitWorld bw = world_by_name.get(w.getName());
|
||||||
|
if(bw == null) {
|
||||||
|
bw = new BukkitWorld(w);
|
||||||
|
world_by_name.put(w.getName(), bw);
|
||||||
|
}
|
||||||
|
last_world = w;
|
||||||
|
last_bworld = bw;
|
||||||
|
|
||||||
|
return bw;
|
||||||
|
}
|
||||||
|
private final void removeWorld(World w) {
|
||||||
|
world_by_name.remove(w.getName());
|
||||||
|
if(w == last_world) {
|
||||||
|
last_world = null;
|
||||||
|
last_bworld = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class BukkitEnableCoreCallback extends DynmapCore.EnableCoreCallbacks {
|
private class BukkitEnableCoreCallback extends DynmapCore.EnableCoreCallbacks {
|
||||||
@Override
|
@Override
|
||||||
@ -222,7 +254,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
pm.registerEvents(new Listener() {
|
pm.registerEvents(new Listener() {
|
||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onSpawnChange(SpawnChangeEvent evt) {
|
public void onSpawnChange(SpawnChangeEvent evt) {
|
||||||
DynmapWorld w = new BukkitWorld(evt.getWorld());
|
DynmapWorld w = getWorld(evt.getWorld());
|
||||||
core.listenerManager.processWorldEvent(EventType.WORLD_SPAWN_CHANGE, w);
|
core.listenerManager.processWorldEvent(EventType.WORLD_SPAWN_CHANGE, w);
|
||||||
}
|
}
|
||||||
}, DynmapPlugin.this);
|
}, DynmapPlugin.this);
|
||||||
@ -281,7 +313,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(b == null) return; /* Work around for stupid mods.... */
|
if(b == null) return; /* Work around for stupid mods.... */
|
||||||
Location l = b.getLocation();
|
Location l = b.getLocation();
|
||||||
core.listenerManager.processBlockEvent(EventType.BLOCK_BREAK, b.getType().getId(),
|
core.listenerManager.processBlockEvent(EventType.BLOCK_BREAK, b.getType().getId(),
|
||||||
BukkitWorld.normalizeWorldName(l.getWorld().getName()), l.getBlockX(), l.getBlockY(), l.getBlockZ());
|
getWorld(l.getWorld()).getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ());
|
||||||
}
|
}
|
||||||
}, DynmapPlugin.this);
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
@ -297,7 +329,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
Player p = evt.getPlayer();
|
Player p = evt.getPlayer();
|
||||||
if(p != null) dp = new BukkitPlayer(p);
|
if(p != null) dp = new BukkitPlayer(p);
|
||||||
core.listenerManager.processSignChangeEvent(EventType.SIGN_CHANGE, b.getType().getId(),
|
core.listenerManager.processSignChangeEvent(EventType.SIGN_CHANGE, b.getType().getId(),
|
||||||
BukkitWorld.normalizeWorldName(l.getWorld().getName()), l.getBlockX(), l.getBlockY(), l.getBlockZ(), lines, dp);
|
getWorld(l.getWorld()).getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ(), lines, dp);
|
||||||
}
|
}
|
||||||
}, DynmapPlugin.this);
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
@ -336,11 +368,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public DynmapWorld getWorldByName(String wname) {
|
public DynmapWorld getWorldByName(String wname) {
|
||||||
World w = getServer().getWorld(wname); /* FInd world */
|
return DynmapPlugin.this.getWorldByName(wname);
|
||||||
if(w != null) {
|
|
||||||
return new BukkitWorld(w);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public DynmapPlayer getOfflinePlayer(String name) {
|
public DynmapPlayer getOfflinePlayer(String name) {
|
||||||
@ -512,7 +540,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
World w = player.getWorld();
|
World w = player.getWorld();
|
||||||
if(w != null)
|
if(w != null)
|
||||||
return BukkitWorld.normalizeWorldName(w.getName());
|
return DynmapPlugin.this.getWorld(w).getName();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@ -697,7 +725,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
mapManager = core.getMapManager();
|
mapManager = core.getMapManager();
|
||||||
/* Initialized the currently loaded worlds */
|
/* Initialized the currently loaded worlds */
|
||||||
for (World world : getServer().getWorlds()) {
|
for (World world : getServer().getWorlds()) {
|
||||||
BukkitWorld w = new BukkitWorld(world);
|
BukkitWorld w = getWorld(world);
|
||||||
if(core.processWorldLoad(w)) /* Have core process load first - fire event listeners if good load after */
|
if(core.processWorldLoad(w)) /* Have core process load first - fire event listeners if good load after */
|
||||||
core.listenerManager.processWorldEvent(EventType.WORLD_LOAD, w);
|
core.listenerManager.processWorldEvent(EventType.WORLD_LOAD, w);
|
||||||
}
|
}
|
||||||
@ -818,7 +846,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
int x0 = l0.getBlockX(), y0 = l0.getBlockY(), z0 = l0.getBlockZ();
|
int x0 = l0.getBlockX(), y0 = l0.getBlockY(), z0 = l0.getBlockZ();
|
||||||
int x1 = l1.getBlockX(), y1 = l1.getBlockY(), z1 = l1.getBlockZ();
|
int x1 = l1.getBlockX(), y1 = l1.getBlockY(), z1 = l1.getBlockZ();
|
||||||
|
|
||||||
return core.triggerRenderOfVolume(BukkitWorld.normalizeWorldName(l0.getWorld().getName()), Math.min(x0, x1), Math.min(y0, y1),
|
return core.triggerRenderOfVolume(getWorld(l0.getWorld()).getName(), Math.min(x0, x1), Math.min(y0, y1),
|
||||||
Math.min(z0, z1), Math.max(x0, x1), Math.max(y0, y1), Math.max(z0, z1));
|
Math.min(z0, z1), Math.max(x0, x1), Math.max(y0, y1), Math.max(z0, z1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -881,7 +909,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(bt == 9) bt = 8;
|
if(bt == 9) bt = 8;
|
||||||
if(btt.typeid == 9) btt.typeid = 8;
|
if(btt.typeid == 9) btt.typeid = 8;
|
||||||
if((bt != btt.typeid) || (btt.data != w.getBlockAt(loc).getData())) {
|
if((bt != btt.typeid) || (btt.data != w.getBlockAt(loc).getData())) {
|
||||||
String wn = BukkitWorld.normalizeWorldName(w.getName());
|
String wn = getWorld(w).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), btt.trigger);
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), btt.trigger);
|
||||||
}
|
}
|
||||||
@ -951,7 +979,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockplace");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockplace");
|
||||||
}
|
}
|
||||||
@ -968,7 +996,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
Block b = event.getBlock();
|
Block b = event.getBlock();
|
||||||
if(b == null) return; /* Stupid mod workaround */
|
if(b == null) return; /* Stupid mod workaround */
|
||||||
Location loc = b.getLocation();
|
Location loc = b.getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockbreak");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockbreak");
|
||||||
}
|
}
|
||||||
@ -983,7 +1011,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
if(onleaves) {
|
if(onleaves) {
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "leavesdecay");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "leavesdecay");
|
||||||
@ -1000,7 +1028,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
if(onburn) {
|
if(onburn) {
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockburn");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockburn");
|
||||||
@ -1069,7 +1097,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
} catch (ClassCastException ccx) {
|
} catch (ClassCastException ccx) {
|
||||||
dir = BlockFace.NORTH;
|
dir = BlockFace.NORTH;
|
||||||
}
|
}
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
int x = loc.getBlockX(), y = loc.getBlockY(), z = loc.getBlockZ();
|
int x = loc.getBlockX(), y = loc.getBlockY(), z = loc.getBlockZ();
|
||||||
sscache.invalidateSnapshot(wn, x, y, z);
|
sscache.invalidateSnapshot(wn, x, y, z);
|
||||||
if(onpiston)
|
if(onpiston)
|
||||||
@ -1095,7 +1123,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
} catch (ClassCastException ccx) {
|
} catch (ClassCastException ccx) {
|
||||||
dir = BlockFace.NORTH;
|
dir = BlockFace.NORTH;
|
||||||
}
|
}
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
int x = loc.getBlockX(), y = loc.getBlockY(), z = loc.getBlockZ();
|
int x = loc.getBlockX(), y = loc.getBlockY(), z = loc.getBlockZ();
|
||||||
sscache.invalidateSnapshot(wn, x, y, z);
|
sscache.invalidateSnapshot(wn, x, y, z);
|
||||||
if(onpiston)
|
if(onpiston)
|
||||||
@ -1119,7 +1147,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockspread");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockspread");
|
||||||
}
|
}
|
||||||
@ -1134,7 +1162,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockform");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockform");
|
||||||
}
|
}
|
||||||
@ -1149,7 +1177,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockfade");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockfade");
|
||||||
}
|
}
|
||||||
@ -1168,7 +1196,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockgrow");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockgrow");
|
||||||
}
|
}
|
||||||
@ -1184,7 +1212,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockRedstone(BlockRedstoneEvent event) {
|
public void onBlockRedstone(BlockRedstoneEvent event) {
|
||||||
Location loc = event.getBlock().getLocation();
|
Location loc = event.getBlock().getLocation();
|
||||||
String wn = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wn = getWorld(loc.getWorld()).getName();
|
||||||
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockredstone");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockredstone");
|
||||||
}
|
}
|
||||||
@ -1198,7 +1226,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
if(onplayerjoin) {
|
if(onplayerjoin) {
|
||||||
Location loc = event.getPlayer().getLocation();
|
Location loc = event.getPlayer().getLocation();
|
||||||
mapManager.touch(BukkitWorld.normalizeWorldName(loc.getWorld().getName()), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "playerjoin");
|
mapManager.touch(getWorld(loc.getWorld()).getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "playerjoin");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -1212,7 +1240,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onPlayerMove(PlayerMoveEvent event) {
|
public void onPlayerMove(PlayerMoveEvent event) {
|
||||||
Location loc = event.getPlayer().getLocation();
|
Location loc = event.getPlayer().getLocation();
|
||||||
mapManager.touch(BukkitWorld.normalizeWorldName(loc.getWorld().getName()), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "playermove");
|
mapManager.touch(getWorld(loc.getWorld()).getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "playermove");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pm.registerEvents(playermove, this);
|
pm.registerEvents(playermove, this);
|
||||||
@ -1223,7 +1251,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onEntityExplode(EntityExplodeEvent event) {
|
public void onEntityExplode(EntityExplodeEvent event) {
|
||||||
Location loc = event.getLocation();
|
Location loc = event.getLocation();
|
||||||
String wname = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wname = getWorld(loc.getWorld()).getName();
|
||||||
int minx, maxx, miny, maxy, minz, maxz;
|
int minx, maxx, miny, maxy, minz, maxz;
|
||||||
minx = maxx = loc.getBlockX();
|
minx = maxx = loc.getBlockX();
|
||||||
miny = maxy = loc.getBlockY();
|
miny = maxy = loc.getBlockY();
|
||||||
@ -1256,21 +1284,21 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onWorldLoad(WorldLoadEvent event) {
|
public void onWorldLoad(WorldLoadEvent event) {
|
||||||
core.updateConfigHashcode();
|
core.updateConfigHashcode();
|
||||||
BukkitWorld w = new BukkitWorld(event.getWorld());
|
BukkitWorld w = getWorld(event.getWorld());
|
||||||
if(core.processWorldLoad(w)) /* Have core process load first - fire event listeners if good load after */
|
if(core.processWorldLoad(w)) /* Have core process load first - fire event listeners if good load after */
|
||||||
core.listenerManager.processWorldEvent(EventType.WORLD_LOAD, w);
|
core.listenerManager.processWorldEvent(EventType.WORLD_LOAD, w);
|
||||||
}
|
}
|
||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onWorldUnload(WorldUnloadEvent event) {
|
public void onWorldUnload(WorldUnloadEvent event) {
|
||||||
core.updateConfigHashcode();
|
core.updateConfigHashcode();
|
||||||
DynmapWorld w = core.getWorld(BukkitWorld.normalizeWorldName(event.getWorld().getName()));
|
DynmapWorld w = getWorld(event.getWorld());
|
||||||
if(w != null)
|
core.listenerManager.processWorldEvent(EventType.WORLD_UNLOAD, w);
|
||||||
core.listenerManager.processWorldEvent(EventType.WORLD_UNLOAD, w);
|
removeWorld(event.getWorld());
|
||||||
}
|
}
|
||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onStructureGrow(StructureGrowEvent event) {
|
public void onStructureGrow(StructureGrowEvent event) {
|
||||||
Location loc = event.getLocation();
|
Location loc = event.getLocation();
|
||||||
String wname = BukkitWorld.normalizeWorldName(loc.getWorld().getName());
|
String wname = getWorld(loc.getWorld()).getName();
|
||||||
int minx, maxx, miny, maxy, minz, maxz;
|
int minx, maxx, miny, maxy, minz, maxz;
|
||||||
minx = maxx = loc.getBlockX();
|
minx = maxx = loc.getBlockX();
|
||||||
miny = maxy = loc.getBlockY();
|
miny = maxy = loc.getBlockY();
|
||||||
@ -1307,7 +1335,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
/* Touch extreme corners */
|
/* Touch extreme corners */
|
||||||
int x = c.getX() << 4;
|
int x = c.getX() << 4;
|
||||||
int z = c.getZ() << 4;
|
int z = c.getZ() << 4;
|
||||||
mapManager.touchVolume(BukkitWorld.normalizeWorldName(event.getWorld().getName()), x, 0, z, x+15, 128, z+16, "chunkpopulate");
|
mapManager.touchVolume(getWorld(event.getWorld()).getName(), x, 0, z, x+15, 128, z+16, "chunkpopulate");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
pm.registerEvents(chunkTrigger, this);
|
pm.registerEvents(chunkTrigger, this);
|
||||||
|
@ -914,45 +914,6 @@ public class NewMapChunkCache implements MapChunkCache {
|
|||||||
snaparray = null;
|
snaparray = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* Get block ID at coordinates
|
|
||||||
*/
|
|
||||||
public int getBlockTypeID(int x, int y, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
return ss.getBlockTypeId(x & 0xF, y, z & 0xF);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Get block data at coordiates
|
|
||||||
*/
|
|
||||||
public byte getBlockData(int x, int y, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
return (byte)ss.getBlockData(x & 0xF, y, z & 0xF);
|
|
||||||
}
|
|
||||||
/* Get sky light level
|
|
||||||
*/
|
|
||||||
public int getBlockSkyLight(int x, int y, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
return ss.getBlockSkyLight(x & 0xF, y, z & 0xF);
|
|
||||||
}
|
|
||||||
/* Get emitted light level
|
|
||||||
*/
|
|
||||||
public int getBlockEmittedLight(int x, int y, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
return ss.getBlockEmittedLight(x & 0xF, y, z & 0xF);
|
|
||||||
}
|
|
||||||
public BiomeMap getBiome(int x, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
Biome b = ss.getBiome(x & 0xF, z & 0xF);
|
|
||||||
return (b != null)?biome_to_bmap[b.ordinal()]:null;
|
|
||||||
}
|
|
||||||
public double getRawBiomeTemperature(int x, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
return ss.getRawBiomeTemperature(x & 0xF, z & 0xF);
|
|
||||||
}
|
|
||||||
public double getRawBiomeRainfall(int x, int z) {
|
|
||||||
ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim];
|
|
||||||
return ss.getRawBiomeRainfall(x & 0xF, z & 0xF);
|
|
||||||
}
|
|
||||||
private void initSectionData(int idx) {
|
private void initSectionData(int idx) {
|
||||||
isSectionNotEmpty[idx] = new boolean[nsect + 1];
|
isSectionNotEmpty[idx] = new boolean[nsect + 1];
|
||||||
if(snaparray[idx] != EMPTY) {
|
if(snaparray[idx] != EMPTY) {
|
||||||
|
Loading…
Reference in New Issue
Block a user