From 729ddcdd1295d6bf00d22469c2eec1c5a1773e99 Mon Sep 17 00:00:00 2001 From: Garbage Mule Date: Tue, 14 Jun 2011 16:38:25 +0200 Subject: [PATCH] v0.90.2 - Fixed a reward bug and added spawn-monsters=false support --- MobArena.jar | Bin 41719 -> 42929 bytes bin/plugin.yml | 2 +- .../garbagemule/MobArena/ArenaManager.java | 46 +++++++++++------- ...mageListener.java => MADeathListener.java} | 4 +- .../MobArena/MAMonsterListener.java | 12 ++++- src/com/garbagemule/MobArena/MAUtils.java | 30 ++++++++++++ src/com/garbagemule/MobArena/MobArena.java | 4 +- 7 files changed, 74 insertions(+), 24 deletions(-) rename src/com/garbagemule/MobArena/{MADamageListener.java => MADeathListener.java} (93%) diff --git a/MobArena.jar b/MobArena.jar index 1fe1b8259f8045be2d7bbecc8363b212bb2332f5..03f5a8715703007ed32e91c5ce90729d46b6f403 100644 GIT binary patch delta 25503 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 delta 24414 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%0Ayo&|^Yr(YES>!@kZzao)C^1z<9qvcq}D_&b^_ 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 diff --git a/bin/plugin.yml b/bin/plugin.yml index d0edc4e..6273afd 100644 --- a/bin/plugin.yml +++ b/bin/plugin.yml @@ -1,6 +1,6 @@ name: MobArena main: com.garbagemule.MobArena.MobArena -version: 0.90.1 +version: 0.90.2 commands: ma: description: Base command for MobArena diff --git a/src/com/garbagemule/MobArena/ArenaManager.java b/src/com/garbagemule/MobArena/ArenaManager.java index 9833d45..970f230 100644 --- a/src/com/garbagemule/MobArena/ArenaManager.java +++ b/src/com/garbagemule/MobArena/ArenaManager.java @@ -36,7 +36,7 @@ public class ArenaManager protected static boolean isProtected = true; protected static int spawnTaskId = -1; protected static int waveDelay, waveInterval, specialModulo, repairDelay; - protected static boolean checkUpdates, lightning; + protected static boolean checkUpdates, lightning, spawnMonsters; // Location variables for the arena region. protected static Location p1 = null; @@ -88,12 +88,13 @@ public class ArenaManager if (instance != null) { // General variables. - config = MAUtils.getConfig(); - plugin = instance; - server = plugin.getServer(); - world = MAUtils.getWorld(); - lightning = MAUtils.getBoolean("settings.lightning", true); - repairDelay = MAUtils.getInt("settings.repairdelay", 5); + config = MAUtils.getConfig(); + plugin = instance; + server = plugin.getServer(); + world = MAUtils.getWorld(); + lightning = MAUtils.getBoolean("settings.lightning", true); + repairDelay = MAUtils.getInt("settings.repairdelay", 5); + spawnMonsters = MAUtils.spawnBypass(false); // Class list and maps. classes = MAUtils.getClasses(); @@ -159,6 +160,7 @@ public class ArenaManager { isRunning = true; readySet.clear(); + MAUtils.spawnBypass(true); // Clear the floor for good measure. clearEntities(); @@ -184,13 +186,13 @@ public class ArenaManager { isRunning = false; server.getScheduler().cancelTask(spawnTaskId); + MAUtils.spawnBypass(true); killMonsters(); clearBlocks(); clearEntities(); giveRewards(); - // TO-DO: Fix this, maybe add a Set dead tellAll("Arena finished."); } @@ -502,16 +504,24 @@ public class ArenaManager */ public static void giveRewards() { - for (Player p : rewardMap.keySet()) - { - String r = rewardMap.get(p); - if (r.isEmpty()) continue; - - tellPlayer(p, "Here are all of your rewards!"); - MAUtils.giveItems(true, p, r); - } - - rewardMap.clear(); + /* This has to be delayed for players to actually receive + * their rewards after they die. Not sure why. */ + server.getScheduler().scheduleSyncDelayedTask(plugin, + new Runnable() + { + public void run() + { + for (Player p : rewardMap.keySet()) + { + String r = rewardMap.get(p); + if (r.isEmpty()) continue; + + tellPlayer(p, "Here are all of your rewards!"); + MAUtils.giveItems(true, p, r); + } + + rewardMap.clear(); + }}, 20); } diff --git a/src/com/garbagemule/MobArena/MADamageListener.java b/src/com/garbagemule/MobArena/MADeathListener.java similarity index 93% rename from src/com/garbagemule/MobArena/MADamageListener.java rename to src/com/garbagemule/MobArena/MADeathListener.java index dce0450..9f6b94c 100644 --- a/src/com/garbagemule/MobArena/MADamageListener.java +++ b/src/com/garbagemule/MobArena/MADeathListener.java @@ -14,9 +14,9 @@ import org.bukkit.event.entity.EntityDeathEvent; * By the end of the arena session, the rewards are given. */ // TO-DO: Perhaps implement TeamFluff's respawn-packet-code. -public class MADamageListener extends EntityListener +public class MADeathListener extends EntityListener { - public MADamageListener(MobArena instance) + public MADeathListener(MobArena instance) { } diff --git a/src/com/garbagemule/MobArena/MAMonsterListener.java b/src/com/garbagemule/MobArena/MAMonsterListener.java index 78a1976..8d5707b 100644 --- a/src/com/garbagemule/MobArena/MAMonsterListener.java +++ b/src/com/garbagemule/MobArena/MAMonsterListener.java @@ -31,13 +31,23 @@ public class MAMonsterListener extends EntityListener * it's running. */ public void onCreatureSpawn(CreatureSpawnEvent event) - { + { + // If monster spawning is disabled, only spawn inside the region. + if (!ArenaManager.spawnMonsters) + { + if (ArenaManager.isRunning && MAUtils.inRegion(event.getLocation())) + return; + event.setCancelled(true); + } + + // Otherwise, ignore spawns inside the region... if (!MAUtils.inRegion(event.getLocation())) return; if (!(event.getEntity() instanceof LivingEntity)) return; + // .. And cancel those inside the region if the arena isn't running. if (!ArenaManager.isRunning) event.setCancelled(true); } diff --git a/src/com/garbagemule/MobArena/MAUtils.java b/src/com/garbagemule/MobArena/MAUtils.java index d64512d..47cfc2a 100644 --- a/src/com/garbagemule/MobArena/MAUtils.java +++ b/src/com/garbagemule/MobArena/MAUtils.java @@ -14,6 +14,7 @@ import java.util.HashMap; import java.util.Random; import java.util.Iterator; import org.bukkit.block.Sign; +import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.World; import org.bukkit.Material; import org.bukkit.Location; @@ -223,6 +224,35 @@ public class MAUtils return ArenaManager.server.getWorld(world); } + /** + * Handles all spawn-monster bypassing. + * If toggle is true, swap the allowMonsters field if possible. Otherwise, just + * return the current value. + */ + public static boolean spawnBypass(boolean toggle) + { + // Cast the world to an nmsWorld. + net.minecraft.server.World nmsWorld = ((CraftWorld) ArenaManager.world).getHandle(); + + // If not toggling, just return the current variable. + if (!toggle) + return nmsWorld.allowMonsters; + + // If arena is running, allow monsters, otherwise don't. + if (ArenaManager.isRunning) + { + nmsWorld.allowMonsters = true; + nmsWorld.spawnMonsters = 1; + } + else + { + nmsWorld.allowMonsters = false; + nmsWorld.spawnMonsters = 0; + } + + return true; + } + /** * Grabs the list of classes from the config-file. If no list is * found, generate a set of default classes. diff --git a/src/com/garbagemule/MobArena/MobArena.java b/src/com/garbagemule/MobArena/MobArena.java index 501120b..0f11d5d 100644 --- a/src/com/garbagemule/MobArena/MobArena.java +++ b/src/com/garbagemule/MobArena/MobArena.java @@ -49,7 +49,7 @@ public class MobArena extends JavaPlugin PlayerListener teleportListener = new MATeleportListener(this); PlayerListener discListener = new MADisconnectListener(this); BlockListener blockListener = new MABlockListener(this); - EntityListener damageListener = new MADamageListener(this); + EntityListener deathListener = new MADeathListener(this); EntityListener monsterListener = new MAMonsterListener(this); // TO-DO: PlayerListener to check for kills/deaths. @@ -64,7 +64,7 @@ public class MobArena extends JavaPlugin pm.registerEvent(Event.Type.PLAYER_JOIN, discListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Normal, this); pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Normal, this); - pm.registerEvent(Event.Type.ENTITY_DEATH, damageListener, Priority.Normal, this); + pm.registerEvent(Event.Type.ENTITY_DEATH, deathListener, Priority.Normal, this); pm.registerEvent(Event.Type.ENTITY_EXPLODE, monsterListener, Priority.Normal, this); pm.registerEvent(Event.Type.ENTITY_COMBUST, monsterListener, Priority.Normal, this); pm.registerEvent(Event.Type.ENTITY_TARGET, monsterListener, Priority.Normal, this);