1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-13 18:14:38 +02:00

Fix world argument to ignore radius, and allow for skipping radius param in syntax.

This commit is contained in:
KHobbits
2014-02-09 22:26:54 +00:00
parent 9bc8f287a4
commit fa765d3077
2 changed files with 26 additions and 19 deletions

View File

@@ -20,7 +20,7 @@ public class Commandremove extends EssentialsCommand
{ {
super("remove"); super("remove");
} }
@Override @Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{ {
@@ -38,17 +38,19 @@ public class Commandremove extends EssentialsCommand
} }
catch (NumberFormatException e) catch (NumberFormatException e)
{ {
throw new Exception(_("numberRequired"), e); world = ess.getWorld(args[1]);
} }
} }
if (args.length >= 3) if (args.length >= 3)
{ {
// This is to prevent breaking the old syntax
radius = 0;
world = ess.getWorld(args[2]); world = ess.getWorld(args[2]);
} }
parseCommand(server, user.getSource(), args, world, radius); parseCommand(server, user.getSource(), args, world, radius);
} }
@Override @Override
protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
{ {
@@ -59,12 +61,17 @@ public class Commandremove extends EssentialsCommand
World world = ess.getWorld(args[1]); World world = ess.getWorld(args[1]);
parseCommand(server, sender, args, world, 0); parseCommand(server, sender, args, world, 0);
} }
private void parseCommand(Server server, CommandSource sender, String[] args, World world, int radius) throws Exception private void parseCommand(Server server, CommandSource sender, String[] args, World world, int radius) throws Exception
{ {
List<String> types = new ArrayList<String>(); List<String> types = new ArrayList<String>();
List<String> customTypes = new ArrayList<String>(); List<String> customTypes = new ArrayList<String>();
if (world == null)
{
throw new Exception(_("invalidWorld"));
}
if (args[0].contentEquals("*") || args[0].contentEquals("all")) if (args[0].contentEquals("*") || args[0].contentEquals("all"))
{ {
types.add(0, "ALL"); types.add(0, "ALL");
@@ -95,7 +102,7 @@ public class Commandremove extends EssentialsCommand
} }
removeHandler(sender, types, customTypes, world, radius); removeHandler(sender, types, customTypes, world, radius);
} }
private void removeHandler(CommandSource sender, List<String> types, List<String> customTypes, World world, int radius) private void removeHandler(CommandSource sender, List<String> types, List<String> customTypes, World world, int radius)
{ {
int removed = 0; int removed = 0;
@@ -103,17 +110,17 @@ public class Commandremove extends EssentialsCommand
{ {
radius *= radius; radius *= radius;
} }
ArrayList<ToRemove> removeTypes = new ArrayList<ToRemove>(); ArrayList<ToRemove> removeTypes = new ArrayList<ToRemove>();
ArrayList<Mob> customRemoveTypes = new ArrayList<Mob>(); ArrayList<Mob> customRemoveTypes = new ArrayList<Mob>();
for (String s : types) for (String s : types)
{ {
removeTypes.add(ToRemove.valueOf(s)); removeTypes.add(ToRemove.valueOf(s));
} }
boolean warnUser = false; boolean warnUser = false;
for (String s : customTypes) for (String s : customTypes)
{ {
Mob mobType = Mob.fromName(s); Mob mobType = Mob.fromName(s);
@@ -126,12 +133,12 @@ public class Commandremove extends EssentialsCommand
customRemoveTypes.add(mobType); customRemoveTypes.add(mobType);
} }
} }
if (warnUser) if (warnUser)
{ {
sender.sendMessage(_("invalidMob")); sender.sendMessage(_("invalidMob"));
} }
for (Chunk chunk : world.getLoadedChunks()) for (Chunk chunk : world.getLoadedChunks())
{ {
for (Entity e : chunk.getEntities()) for (Entity e : chunk.getEntities())
@@ -147,10 +154,10 @@ public class Commandremove extends EssentialsCommand
{ {
continue; continue;
} }
for (ToRemove toRemove : removeTypes) for (ToRemove toRemove : removeTypes)
{ {
if (e instanceof Tameable && ((Tameable)e).isTamed()) if (e instanceof Tameable && ((Tameable)e).isTamed())
{ {
if (toRemove == ToRemove.TAMED) if (toRemove == ToRemove.TAMED)
@@ -163,7 +170,7 @@ public class Commandremove extends EssentialsCommand
continue; continue;
} }
} }
switch (toRemove) switch (toRemove)
{ {
case DROPS: case DROPS:
@@ -278,8 +285,8 @@ public class Commandremove extends EssentialsCommand
} }
sender.sendMessage(_("removed", removed)); sender.sendMessage(_("removed", removed));
} }
private enum ToRemove private enum ToRemove
{ {
DROPS, DROPS,

View File

@@ -300,7 +300,7 @@ commands:
aliases: [formula,eformula,method,emethod,erecipe,recipes,erecipes] aliases: [formula,eformula,method,emethod,erecipe,recipes,erecipes]
remove: remove:
description: Removes entities in your world. description: Removes entities in your world.
usage: /<command> <all|tamed|drops|arrows|boats|minecarts|xp|paintings|itemframes|endercrystals|monsters|animals|ambient|mobs|[mobType]> [radius] [world] usage: /<command> <all|tamed|drops|arrows|boats|minecarts|xp|paintings|itemframes|endercrystals|monsters|animals|ambient|mobs|[mobType]> [radius|world]
aliases: [eremove,butcher,ebutcher,killall,ekillall,mobkill,emobkill] aliases: [eremove,butcher,ebutcher,killall,ekillall,mobkill,emobkill]
repair: repair:
description: Repairs the durability of one or all items. description: Repairs the durability of one or all items.