diff --git a/MobArena.jar b/MobArena.jar index 6ceb79d..c349432 100644 Binary files a/MobArena.jar and b/MobArena.jar differ diff --git a/resources/plugin.yml b/resources/plugin.yml index 4482303..df20054 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -1,7 +1,7 @@ name: MobArena author: garbagemule main: com.garbagemule.MobArena.MobArena -version: 0.94.4.63 +version: 0.94.4.64 softdepend: [Spout,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells,Vault] commands: ma: diff --git a/src/com/garbagemule/MobArena/ArenaListener.java b/src/com/garbagemule/MobArena/ArenaListener.java index bd03fcd..66857c6 100644 --- a/src/com/garbagemule/MobArena/ArenaListener.java +++ b/src/com/garbagemule/MobArena/ArenaListener.java @@ -388,9 +388,15 @@ public class ArenaListener } } } + + MABoss boss = monsters.removeBoss(event.getEntity()); + if (boss != null) { + boss.setDead(true); + } - if (!monsterExp) + if (!monsterExp) { event.setDroppedExp(0); + } event.getDrops().clear(); diff --git a/src/com/garbagemule/MobArena/waves/MABoss.java b/src/com/garbagemule/MobArena/waves/MABoss.java index b38c8d9..1d6e087 100644 --- a/src/com/garbagemule/MobArena/waves/MABoss.java +++ b/src/com/garbagemule/MobArena/waves/MABoss.java @@ -94,4 +94,14 @@ public class MABoss public boolean isDead() { return dead; } + + /** + * Set the death status of a boss. + * This is used by the ArenaListener to force kill bosses that die due to + * unhandled damage events (Bukkit issues). + * @param dead death status + */ + public void setDead(boolean dead) { + this.dead = dead; + } } diff --git a/src/com/garbagemule/MobArena/waves/WaveManager.java b/src/com/garbagemule/MobArena/waves/WaveManager.java index bf2a640..8a9e7bf 100644 --- a/src/com/garbagemule/MobArena/waves/WaveManager.java +++ b/src/com/garbagemule/MobArena/waves/WaveManager.java @@ -42,6 +42,7 @@ public class WaveManager } public void reset() { + reloadWaves(); wave = 0; singleWavesInstance = new TreeSet(singleWaves); }