From 71da87a5ae960c9df9bb1627513a539b527b07b0 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 17 Jun 2015 21:36:47 -0500 Subject: [PATCH] Some cleanup --- .../clans/worldevent/WorldEventListener.java | 8 --- .../clans/worldevent/WorldEventManager.java | 39 ++++++++++----- .../worldevent/creature/EventCreature.java | 1 - .../clans/worldevent/event/WorldEvent.java | 49 +++++++------------ .../event/boss/slime/SlimeBoss.java | 12 ----- 5 files changed, 45 insertions(+), 64 deletions(-) delete mode 100644 Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventListener.java diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventListener.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventListener.java deleted file mode 100644 index a8c453e83..000000000 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package mineplex.game.clans.clans.worldevent; - -import mineplex.game.clans.clans.worldevent.event.WorldEvent; - -public interface WorldEventListener -{ - public void onComplete(WorldEvent event); -} diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java index 54dcfd1be..7b280fd2c 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/WorldEventManager.java @@ -3,6 +3,8 @@ package mineplex.game.clans.clans.worldevent; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; import java.util.Set; import org.bukkit.Bukkit; @@ -20,16 +22,18 @@ import mineplex.core.MiniPlugin; import mineplex.core.common.util.C; import mineplex.core.scoreboard.ScoreboardManager; import mineplex.core.scoreboard.elements.ScoreboardElement; +import mineplex.core.updater.UpdateType; +import mineplex.core.updater.event.UpdateEvent; import mineplex.game.clans.clans.ClansManager; import mineplex.game.clans.clans.worldevent.command.WorldEventCommand; import mineplex.game.clans.clans.worldevent.event.EventState; import mineplex.game.clans.clans.worldevent.event.WorldEvent; import mineplex.minecraft.game.core.damage.DamageManager; -public class WorldEventManager extends MiniPlugin implements WorldEventListener, ScoreboardElement +public class WorldEventManager extends MiniPlugin implements ScoreboardElement { private final WorldEventFactory _factory; - private final Set _events; + private final List _events; private ClansManager _clansManager; private DamageManager _damageManager; @@ -41,7 +45,7 @@ public class WorldEventManager extends MiniPlugin implements WorldEventListener, _clansManager = clansManager; _damageManager = damageManager; _factory = new ConcreteWorldEventFactory(this); - _events = new HashSet(); + _events = new LinkedList(); } @Override @@ -53,12 +57,30 @@ public class WorldEventManager extends MiniPlugin implements WorldEventListener, } } + @EventHandler + public void removeEvent(UpdateEvent event) + { + if (event.getType() != UpdateType.SEC) + return; + + Iterator iterator = _events.iterator(); + while (iterator.hasNext()) + { + WorldEvent worldEvent = iterator.next(); + if (worldEvent.getState() == EventState.END) + { + worldEvent.cleanup(); + HandlerList.unregisterAll(worldEvent); + iterator.remove(); + } + } + } + private void initializeEvent(WorldEvent event) { assert(event != null); event.start(); - event.addListener(this); getPlugin().getServer().getPluginManager().registerEvents(event, getPlugin()); _events.add(event); } @@ -92,15 +114,6 @@ public class WorldEventManager extends MiniPlugin implements WorldEventListener, return _damageManager; } - @Override - public void onComplete(WorldEvent event) - { - // TODO - Bukkit.broadcastMessage("World Event Manager On Complete"); - HandlerList.unregisterAll(event); - _events.remove(event); - } - @Override public void addCommands() { diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/creature/EventCreature.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/creature/EventCreature.java index 951a2a9fa..5bf5de4b1 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/creature/EventCreature.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/creature/EventCreature.java @@ -51,7 +51,6 @@ public abstract class EventCreature implements Listener protected final void spawnEntity() { - System.out.println("spawn entity"); Location spawnLocation = _entity == null ? _spawnLocation : _entity.getLocation(); T entity = _spawnLocation.getWorld().spawn(spawnLocation, getEntityClass()); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/WorldEvent.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/WorldEvent.java index e162da55e..559fb20ad 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/WorldEvent.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/WorldEvent.java @@ -12,7 +12,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; -import mineplex.core.common.schematic.Schematic; import mineplex.core.common.schematic.SchematicRunnable; import mineplex.core.common.util.Callback; import mineplex.core.common.util.F; @@ -21,7 +20,6 @@ import mineplex.core.common.data.BlockData; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.game.clans.clans.worldevent.EventMap; -import mineplex.game.clans.clans.worldevent.WorldEventListener; import mineplex.game.clans.clans.worldevent.WorldEventManager; import mineplex.game.clans.clans.worldevent.creature.EventCreature; import mineplex.minecraft.game.core.damage.DamageManager; @@ -31,19 +29,15 @@ public abstract class WorldEvent implements Listener private WorldEventManager _eventManager; private DamageManager _damageManager; - private List _listeners; - private String _name; private EventState _state; private Location _cornerLocation; private EventMap _map; - private Random _random; private int _ticks; // Creatures private List _creatures; - // Block Restore private HashMap _blocks; @@ -51,13 +45,16 @@ public abstract class WorldEvent implements Listener { _eventManager = eventManager; _damageManager = damageManager; + _name = name; + _state = EventState.PREPARE; _cornerLocation = cornerLocation; - _listeners = new ArrayList(); + _map = null; _random = new Random(); + _ticks = 0; + _creatures = new ArrayList(); _blocks = new HashMap(); - _state = EventState.PREPARE; } public final void start() @@ -71,6 +68,12 @@ public abstract class WorldEvent implements Listener { clearCreatures(); restoreBlocks(); + customCleanup(); + } + + public void customCleanup() + { + } public final void cancel() @@ -80,9 +83,15 @@ public abstract class WorldEvent implements Listener customCancel(); } - protected abstract void customCancel(); + protected void customCancel() + { - protected abstract void customTick(); + } + + protected void customTick() + { + + } protected void setState(EventState state) { @@ -94,26 +103,6 @@ public abstract class WorldEvent implements Listener return _state; } - public void addListener(WorldEventListener listener) - { - _listeners.add(listener); - } - - public void removeListener(WorldEventListener listener) - { - _listeners.remove(listener); - } - - protected List getListeners() - { - return _listeners; - } - - public void clearListeners() - { - _listeners.clear(); - } - public int getTicks() { return _ticks; diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/boss/slime/SlimeBoss.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/boss/slime/SlimeBoss.java index 0a54a30ca..3d839b14b 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/boss/slime/SlimeBoss.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/worldevent/event/boss/slime/SlimeBoss.java @@ -59,18 +59,6 @@ public class SlimeBoss extends WorldEvent announceStart(); } - @Override - protected void customCancel() - { - Bukkit.broadcastMessage("Custom Cancel"); - } - - @Override - protected void customTick() - { - - } - /** * Check if this slime boss has been defeated */