diff --git a/MobArena.jar b/MobArena.jar index 1df4a1a..d16e805 100644 Binary files a/MobArena.jar and b/MobArena.jar differ diff --git a/resources/plugin.yml b/resources/plugin.yml index 87de945..606f03d 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.58 +version: 0.94.4.59 softdepend: [Spout,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells,Vault] commands: ma: diff --git a/resources/res/settings.yml b/resources/res/settings.yml index a93c5f7..9baf598 100644 --- a/resources/res/settings.yml +++ b/resources/res/settings.yml @@ -30,4 +30,5 @@ keep-exp: true food-regen: false lock-food-level: true spout-class-select: false -player-time-in-arena: world \ No newline at end of file +player-time-in-arena: world +auto-ignite-tnt: false diff --git a/src/com/garbagemule/MobArena/ArenaListener.java b/src/com/garbagemule/MobArena/ArenaListener.java index 85fcb19..cbe35c3 100644 --- a/src/com/garbagemule/MobArena/ArenaListener.java +++ b/src/com/garbagemule/MobArena/ArenaListener.java @@ -18,6 +18,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; import org.bukkit.entity.Slime; +import org.bukkit.entity.TNTPrimed; import org.bukkit.entity.ThrownPotion; import org.bukkit.entity.Wolf; import org.bukkit.event.Event.Result; @@ -94,7 +95,8 @@ public class ArenaListener lockFoodLevel; private boolean allowTeleport, canShare, - allowMonsters; + allowMonsters, + autoIgniteTNT; private Set banned; @@ -111,16 +113,17 @@ public class ArenaListener * Uglier code */ ConfigSection s = arena.getSettings(); - this.softRestore = s.getBoolean("soft-restore", false); - this.softRestoreDrops = s.getBoolean("soft-restore-drops", false); - this.protect = s.getBoolean("protect", true); - this.monsterExp = s.getBoolean("monster-exp", false); - this.monsterInfight = s.getBoolean("monster-infight", false); - this.pvpEnabled = s.getBoolean("pvp-enabled", false); - this.foodRegen = s.getBoolean("food-regen", false); - this.lockFoodLevel = s.getBoolean("lock-food-level", true); - this.allowTeleport = s.getBoolean("allow-teleporting", false); - this.canShare = s.getBoolean("share-items-in-arena", true); + this.softRestore = s.getBoolean("soft-restore", false); + this.softRestoreDrops = s.getBoolean("soft-restore-drops", false); + this.protect = s.getBoolean("protect", true); + this.monsterExp = s.getBoolean("monster-exp", false); + this.monsterInfight = s.getBoolean("monster-infight", false); + this.pvpEnabled = s.getBoolean("pvp-enabled", false); + this.foodRegen = s.getBoolean("food-regen", false); + this.lockFoodLevel = s.getBoolean("lock-food-level", true); + this.allowTeleport = s.getBoolean("allow-teleporting", false); + this.canShare = s.getBoolean("share-items-in-arena", true); + this.autoIgniteTNT = s.getBoolean("auto-ignite-tnt", false); this.allowMonsters = arena.getWorld().getAllowMonsters(); @@ -186,6 +189,14 @@ public class ArenaListener event.setCancelled(true); return; } + + // If the block is TNT, replace with a TNTPrimed + if (autoIgniteTNT && b.getType() == Material.TNT) { + event.setCancelled(true); + event.getPlayer().getInventory().removeItem(new ItemStack(Material.TNT, 1)); + b.getWorld().spawn(b.getRelative(BlockFace.UP).getLocation(), TNTPrimed.class); + return; + } // Otherwise, block was placed during a session. arena.addBlock(b);