From 9a1b90fe53756234c6d1ad1219e6f7ac7841785e Mon Sep 17 00:00:00 2001 From: Garbage Mule Date: Wed, 15 Jun 2011 02:35:22 +0200 Subject: [PATCH] v0.91 - Added API and fixed a few bugs. --- MobArena.jar | Bin 42950 -> 45089 bytes bin/plugin.yml | 2 +- .../garbagemule/MobArena/ArenaManager.java | 26 +++++++++++++-- .../garbagemule/MobArena/MASpawnThread.java | 7 +++- src/com/garbagemule/MobArena/MAUtils.java | 5 ++- src/com/garbagemule/MobArena/MobArena.java | 9 +++++ .../garbagemule/MobArena/MobArenaHandler.java | 31 ++++++++++++++++++ .../MobArena/MobArenaListener.java | 22 +++++++++++++ 8 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 src/com/garbagemule/MobArena/MobArenaHandler.java create mode 100644 src/com/garbagemule/MobArena/MobArenaListener.java diff --git a/MobArena.jar b/MobArena.jar index b40653c268b0e4c01b2838042bfbbd57e505acc1..771f73d86d8c7b2186ecff84bf18e05b4c2aa760 100644 GIT binary patch delta 27819 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 delta 25711 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 F{{U8OWH|r; diff --git a/bin/plugin.yml b/bin/plugin.yml index 2f3713e..0699f68 100644 --- a/bin/plugin.yml +++ b/bin/plugin.yml @@ -1,6 +1,6 @@ name: MobArena main: com.garbagemule.MobArena.MobArena -version: 0.90.2 +version: 0.91 softdepend: [MultiVerse] commands: ma: diff --git a/src/com/garbagemule/MobArena/ArenaManager.java b/src/com/garbagemule/MobArena/ArenaManager.java index 970f230..9e1242c 100644 --- a/src/com/garbagemule/MobArena/ArenaManager.java +++ b/src/com/garbagemule/MobArena/ArenaManager.java @@ -34,9 +34,12 @@ public class ArenaManager protected static boolean isSetup = false; protected static boolean isEnabled = true; protected static boolean isProtected = true; + protected static int wave = 0; protected static int spawnTaskId = -1; protected static int waveDelay, waveInterval, specialModulo, repairDelay; protected static boolean checkUpdates, lightning, spawnMonsters; + protected static int spawnMonstersInt; + protected static MASpawnThread spawnThread = null; // Location variables for the arena region. protected static Location p1 = null; @@ -71,6 +74,9 @@ public class ArenaManager protected static Set monsterSet = new HashSet(); protected static Set blockSet = new HashSet(); + // Hook listeners + protected static Set listeners = new HashSet(); + /* ///////////////////////////////////////////////////////////////////// // @@ -171,10 +177,13 @@ public class ArenaManager rewardMap.put(p,""); } - MASpawnThread thread = new MASpawnThread(); - spawnTaskId = server.getScheduler().scheduleSyncRepeatingTask(plugin,thread,(long)waveDelay,(long)waveInterval); + spawnThread = new MASpawnThread(); + spawnTaskId = server.getScheduler().scheduleSyncRepeatingTask(plugin,spawnThread,(long)waveDelay,(long)waveInterval); tellAll("Let the slaughter begin!"); + + for (MobArenaListener m : listeners) + m.onArenaStart(); } /** @@ -185,6 +194,7 @@ public class ArenaManager public static void endArena() { isRunning = false; + wave = 0; server.getScheduler().cancelTask(spawnTaskId); MAUtils.spawnBypass(true); @@ -194,6 +204,9 @@ public class ArenaManager giveRewards(); tellAll("Arena finished."); + + for (MobArenaListener m : listeners) + m.onArenaEnd(); } /** @@ -239,6 +252,9 @@ public class ArenaManager p.teleport(lobbyLoc); tellPlayer(p, "You joined the arena. Have fun!"); + + for (MobArenaListener m : listeners) + m.onPlayerJoin(p); } /** @@ -270,6 +286,9 @@ public class ArenaManager startArena(); tellPlayer(p, "You left the arena. Thanks for playing!"); + + for (MobArenaListener m : listeners) + m.onPlayerLeave(p); } /** @@ -302,6 +321,9 @@ public class ArenaManager if (isRunning && playerSet.isEmpty()) endArena(); + + for (MobArenaListener m : listeners) + m.onPlayerDeath(p); } /** diff --git a/src/com/garbagemule/MobArena/MASpawnThread.java b/src/com/garbagemule/MobArena/MASpawnThread.java index 2a4e01e..d0d25fb 100644 --- a/src/com/garbagemule/MobArena/MASpawnThread.java +++ b/src/com/garbagemule/MobArena/MASpawnThread.java @@ -92,14 +92,19 @@ public class MASpawnThread implements Runnable if (wave % modulo == 0) { ArenaManager.tellAll("Get ready for wave #" + wave + "! [SPECIAL]"); + for (MobArenaListener m : ArenaManager.listeners) + m.onSpecialWave(wave, wave/modulo); specialWave(); } else { ArenaManager.tellAll("Get ready for wave #" + wave + "!"); + for (MobArenaListener m : ArenaManager.listeners) + m.onDefaultWave(wave); defaultWave(); } - + + ArenaManager.wave = wave; wave++; } diff --git a/src/com/garbagemule/MobArena/MAUtils.java b/src/com/garbagemule/MobArena/MAUtils.java index 47cfc2a..b3b795f 100644 --- a/src/com/garbagemule/MobArena/MAUtils.java +++ b/src/com/garbagemule/MobArena/MAUtils.java @@ -236,7 +236,10 @@ public class MAUtils // If not toggling, just return the current variable. if (!toggle) + { + ArenaManager.spawnMonstersInt = nmsWorld.spawnMonsters; return nmsWorld.allowMonsters; + } // If arena is running, allow monsters, otherwise don't. if (ArenaManager.isRunning) @@ -247,7 +250,7 @@ public class MAUtils else { nmsWorld.allowMonsters = false; - nmsWorld.spawnMonsters = 0; + nmsWorld.spawnMonsters = ArenaManager.spawnMonstersInt; } return true; diff --git a/src/com/garbagemule/MobArena/MobArena.java b/src/com/garbagemule/MobArena/MobArena.java index 0f11d5d..7a52fba 100644 --- a/src/com/garbagemule/MobArena/MobArena.java +++ b/src/com/garbagemule/MobArena/MobArena.java @@ -1,6 +1,8 @@ package com.garbagemule.MobArena; import java.util.List; + +import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.Event.Priority; import org.bukkit.event.block.BlockListener; @@ -41,6 +43,8 @@ public class MobArena extends JavaPlugin getCommand("ma").setExecutor(new MACommands()); getCommand("marena").setExecutor(new MACommands()); getCommand("mobarena").setExecutor(new MACommands()); + + // Create event listeners. PluginManager pm = getServer().getPluginManager(); @@ -79,4 +83,9 @@ public class MobArena extends JavaPlugin ArenaManager.forceEnd(null); } + + public boolean isPlaying(Player p) + { + return ArenaManager.playerSet.contains(p); + } } \ No newline at end of file diff --git a/src/com/garbagemule/MobArena/MobArenaHandler.java b/src/com/garbagemule/MobArena/MobArenaHandler.java new file mode 100644 index 0000000..9cd0701 --- /dev/null +++ b/src/com/garbagemule/MobArena/MobArenaHandler.java @@ -0,0 +1,31 @@ +package com.garbagemule.MobArena; + +import java.util.List; +import java.util.LinkedList; + +import org.bukkit.Location; +import org.bukkit.entity.Player; + +public class MobArenaHandler +{ + public MobArenaHandler() + { + } + + // Check if there is an active arena session running. + public boolean isRunning() { return ArenaManager.isRunning; } + + // Check if the specified player is in the arena/lobby. + public boolean isPlaying(Player p) { return ArenaManager.playerSet.contains(p); } + + // Get a list of all players currently in the arena. + public List getPlayers() { return new LinkedList(ArenaManager.playerSet); } + + // Get the warp locations. + public Location getArenaLocation() { return ArenaManager.arenaLoc; } + public Location getLobbyLocation() { return ArenaManager.lobbyLoc; } + public Location getSpectatorLocation() { return ArenaManager.spectatorLoc; } + + // Get the current wave number. + public int getWave() { return ArenaManager.wave; } +} diff --git a/src/com/garbagemule/MobArena/MobArenaListener.java b/src/com/garbagemule/MobArena/MobArenaListener.java new file mode 100644 index 0000000..a71e8bf --- /dev/null +++ b/src/com/garbagemule/MobArena/MobArenaListener.java @@ -0,0 +1,22 @@ +package com.garbagemule.MobArena; + +import org.bukkit.entity.Player; + +public class MobArenaListener +{ + protected MobArena plugin; + + public MobArenaListener() + { + plugin = ArenaManager.plugin; + ArenaManager.listeners.add(this); + } + + public void onArenaStart() {} + public void onArenaEnd() {} + public void onDefaultWave(int waveNumber) {} + public void onSpecialWave(int waveNumber, int specialwaveNumber) {} + public void onPlayerJoin(Player p) {} + public void onPlayerLeave(Player p) {} + public void onPlayerDeath(Player p) {} +}