From 5b64c31e869bbe93d0b229cc81a37ca5ec73ef77 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 7 Dec 2013 19:03:29 +0000 Subject: Show warning when invalid mob type is specified for /remove --- .../essentials/commands/Commandremove.java | 61 +++++++++++++++------- Essentials/src/messages.properties | 2 +- Essentials/src/messages_en.properties | 2 +- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandremove.java b/Essentials/src/com/earth2me/essentials/commands/Commandremove.java index 9136d2037..cafd22ba8 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandremove.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandremove.java @@ -20,7 +20,7 @@ public class Commandremove extends EssentialsCommand { super("remove"); } - + @Override protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { @@ -46,9 +46,9 @@ public class Commandremove extends EssentialsCommand world = ess.getWorld(args[2]); } parseCommand(server, user.getSource(), args, world, radius); - + } - + @Override protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception { @@ -59,35 +59,35 @@ public class Commandremove extends EssentialsCommand World world = ess.getWorld(args[1]); parseCommand(server, sender, args, world, 0); } - + private void parseCommand(Server server, CommandSource sender, String[] args, World world, int radius) throws Exception { List types = new ArrayList(); List customTypes = new ArrayList(); - + if (args[0].contentEquals("*") || args[0].contentEquals("all")) { types.add(0, "ALL"); } else { - for (String s : args[0].split(",")) + for (String entityType : args[0].split(",")) { ToRemove toRemove; try { - toRemove = ToRemove.valueOf(s.toUpperCase(Locale.ENGLISH)); + toRemove = ToRemove.valueOf(entityType.toUpperCase(Locale.ENGLISH)); } catch (Exception e) { try { - toRemove = ToRemove.valueOf(s.concat("S").toUpperCase(Locale.ENGLISH)); + toRemove = ToRemove.valueOf(entityType.concat("S").toUpperCase(Locale.ENGLISH)); } catch (Exception ee) { toRemove = ToRemove.CUSTOM; - customTypes.add(s); + customTypes.add(entityType); } } types.add(toRemove.toString()); @@ -95,7 +95,7 @@ public class Commandremove extends EssentialsCommand } removeHandler(sender, types, customTypes, world, radius); } - + private void removeHandler(CommandSource sender, List types, List customTypes, World world, int radius) { int removed = 0; @@ -103,14 +103,35 @@ public class Commandremove extends EssentialsCommand { radius *= radius; } - + ArrayList removeTypes = new ArrayList(); - + ArrayList customRemoveTypes = new ArrayList(); + for (String s : types) { removeTypes.add(ToRemove.valueOf(s)); } - + + boolean warnUser = false; + + for (String s : customTypes) + { + Mob mobType = Mob.fromName(s); + if (mobType == null) + { + warnUser = true; + } + else + { + customRemoveTypes.add(mobType); + } + } + + if (warnUser) + { + sender.sendMessage(_("invalidMob")); + } + for (Chunk chunk : world.getLoadedChunks()) { for (Entity e : chunk.getEntities()) @@ -126,10 +147,10 @@ public class Commandremove extends EssentialsCommand { continue; } - + for (ToRemove toRemove : removeTypes) { - + if (e instanceof Tameable && ((Tameable)e).isTamed()) { if (toRemove == ToRemove.TAMED) @@ -142,7 +163,7 @@ public class Commandremove extends EssentialsCommand continue; } } - + switch (toRemove) { case DROPS: @@ -242,9 +263,9 @@ public class Commandremove extends EssentialsCommand } break; case CUSTOM: - for (String type : customTypes) + for (Mob type : customRemoveTypes) { - if (e.getType() == Mob.fromName(type).getType()) + if (e.getType() == type.getType()) { e.remove(); removed++; @@ -257,8 +278,8 @@ public class Commandremove extends EssentialsCommand } sender.sendMessage(_("removed", removed)); } - - + + private enum ToRemove { DROPS, diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index cfa4788ef..a6abc7b9f 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -171,7 +171,7 @@ invalidCharge=\u00a74Invalid charge. invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76. invalidHome=\u00a74Home\u00a7c {0} \u00a74doesn''t exist\! invalidHomeName=\u00a74Invalid home name\! -invalidMob=Invalid mob type. +invalidMob=\u00a74Invalid mob type. invalidNumber=Invalid Number. invalidPotion=\u00a74Invalid Potion. invalidPotionMeta=\u00a74Invalid potion meta\: \u00a7c{0}\u00a74. diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 384272b69..01d016eb5 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -171,7 +171,7 @@ invalidCharge=\u00a74Invalid charge. invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76. invalidHome=\u00a74Home\u00a7c {0} \u00a74doesn''t exist\! invalidHomeName=\u00a74Invalid home name\! -invalidMob=Invalid mob type. +invalidMob=\u00a74Invalid mob type. invalidNumber=Invalid Number. invalidPotion=\u00a74Invalid Potion. invalidPotionMeta=\u00a74Invalid potion meta\: \u00a7c{0}\u00a74. -- cgit v1.2.3