summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-12-07 19:03:29 +0000
committerKHobbits <rob@khobbits.co.uk>2013-12-07 19:03:29 +0000
commit5b64c31e869bbe93d0b229cc81a37ca5ec73ef77 (patch)
treeefc850a54d219fe170037660d38426a49054f868
parent723e458a81ae17db5d635c273a055afa141131ff (diff)
downloadEssentials-5b64c31e869bbe93d0b229cc81a37ca5ec73ef77.tar
Essentials-5b64c31e869bbe93d0b229cc81a37ca5ec73ef77.tar.gz
Essentials-5b64c31e869bbe93d0b229cc81a37ca5ec73ef77.tar.lz
Essentials-5b64c31e869bbe93d0b229cc81a37ca5ec73ef77.tar.xz
Essentials-5b64c31e869bbe93d0b229cc81a37ca5ec73ef77.zip
Show warning when invalid mob type is specified for /remove
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandremove.java61
-rw-r--r--Essentials/src/messages.properties2
-rw-r--r--Essentials/src/messages_en.properties2
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<String> types = new ArrayList<String>();
List<String> customTypes = new ArrayList<String>();
-
+
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<String> types, List<String> customTypes, World world, int radius)
{
int removed = 0;
@@ -103,14 +103,35 @@ public class Commandremove extends EssentialsCommand
{
radius *= radius;
}
-
+
ArrayList<ToRemove> removeTypes = new ArrayList<ToRemove>();
-
+ ArrayList<Mob> customRemoveTypes = new ArrayList<Mob>();
+
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.