geforkt von Mirrors/FastAsyncWorldEdit
Added -p flag to //butcher to kill pet wolves.
Dieser Commit ist enthalten in:
Ursprung
f97c765623
Commit
8f032fb2ea
@ -256,7 +256,7 @@ public abstract class LocalWorld {
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill mobs in an area.
|
||||
* Kill mobs in an area, excluding pet wolves.
|
||||
*
|
||||
* @param origin
|
||||
* @param radius
|
||||
@ -264,6 +264,16 @@ public abstract class LocalWorld {
|
||||
*/
|
||||
public abstract int killMobs(Vector origin, int radius);
|
||||
|
||||
/**
|
||||
* Kill mobs in an area.
|
||||
*
|
||||
* @param origin
|
||||
* @param radius
|
||||
* @param killPets
|
||||
* @return
|
||||
*/
|
||||
public abstract int killMobs(Vector origin, int radius, boolean killPets);
|
||||
|
||||
/**
|
||||
* Remove entities in an area.
|
||||
*
|
||||
|
@ -391,7 +391,7 @@ public class BukkitWorld extends LocalWorld {
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill mobs in an area.
|
||||
* Kill mobs in an area, excluding tamed wolves.
|
||||
*
|
||||
* @param origin
|
||||
* @param radius -1 for all mobs
|
||||
@ -399,12 +399,27 @@ public class BukkitWorld extends LocalWorld {
|
||||
*/
|
||||
@Override
|
||||
public int killMobs(Vector origin, int radius) {
|
||||
return killMobs(origin, radius, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill mobs in an area.
|
||||
*
|
||||
* @param origin
|
||||
* @param radius -1 for all mobs
|
||||
* @param killPets true to kill tames wolves
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int killMobs(Vector origin, int radius, boolean killPets) {
|
||||
int num = 0;
|
||||
double radiusSq = Math.pow(radius, 2);
|
||||
|
||||
for (LivingEntity ent : world.getLivingEntities()) {
|
||||
if ((ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime)
|
||||
&& !(ent instanceof Wolf)) {
|
||||
if (!killPets && ent instanceof Wolf && ((Wolf) ent).isTamed()) {
|
||||
continue; // tamed wolf
|
||||
}
|
||||
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime) {
|
||||
if (radius == -1
|
||||
|| origin.distanceSq(BukkitUtil.toVector(ent.getLocation())) <= radiusSq) {
|
||||
ent.remove();
|
||||
|
@ -307,6 +307,7 @@ public class UtilityCommands {
|
||||
@Command(
|
||||
aliases = {"butcher"},
|
||||
usage = "[radius]",
|
||||
flags = "p",
|
||||
desc = "Kill all or nearby mobs",
|
||||
min = 0,
|
||||
max = 1
|
||||
@ -320,7 +321,7 @@ public class UtilityCommands {
|
||||
Math.max(1, args.getInteger(0)) : -1;
|
||||
|
||||
Vector origin = session.getPlacementPosition(player);
|
||||
int killed = player.getWorld().killMobs(origin, radius);
|
||||
int killed = player.getWorld().killMobs(origin, radius, args.hasFlag('p'));
|
||||
player.print("Killed " + killed + " mobs.");
|
||||
}
|
||||
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren