The /butcher command no longer kills NPCs, except when the -n flag is passed.

Also:
- Moved some code from BukkitWorld to LocalWorld.
- Replaced the "boolean killPets" argument by an "int flags" to provide extensibility
- Made the radius argument a double
- Basically rewrote the entire function
- Deprecated all old versions of killMobs
This commit is contained in:
TomyLobo
2011-12-06 06:26:12 +01:00
parent 4c9e0a629f
commit bc3a4377ec
3 changed files with 64 additions and 28 deletions

View File

@ -26,6 +26,7 @@ import com.sk89q.minecraft.util.commands.CommandPermissions;
import com.sk89q.minecraft.util.commands.Logging;
import static com.sk89q.minecraft.util.commands.Logging.LogMode.*;
import com.sk89q.worldedit.*;
import com.sk89q.worldedit.LocalWorld.KillFlags;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.patterns.*;
import com.sk89q.worldedit.regions.CuboidRegion;
@ -344,11 +345,13 @@ public class UtilityCommands {
@Command(
aliases = { "butcher" },
usage = "[radius]",
flags = "p",
flags = "pn",
desc = "Kill all or nearby mobs",
help =
"Kills nearby mobs, or all mobs if you don't specify a radius.\n" +
"The -p flag makes /butcher also kill pets.",
"Flags:" +
" -p also kill pets.\n" +
" -n also kill NPCs.",
min = 0,
max = 1
)
@ -361,7 +364,12 @@ public class UtilityCommands {
int radius = args.argsLength() > 0 ? Math.max(1, args.getInteger(0)) : -1;
Vector origin = session.getPlacementPosition(player);
int killed = player.getWorld().killMobs(origin, radius, args.hasFlag('p'));
int flags = 0;
if (args.hasFlag('p')) flags |= KillFlags.PETS;
if (args.hasFlag('n')) flags |= KillFlags.NPCS;
int killed = player.getWorld().killMobs(origin, radius, flags);
player.print("Killed " + killed + " mobs.");
}