mirror of
https://github.com/webbukkit/dynmap.git
synced 2024-11-24 19:25:15 +01:00
Migrate to 1.1 event system (breaks 1.0 compatibility)
This commit is contained in:
parent
9be7c4d7ef
commit
1ef9bdd861
@ -1,449 +0,0 @@
|
|||||||
package org.dynmap.bukkit;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.event.CustomEventListener;
|
|
||||||
import org.bukkit.event.Event;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
|
||||||
import org.bukkit.event.block.BlockBurnEvent;
|
|
||||||
import org.bukkit.event.block.BlockFadeEvent;
|
|
||||||
import org.bukkit.event.block.BlockFormEvent;
|
|
||||||
import org.bukkit.event.block.BlockFromToEvent;
|
|
||||||
import org.bukkit.event.block.BlockListener;
|
|
||||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
|
||||||
import org.bukkit.event.block.BlockPistonExtendEvent;
|
|
||||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
|
||||||
import org.bukkit.event.block.BlockSpreadEvent;
|
|
||||||
import org.bukkit.event.block.LeavesDecayEvent;
|
|
||||||
import org.bukkit.event.block.SignChangeEvent;
|
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
|
||||||
import org.bukkit.event.entity.EntityListener;
|
|
||||||
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
|
||||||
import org.bukkit.event.player.PlayerChatEvent;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
|
||||||
import org.bukkit.event.player.PlayerListener;
|
|
||||||
import org.bukkit.event.player.PlayerLoginEvent;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
import org.bukkit.event.server.PluginDisableEvent;
|
|
||||||
import org.bukkit.event.server.PluginEnableEvent;
|
|
||||||
import org.bukkit.event.server.ServerListener;
|
|
||||||
import org.bukkit.event.world.ChunkLoadEvent;
|
|
||||||
import org.bukkit.event.world.ChunkPopulateEvent;
|
|
||||||
import org.bukkit.event.world.SpawnChangeEvent;
|
|
||||||
import org.bukkit.event.world.WorldListener;
|
|
||||||
import org.bukkit.event.world.WorldLoadEvent;
|
|
||||||
import org.bukkit.event.world.WorldUnloadEvent;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
import org.bukkit.plugin.PluginManager;
|
|
||||||
import org.dynmap.Log;
|
|
||||||
|
|
||||||
public class BukkitEventProcessor {
|
|
||||||
private Plugin plugin;
|
|
||||||
private PluginManager pm;
|
|
||||||
|
|
||||||
private HashMap<Event.Type, List<Listener>> event_handlers = new HashMap<Event.Type, List<Listener>>();
|
|
||||||
|
|
||||||
public BukkitEventProcessor(Plugin plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
this.pm = plugin.getServer().getPluginManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void cleanup() {
|
|
||||||
/* Clean up all registered handlers */
|
|
||||||
for(Event.Type t : event_handlers.keySet()) {
|
|
||||||
List<Listener> ll = event_handlers.get(t);
|
|
||||||
ll.clear(); /* Empty list - we use presence of list to remember that we've registered with Bukkit */
|
|
||||||
}
|
|
||||||
if(plugin.getServer().getVersion().contains("(MC: 1.0") == false) {
|
|
||||||
event_handlers.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private BlockListener ourBlockEventHandler = new BlockListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockPlace(BlockPlaceEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockPlace(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockBreak(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onLeavesDecay(LeavesDecayEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onLeavesDecay(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockBurn(BlockBurnEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockBurn(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockForm(BlockFormEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockForm(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onBlockFade(BlockFadeEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockFade(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onBlockSpread(BlockSpreadEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockSpread(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onBlockFromTo(BlockFromToEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockFromTo(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onBlockPhysics(BlockPhysicsEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockPhysics(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockPistonRetract(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onBlockPistonExtend(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onSignChange(SignChangeEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((BlockListener)l).onSignChange(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
private PlayerListener ourPlayerEventHandler = new PlayerListener() {
|
|
||||||
@Override
|
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((PlayerListener)l).onPlayerJoin(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onPlayerLogin(PlayerLoginEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((PlayerListener)l).onPlayerLogin(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlayerMove(PlayerMoveEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((PlayerListener)l).onPlayerMove(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((PlayerListener)l).onPlayerQuit(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlayerBedLeave(PlayerBedLeaveEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((PlayerListener)l).onPlayerBedLeave(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlayerChat(PlayerChatEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((PlayerListener)l).onPlayerChat(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private WorldListener ourWorldEventHandler = new WorldListener() {
|
|
||||||
@Override
|
|
||||||
public void onWorldLoad(WorldLoadEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((WorldListener)l).onWorldLoad(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onWorldUnload(WorldUnloadEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((WorldListener)l).onWorldUnload(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onChunkLoad(ChunkLoadEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((WorldListener)l).onChunkLoad(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onChunkPopulate(ChunkPopulateEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((WorldListener)l).onChunkPopulate(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onSpawnChange(SpawnChangeEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((WorldListener)l).onSpawnChange(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private CustomEventListener ourCustomEventHandler = new CustomEventListener() {
|
|
||||||
@Override
|
|
||||||
public void onCustomEvent(Event event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((CustomEventListener)l).onCustomEvent(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private EntityListener ourEntityEventHandler = new EntityListener() {
|
|
||||||
@Override
|
|
||||||
public void onEntityExplode(EntityExplodeEvent event) {
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((EntityListener)l).onEntityExplode(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private ServerListener ourServerEventHandler = new ServerListener() {
|
|
||||||
@Override
|
|
||||||
public void onPluginEnable(PluginEnableEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((ServerListener)l).onPluginEnable(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onPluginDisable(PluginDisableEvent event) {
|
|
||||||
/* Call listeners */
|
|
||||||
List<Listener> ll = event_handlers.get(event.getType());
|
|
||||||
if(ll != null) {
|
|
||||||
for(Listener l : ll) {
|
|
||||||
((ServerListener)l).onPluginDisable(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register event listener - this will be cleaned up properly on a /dynmap reload, unlike
|
|
||||||
* registering with Bukkit directly
|
|
||||||
*/
|
|
||||||
public void registerEvent(Event.Type type, Listener listener) {
|
|
||||||
List<Listener> ll = event_handlers.get(type);
|
|
||||||
if(ll == null) {
|
|
||||||
switch(type) { /* See if it is a type we're brokering */
|
|
||||||
case PLAYER_LOGIN:
|
|
||||||
case PLAYER_CHAT:
|
|
||||||
case PLAYER_JOIN:
|
|
||||||
case PLAYER_QUIT:
|
|
||||||
case PLAYER_MOVE:
|
|
||||||
case PLAYER_BED_LEAVE:
|
|
||||||
pm.registerEvent(type, ourPlayerEventHandler, Event.Priority.Monitor, plugin);
|
|
||||||
break;
|
|
||||||
case BLOCK_PLACE:
|
|
||||||
case BLOCK_BREAK:
|
|
||||||
case LEAVES_DECAY:
|
|
||||||
case BLOCK_BURN:
|
|
||||||
case BLOCK_FORM:
|
|
||||||
case BLOCK_FADE:
|
|
||||||
case BLOCK_SPREAD:
|
|
||||||
case BLOCK_FROMTO:
|
|
||||||
case BLOCK_PHYSICS:
|
|
||||||
case BLOCK_PISTON_EXTEND:
|
|
||||||
case BLOCK_PISTON_RETRACT:
|
|
||||||
pm.registerEvent(type, ourBlockEventHandler, Event.Priority.Monitor, plugin);
|
|
||||||
break;
|
|
||||||
case SIGN_CHANGE:
|
|
||||||
pm.registerEvent(type, ourBlockEventHandler, Event.Priority.Low, plugin);
|
|
||||||
break;
|
|
||||||
case WORLD_LOAD:
|
|
||||||
case WORLD_UNLOAD:
|
|
||||||
case CHUNK_LOAD:
|
|
||||||
case CHUNK_POPULATED:
|
|
||||||
case SPAWN_CHANGE:
|
|
||||||
pm.registerEvent(type, ourWorldEventHandler, Event.Priority.Monitor, plugin);
|
|
||||||
break;
|
|
||||||
case CUSTOM_EVENT:
|
|
||||||
pm.registerEvent(type, ourCustomEventHandler, Event.Priority.Monitor, plugin);
|
|
||||||
break;
|
|
||||||
case ENTITY_EXPLODE:
|
|
||||||
pm.registerEvent(type, ourEntityEventHandler, Event.Priority.Monitor, plugin);
|
|
||||||
break;
|
|
||||||
case PLUGIN_ENABLE:
|
|
||||||
case PLUGIN_DISABLE:
|
|
||||||
pm.registerEvent(type, ourServerEventHandler, Event.Priority.Monitor, plugin);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Log.severe("registerEvent() in DynmapPlugin does not handle " + type);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ll = new ArrayList<Listener>();
|
|
||||||
event_handlers.put(type, ll); /* Add list for this event */
|
|
||||||
}
|
|
||||||
ll.add(listener);
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,14 +18,14 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Event.Type;
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
import org.bukkit.event.block.BlockBurnEvent;
|
import org.bukkit.event.block.BlockBurnEvent;
|
||||||
import org.bukkit.event.block.BlockFadeEvent;
|
import org.bukkit.event.block.BlockFadeEvent;
|
||||||
import org.bukkit.event.block.BlockFormEvent;
|
import org.bukkit.event.block.BlockFormEvent;
|
||||||
import org.bukkit.event.block.BlockFromToEvent;
|
import org.bukkit.event.block.BlockFromToEvent;
|
||||||
import org.bukkit.event.block.BlockListener;
|
|
||||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||||
import org.bukkit.event.block.BlockPistonExtendEvent;
|
import org.bukkit.event.block.BlockPistonExtendEvent;
|
||||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||||
@ -34,16 +34,13 @@ import org.bukkit.event.block.BlockSpreadEvent;
|
|||||||
import org.bukkit.event.block.LeavesDecayEvent;
|
import org.bukkit.event.block.LeavesDecayEvent;
|
||||||
import org.bukkit.event.block.SignChangeEvent;
|
import org.bukkit.event.block.SignChangeEvent;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
import org.bukkit.event.entity.EntityListener;
|
|
||||||
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
import org.bukkit.event.player.PlayerBedLeaveEvent;
|
||||||
import org.bukkit.event.player.PlayerChatEvent;
|
import org.bukkit.event.player.PlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerListener;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.world.ChunkPopulateEvent;
|
import org.bukkit.event.world.ChunkPopulateEvent;
|
||||||
import org.bukkit.event.world.SpawnChangeEvent;
|
import org.bukkit.event.world.SpawnChangeEvent;
|
||||||
import org.bukkit.event.world.WorldListener;
|
|
||||||
import org.bukkit.event.world.WorldLoadEvent;
|
import org.bukkit.event.world.WorldLoadEvent;
|
||||||
import org.bukkit.event.world.WorldUnloadEvent;
|
import org.bukkit.event.world.WorldUnloadEvent;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
@ -73,13 +70,13 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
private DynmapCore core;
|
private DynmapCore core;
|
||||||
private PermissionProvider permissions;
|
private PermissionProvider permissions;
|
||||||
private String version;
|
private String version;
|
||||||
public BukkitEventProcessor bep;
|
|
||||||
public SnapshotCache sscache;
|
public SnapshotCache sscache;
|
||||||
private boolean has_spout = false;
|
private boolean has_spout = false;
|
||||||
public PlayerList playerList;
|
public PlayerList playerList;
|
||||||
private MapManager mapManager;
|
private MapManager mapManager;
|
||||||
public static DynmapPlugin plugin;
|
public static DynmapPlugin plugin;
|
||||||
public SpoutPluginBlocks spb;
|
public SpoutPluginBlocks spb;
|
||||||
|
public PluginManager pm;
|
||||||
|
|
||||||
public DynmapPlugin() {
|
public DynmapPlugin() {
|
||||||
plugin = this;
|
plugin = this;
|
||||||
@ -149,52 +146,53 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
/* Already called for normal world activation/deactivation */
|
/* Already called for normal world activation/deactivation */
|
||||||
break;
|
break;
|
||||||
case WORLD_SPAWN_CHANGE:
|
case WORLD_SPAWN_CHANGE:
|
||||||
bep.registerEvent(Type.SPAWN_CHANGE, new WorldListener() {
|
pm.registerEvents(new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onSpawnChange(SpawnChangeEvent evt) {
|
public void onSpawnChange(SpawnChangeEvent evt) {
|
||||||
DynmapWorld w = new BukkitWorld(evt.getWorld());
|
DynmapWorld w = new BukkitWorld(evt.getWorld());
|
||||||
core.listenerManager.processWorldEvent(EventType.WORLD_SPAWN_CHANGE, w);
|
core.listenerManager.processWorldEvent(EventType.WORLD_SPAWN_CHANGE, w);
|
||||||
}
|
}
|
||||||
});
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
case PLAYER_JOIN:
|
case PLAYER_JOIN:
|
||||||
case PLAYER_QUIT:
|
case PLAYER_QUIT:
|
||||||
/* Already handled */
|
/* Already handled */
|
||||||
break;
|
break;
|
||||||
case PLAYER_BED_LEAVE:
|
case PLAYER_BED_LEAVE:
|
||||||
bep.registerEvent(Type.PLAYER_BED_LEAVE, new PlayerListener() {
|
pm.registerEvents(new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onPlayerBedLeave(PlayerBedLeaveEvent evt) {
|
public void onPlayerBedLeave(PlayerBedLeaveEvent evt) {
|
||||||
DynmapPlayer p = new BukkitPlayer(evt.getPlayer());
|
DynmapPlayer p = new BukkitPlayer(evt.getPlayer());
|
||||||
core.listenerManager.processPlayerEvent(EventType.PLAYER_BED_LEAVE, p);
|
core.listenerManager.processPlayerEvent(EventType.PLAYER_BED_LEAVE, p);
|
||||||
}
|
}
|
||||||
});
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
case PLAYER_CHAT:
|
case PLAYER_CHAT:
|
||||||
bep.registerEvent(Type.PLAYER_CHAT, new PlayerListener() {
|
pm.registerEvents(new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onPlayerChat(PlayerChatEvent evt) {
|
public void onPlayerChat(PlayerChatEvent evt) {
|
||||||
|
if(evt.isCancelled()) return;
|
||||||
DynmapPlayer p = null;
|
DynmapPlayer p = null;
|
||||||
if(evt.getPlayer() != null)
|
if(evt.getPlayer() != null)
|
||||||
p = new BukkitPlayer(evt.getPlayer());
|
p = new BukkitPlayer(evt.getPlayer());
|
||||||
core.listenerManager.processChatEvent(EventType.PLAYER_CHAT, p, evt.getMessage());
|
core.listenerManager.processChatEvent(EventType.PLAYER_CHAT, p, evt.getMessage());
|
||||||
}
|
}
|
||||||
});
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
case BLOCK_BREAK:
|
case BLOCK_BREAK:
|
||||||
bep.registerEvent(Type.BLOCK_BREAK, new BlockListener() {
|
pm.registerEvents(new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockBreak(BlockBreakEvent evt) {
|
public void onBlockBreak(BlockBreakEvent evt) {
|
||||||
Block b = evt.getBlock();
|
Block b = evt.getBlock();
|
||||||
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(),
|
||||||
l.getWorld().getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ());
|
l.getWorld().getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ());
|
||||||
}
|
}
|
||||||
});
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
case SIGN_CHANGE:
|
case SIGN_CHANGE:
|
||||||
bep.registerEvent(Type.SIGN_CHANGE, new BlockListener() {
|
pm.registerEvents(new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onSignChange(SignChangeEvent evt) {
|
public void onSignChange(SignChangeEvent evt) {
|
||||||
Block b = evt.getBlock();
|
Block b = evt.getBlock();
|
||||||
Location l = b.getLocation();
|
Location l = b.getLocation();
|
||||||
@ -205,7 +203,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
core.listenerManager.processSignChangeEvent(EventType.SIGN_CHANGE, b.getType().getId(),
|
core.listenerManager.processSignChangeEvent(EventType.SIGN_CHANGE, b.getType().getId(),
|
||||||
l.getWorld().getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ(), lines, dp);
|
l.getWorld().getName(), l.getBlockX(), l.getBlockY(), l.getBlockZ(), lines, dp);
|
||||||
}
|
}
|
||||||
});
|
}, DynmapPlugin.this);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Log.severe("Unhandled event type: " + type);
|
Log.severe("Unhandled event type: " + type);
|
||||||
@ -341,12 +339,11 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
pm = this.getServer().getPluginManager();
|
||||||
|
|
||||||
PluginDescriptionFile pdfFile = this.getDescription();
|
PluginDescriptionFile pdfFile = this.getDescription();
|
||||||
version = pdfFile.getVersion();
|
version = pdfFile.getVersion();
|
||||||
|
|
||||||
/* Initialize event processor */
|
|
||||||
if(bep == null)
|
|
||||||
bep = new BukkitEventProcessor(this);
|
|
||||||
|
|
||||||
/* Set up player login/quit event handler */
|
/* Set up player login/quit event handler */
|
||||||
registerPlayerLoginListener();
|
registerPlayerLoginListener();
|
||||||
@ -413,8 +410,6 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
/* Reset registered listeners */
|
|
||||||
bep.cleanup();
|
|
||||||
/* Disable core */
|
/* Disable core */
|
||||||
core.disableCore();
|
core.disableCore();
|
||||||
|
|
||||||
@ -550,18 +545,19 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerPlayerLoginListener() {
|
private void registerPlayerLoginListener() {
|
||||||
PlayerListener pl = new PlayerListener() {
|
Listener pl = new Listener() {
|
||||||
|
@EventHandler
|
||||||
public void onPlayerJoin(PlayerJoinEvent evt) {
|
public void onPlayerJoin(PlayerJoinEvent evt) {
|
||||||
DynmapPlayer dp = new BukkitPlayer(evt.getPlayer());
|
DynmapPlayer dp = new BukkitPlayer(evt.getPlayer());
|
||||||
core.listenerManager.processPlayerEvent(EventType.PLAYER_JOIN, dp);
|
core.listenerManager.processPlayerEvent(EventType.PLAYER_JOIN, dp);
|
||||||
}
|
}
|
||||||
|
@EventHandler
|
||||||
public void onPlayerQuit(PlayerQuitEvent evt) {
|
public void onPlayerQuit(PlayerQuitEvent evt) {
|
||||||
DynmapPlayer dp = new BukkitPlayer(evt.getPlayer());
|
DynmapPlayer dp = new BukkitPlayer(evt.getPlayer());
|
||||||
core.listenerManager.processPlayerEvent(EventType.PLAYER_QUIT, dp);
|
core.listenerManager.processPlayerEvent(EventType.PLAYER_QUIT, dp);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
bep.registerEvent(Type.PLAYER_JOIN, pl);
|
pm.registerEvents(pl, this);
|
||||||
bep.registerEvent(Type.PLAYER_QUIT, pl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean onplace;
|
private boolean onplace;
|
||||||
@ -580,8 +576,8 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
private boolean onexplosion;
|
private boolean onexplosion;
|
||||||
|
|
||||||
private void registerEvents() {
|
private void registerEvents() {
|
||||||
BlockListener blockTrigger = new BlockListener() {
|
Listener blockTrigger = new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockPlace(BlockPlaceEvent event) {
|
public void onBlockPlace(BlockPlaceEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -593,7 +589,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -605,7 +601,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onLeavesDecay(LeavesDecayEvent event) {
|
public void onLeavesDecay(LeavesDecayEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -617,7 +613,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockBurn(BlockBurnEvent event) {
|
public void onBlockBurn(BlockBurnEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -629,7 +625,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockForm(BlockFormEvent event) {
|
public void onBlockForm(BlockFormEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -641,7 +637,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockFade(BlockFadeEvent event) {
|
public void onBlockFade(BlockFadeEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -653,7 +649,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockSpread(BlockSpreadEvent event) {
|
public void onBlockSpread(BlockSpreadEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -665,7 +661,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockFromTo(BlockFromToEvent event) {
|
public void onBlockFromTo(BlockFromToEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -681,7 +677,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockfromto");
|
mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "blockfromto");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockPhysics(BlockPhysicsEvent event) {
|
public void onBlockPhysics(BlockPhysicsEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -693,7 +689,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
public void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -719,7 +715,8 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
mapManager.touch(wn, x, y, z, "pistonretract");
|
mapManager.touch(wn, x, y, z, "pistonretract");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Override
|
|
||||||
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
public void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
||||||
if(event.isCancelled())
|
if(event.isCancelled())
|
||||||
return;
|
return;
|
||||||
@ -749,40 +746,22 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
|
|
||||||
// To trigger rendering.
|
// To trigger rendering.
|
||||||
onplace = core.isTrigger("blockplaced");
|
onplace = core.isTrigger("blockplaced");
|
||||||
bep.registerEvent(Event.Type.BLOCK_PLACE, blockTrigger);
|
|
||||||
|
|
||||||
onbreak = core.isTrigger("blockbreak");
|
onbreak = core.isTrigger("blockbreak");
|
||||||
bep.registerEvent(Event.Type.BLOCK_BREAK, blockTrigger);
|
|
||||||
|
|
||||||
if(core.isTrigger("snowform")) Log.info("The 'snowform' trigger has been deprecated due to Bukkit changes - use 'blockformed'");
|
if(core.isTrigger("snowform")) Log.info("The 'snowform' trigger has been deprecated due to Bukkit changes - use 'blockformed'");
|
||||||
|
|
||||||
onleaves = core.isTrigger("leavesdecay");
|
onleaves = core.isTrigger("leavesdecay");
|
||||||
bep.registerEvent(Event.Type.LEAVES_DECAY, blockTrigger);
|
|
||||||
|
|
||||||
onburn = core.isTrigger("blockburn");
|
onburn = core.isTrigger("blockburn");
|
||||||
bep.registerEvent(Event.Type.BLOCK_BURN, blockTrigger);
|
|
||||||
|
|
||||||
onblockform = core.isTrigger("blockformed");
|
onblockform = core.isTrigger("blockformed");
|
||||||
bep.registerEvent(Event.Type.BLOCK_FORM, blockTrigger);
|
|
||||||
|
|
||||||
onblockfade = core.isTrigger("blockfaded");
|
onblockfade = core.isTrigger("blockfaded");
|
||||||
bep.registerEvent(Event.Type.BLOCK_FADE, blockTrigger);
|
|
||||||
|
|
||||||
onblockspread = core.isTrigger("blockspread");
|
onblockspread = core.isTrigger("blockspread");
|
||||||
bep.registerEvent(Event.Type.BLOCK_SPREAD, blockTrigger);
|
|
||||||
|
|
||||||
onblockfromto = core.isTrigger("blockfromto");
|
onblockfromto = core.isTrigger("blockfromto");
|
||||||
bep.registerEvent(Event.Type.BLOCK_FROMTO, blockTrigger);
|
|
||||||
|
|
||||||
onblockphysics = core.isTrigger("blockphysics");
|
onblockphysics = core.isTrigger("blockphysics");
|
||||||
bep.registerEvent(Event.Type.BLOCK_PHYSICS, blockTrigger);
|
|
||||||
|
|
||||||
onpiston = core.isTrigger("pistonmoved");
|
onpiston = core.isTrigger("pistonmoved");
|
||||||
bep.registerEvent(Event.Type.BLOCK_PISTON_EXTEND, blockTrigger);
|
|
||||||
bep.registerEvent(Event.Type.BLOCK_PISTON_RETRACT, blockTrigger);
|
pm.registerEvents(blockTrigger, this);
|
||||||
|
|
||||||
/* Register player event trigger handlers */
|
/* Register player event trigger handlers */
|
||||||
PlayerListener playerTrigger = new PlayerListener() {
|
Listener playerTrigger = new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
if(onplayerjoin) {
|
if(onplayerjoin) {
|
||||||
Location loc = event.getPlayer().getLocation();
|
Location loc = event.getPlayer().getLocation();
|
||||||
@ -790,29 +769,30 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
core.listenerManager.processPlayerEvent(EventType.PLAYER_JOIN, new BukkitPlayer(event.getPlayer()));
|
core.listenerManager.processPlayerEvent(EventType.PLAYER_JOIN, new BukkitPlayer(event.getPlayer()));
|
||||||
}
|
}
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||||
core.listenerManager.processPlayerEvent(EventType.PLAYER_QUIT, new BukkitPlayer(event.getPlayer()));
|
core.listenerManager.processPlayerEvent(EventType.PLAYER_QUIT, new BukkitPlayer(event.getPlayer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlayerMove(PlayerMoveEvent event) {
|
|
||||||
Location loc = event.getPlayer().getLocation();
|
|
||||||
mapManager.touch(loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "playermove");
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
onplayerjoin = core.isTrigger("playerjoin");
|
onplayerjoin = core.isTrigger("playerjoin");
|
||||||
onplayermove = core.isTrigger("playermove");
|
onplayermove = core.isTrigger("playermove");
|
||||||
bep.registerEvent(Event.Type.PLAYER_JOIN, playerTrigger);
|
pm.registerEvents(playerTrigger, this);
|
||||||
bep.registerEvent(Event.Type.PLAYER_QUIT, playerTrigger);
|
|
||||||
if(onplayermove) {
|
if(onplayermove) {
|
||||||
bep.registerEvent(Event.Type.PLAYER_MOVE, playerTrigger);
|
Listener playermove = new Listener() {
|
||||||
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
|
public void onPlayerMove(PlayerMoveEvent event) {
|
||||||
|
Location loc = event.getPlayer().getLocation();
|
||||||
|
mapManager.touch(loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), "playermove");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
pm.registerEvents(playermove, this);
|
||||||
Log.warning("playermove trigger enabled - this trigger can cause excessive tile updating: use with caution");
|
Log.warning("playermove trigger enabled - this trigger can cause excessive tile updating: use with caution");
|
||||||
}
|
}
|
||||||
/* Register entity event triggers */
|
/* Register entity event triggers */
|
||||||
EntityListener entityTrigger = new EntityListener() {
|
Listener entityTrigger = new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onEntityExplode(EntityExplodeEvent event) {
|
public void onEntityExplode(EntityExplodeEvent event) {
|
||||||
Location loc = event.getLocation();
|
Location loc = event.getLocation();
|
||||||
String wname = loc.getWorld().getName();
|
String wname = loc.getWorld().getName();
|
||||||
@ -841,27 +821,18 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
onexplosion = core.isTrigger("explosion");
|
onexplosion = core.isTrigger("explosion");
|
||||||
bep.registerEvent(Event.Type.ENTITY_EXPLODE, entityTrigger);
|
pm.registerEvents(entityTrigger, this);
|
||||||
|
|
||||||
|
|
||||||
/* Register world event triggers */
|
/* Register world event triggers */
|
||||||
WorldListener worldTrigger = new WorldListener() {
|
Listener worldTrigger = new Listener() {
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onChunkPopulate(ChunkPopulateEvent event) {
|
|
||||||
Chunk c = event.getChunk();
|
|
||||||
/* Touch extreme corners */
|
|
||||||
int x = c.getX() << 4;
|
|
||||||
int z = c.getZ() << 4;
|
|
||||||
mapManager.touchVolume(event.getWorld().getName(), x, 0, z, x+15, 128, z+16, "chunkpopulate");
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onWorldLoad(WorldLoadEvent event) {
|
public void onWorldLoad(WorldLoadEvent event) {
|
||||||
core.updateConfigHashcode();
|
core.updateConfigHashcode();
|
||||||
BukkitWorld w = new BukkitWorld(event.getWorld());
|
BukkitWorld w = new BukkitWorld(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);
|
||||||
}
|
}
|
||||||
@Override
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
public void onWorldUnload(WorldUnloadEvent event) {
|
public void onWorldUnload(WorldUnloadEvent event) {
|
||||||
core.updateConfigHashcode();
|
core.updateConfigHashcode();
|
||||||
DynmapWorld w = core.getWorld(event.getWorld().getName());
|
DynmapWorld w = core.getWorld(event.getWorld().getName());
|
||||||
@ -869,15 +840,23 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI {
|
|||||||
core.listenerManager.processWorldEvent(EventType.WORLD_UNLOAD, w);
|
core.listenerManager.processWorldEvent(EventType.WORLD_UNLOAD, w);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// To link configuration to real loaded worlds.
|
||||||
|
pm.registerEvents(worldTrigger, this);
|
||||||
|
|
||||||
ongeneratechunk = core.isTrigger("chunkgenerated");
|
ongeneratechunk = core.isTrigger("chunkgenerated");
|
||||||
if(ongeneratechunk) {
|
if(ongeneratechunk) {
|
||||||
bep.registerEvent(Event.Type.CHUNK_POPULATED, worldTrigger);
|
Listener chunkTrigger = new Listener() {
|
||||||
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
|
public void onChunkPopulate(ChunkPopulateEvent event) {
|
||||||
|
Chunk c = event.getChunk();
|
||||||
|
/* Touch extreme corners */
|
||||||
|
int x = c.getX() << 4;
|
||||||
|
int z = c.getZ() << 4;
|
||||||
|
mapManager.touchVolume(event.getWorld().getName(), x, 0, z, x+15, 128, z+16, "chunkpopulate");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
pm.registerEvents(chunkTrigger, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// To link configuration to real loaded worlds.
|
|
||||||
bep.registerEvent(Event.Type.WORLD_LOAD, worldTrigger);
|
|
||||||
bep.registerEvent(Event.Type.WORLD_UNLOAD, worldTrigger);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean detectSpout() {
|
private boolean detectSpout() {
|
||||||
|
@ -6,6 +6,8 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.bukkit.event.CustomEventListener;
|
import org.bukkit.event.CustomEventListener;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.server.PluginEnableEvent;
|
import org.bukkit.event.server.PluginEnableEvent;
|
||||||
import org.bukkit.event.server.ServerListener;
|
import org.bukkit.event.server.ServerListener;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
@ -28,8 +30,8 @@ public class HeroChatHandler {
|
|||||||
private DynmapCore core;
|
private DynmapCore core;
|
||||||
private HeroChatChannel hcwebinputchan;
|
private HeroChatChannel hcwebinputchan;
|
||||||
|
|
||||||
private class OurPluginListener extends ServerListener {
|
private class OurPluginListener implements Listener {
|
||||||
@Override
|
@EventHandler
|
||||||
public void onPluginEnable(PluginEnableEvent event) {
|
public void onPluginEnable(PluginEnableEvent event) {
|
||||||
Plugin plugin = event.getPlugin();
|
Plugin plugin = event.getPlugin();
|
||||||
String name = plugin.getDescription().getName();
|
String name = plugin.getDescription().getName();
|
||||||
@ -209,7 +211,7 @@ public class HeroChatHandler {
|
|||||||
/**
|
/**
|
||||||
* Handle custom events
|
* Handle custom events
|
||||||
*/
|
*/
|
||||||
@Override
|
@EventHandler
|
||||||
public void onCustomEvent(Event event) {
|
public void onCustomEvent(Event event) {
|
||||||
if (HeroChatChannelEvent.isInstance(event)) {
|
if (HeroChatChannelEvent.isInstance(event)) {
|
||||||
HeroChatChannelEvent ce = new HeroChatChannelEvent(event);
|
HeroChatChannelEvent ce = new HeroChatChannelEvent(event);
|
||||||
@ -261,7 +263,7 @@ public class HeroChatHandler {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Set up to hear when HeroChat is enabled */
|
/* Set up to hear when HeroChat is enabled */
|
||||||
DynmapPlugin.plugin.bep.registerEvent(Event.Type.PLUGIN_ENABLE, new OurPluginListener());
|
DynmapPlugin.plugin.pm.registerEvents(new OurPluginListener(), DynmapPlugin.plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,7 +281,8 @@ public class HeroChatHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Register event handler */
|
/* Register event handler */
|
||||||
DynmapPlugin.plugin.bep.registerEvent(Event.Type.CUSTOM_EVENT, new OurEventListener());
|
DynmapPlugin.plugin.pm.registerEvent(Event.Type.CUSTOM_EVENT, new OurEventListener(), Event.Priority.Monitor, DynmapPlugin.plugin);
|
||||||
|
|
||||||
Log.verboseinfo("HeroChat integration active");
|
Log.verboseinfo("HeroChat integration active");
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user