Added ALL and ITEM_FRAME to /remove'able entities

This commit is contained in:
Wizjany 2012-12-25 16:43:35 -05:00
parent f9791d25ce
commit 2aab0369b5
3 changed files with 29 additions and 7 deletions

View File

@ -23,10 +23,13 @@ package com.sk89q.worldedit;
* List of removable entity types.
*/
public enum EntityType {
ARROWS,
ALL,
@Deprecated ARROWS,
PROJECTILES,
ITEMS,
FALLING_BLOCKS,
PAINTINGS,
ITEM_FRAMES,
BOATS,
MINECARTS,
TNT,

View File

@ -44,16 +44,18 @@ import org.bukkit.block.Furnace;
import org.bukkit.block.Sign;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Animals;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Boat;
import org.bukkit.entity.Entity;
import org.bukkit.entity.ExperienceOrb;
import org.bukkit.entity.FallingBlock;
import org.bukkit.entity.Hanging;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Item;
import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Minecart;
import org.bukkit.entity.Painting;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.Tameable;
import org.bukkit.inventory.DoubleChestInventory;
@ -679,8 +681,16 @@ public class BukkitWorld extends LocalWorld {
continue;
}
if (type == EntityType.ARROWS) {
if (ent instanceof Arrow) {
if (type == EntityType.ALL) {
if (ent instanceof Projectile || ent instanceof Boat || ent instanceof Item
|| ent instanceof FallingBlock || ent instanceof Minecart || ent instanceof Hanging
|| ent instanceof TNTPrimed || ent instanceof ExperienceOrb) {
ent.remove();
num++;
}
} else if (type == EntityType.PROJECTILES || type == EntityType.ARROWS) {
if (ent instanceof Projectile) {
// covers: arrow, egg, enderpearl, fireball, fish, snowball, throwpotion, thrownexpbottle
ent.remove();
++num;
}
@ -709,6 +719,11 @@ public class BukkitWorld extends LocalWorld {
ent.remove();
++num;
}
} else if (type == EntityType.ITEM_FRAMES) {
if (ent instanceof ItemFrame) {
ent.remove();
++num;
}
} else if (type == EntityType.TNT) {
if (ent instanceof TNTPrimed) {
ent.remove();

View File

@ -460,8 +460,10 @@ public class UtilityCommands {
EntityType type = null;
if (typeStr.matches("arrows?")) {
type = EntityType.ARROWS;
if (typeStr.matches("all")) {
type = EntityType.ALL;
} else if (typeStr.matches("projectiles?|arrows?")) {
type = EntityType.PROJECTILES;
} else if (typeStr.matches("items?")
|| typeStr.matches("drops?")) {
type = EntityType.ITEMS;
@ -470,6 +472,8 @@ public class UtilityCommands {
} else if (typeStr.matches("paintings?")
|| typeStr.matches("art")) {
type = EntityType.PAINTINGS;
} else if (typeStr.matches("(item)frames?")) {
type = EntityType.ITEM_FRAMES;
} else if (typeStr.matches("boats?")) {
type = EntityType.BOATS;
} else if (typeStr.matches("minecarts?")
@ -480,7 +484,7 @@ public class UtilityCommands {
} else if (typeStr.matches("xp")) {
type = EntityType.XP_ORBS;
} else {
player.printError("Acceptable types: arrows, items, paintings, boats, minecarts, tnt, xp");
player.printError("Acceptable types: projectiles, items, paintings, itemframes, boats, minecarts, tnt, xp, or all");
return;
}