diff --git a/src/com/garbagemule/MobArena/ArenaListener.java b/src/com/garbagemule/MobArena/ArenaListener.java index 0ef09f8..8dc521a 100644 --- a/src/com/garbagemule/MobArena/ArenaListener.java +++ b/src/com/garbagemule/MobArena/ArenaListener.java @@ -168,12 +168,15 @@ public class ArenaListener if (!arena.isRunning()) return false; // Below this, arena is running - ACStache + + Block b = event.getBlock(); + if (arena.removeBlock(b) || b.getType() == Material.TNT) + return true; if (softRestore) { if (arena.isProtected()) return false; - Block b = event.getBlock(); BlockState state = b.getState(); Repairable r = null; @@ -188,7 +191,7 @@ public class ArenaListener arena.addRepairable(r); - if(!softRestoreDrops) + if (!softRestoreDrops) b.setTypeId(0); return true; } diff --git a/src/com/garbagemule/MobArena/commands/user/JoinCommand.java b/src/com/garbagemule/MobArena/commands/user/JoinCommand.java index 4bb74f6..453d8b9 100644 --- a/src/com/garbagemule/MobArena/commands/user/JoinCommand.java +++ b/src/com/garbagemule/MobArena/commands/user/JoinCommand.java @@ -34,6 +34,12 @@ public class JoinCommand implements Command return false; } + // Deny joining from other arenas + if (am.getArenaWithPlayer(p) != null) { + Messenger.tellPlayer(p, Msg.JOIN_ALREADY_PLAYING); + return false; + } + // Per-arena sanity checks if (!arena.canJoin(p)) { return false; diff --git a/src/com/garbagemule/MobArena/util/ItemParser.java b/src/com/garbagemule/MobArena/util/ItemParser.java index 5736ccb..6bc59ed 100644 --- a/src/com/garbagemule/MobArena/util/ItemParser.java +++ b/src/com/garbagemule/MobArena/util/ItemParser.java @@ -149,7 +149,7 @@ public class ItemParser } private static ItemStack withDataAndAmount(String item, String data, String amount) { - Material m = getMaterial(item.toUpperCase()); + Material m = getMaterial(item); short d = getData(data, m); int a = getAmount(amount);