Search in sources :

Example 1 with WaterMob

use of org.bukkit.entity.WaterMob in project Essentials by drtshock.

the class Commandremove method removeHandler.

private void removeHandler(final CommandSource sender, final List<String> types, final List<String> customTypes, final World world, int radius) {
    int removed = 0;
    if (radius > 0) {
        radius *= radius;
    }
    final ArrayList<ToRemove> removeTypes = new ArrayList<>();
    final ArrayList<Mob> customRemoveTypes = new ArrayList<>();
    for (final String s : types) {
        removeTypes.add(ToRemove.valueOf(s));
    }
    boolean warnUser = false;
    for (final String s : customTypes) {
        final Mob mobType = Mob.fromName(s);
        if (mobType == null) {
            warnUser = true;
        } else {
            customRemoveTypes.add(mobType);
        }
    }
    if (warnUser) {
        sender.sendMessage(tl("invalidMob"));
    }
    for (final Chunk chunk : world.getLoadedChunks()) {
        for (final Entity e : chunk.getEntities()) {
            if (radius > 0) {
                if (sender.getPlayer().getLocation().distanceSquared(e.getLocation()) > radius) {
                    continue;
                }
            }
            if (e instanceof HumanEntity) {
                continue;
            }
            for (final ToRemove toRemove : removeTypes) {
                // We should skip any animals tamed by players unless we are specifially targetting them.
                if (e instanceof Tameable && ((Tameable) e).isTamed() && (((Tameable) e).getOwner() instanceof Player || ((Tameable) e).getOwner() instanceof OfflinePlayer) && !removeTypes.contains(ToRemove.TAMED)) {
                    continue;
                }
                // We should skip any NAMED animals unless we are specifially targetting them.
                if (e instanceof LivingEntity && e.getCustomName() != null && !removeTypes.contains(ToRemove.NAMED)) {
                    continue;
                }
                switch(toRemove) {
                    case TAMED:
                        if (e instanceof Tameable && ((Tameable) e).isTamed()) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case NAMED:
                        if (e instanceof LivingEntity && e.getCustomName() != null) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case DROPS:
                        if (e instanceof Item) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ARROWS:
                        if (e instanceof Projectile) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case BOATS:
                        if (e instanceof Boat) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case MINECARTS:
                        if (e instanceof Minecart) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case XP:
                        if (e instanceof ExperienceOrb) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case PAINTINGS:
                        if (e instanceof Painting) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ITEMFRAMES:
                        if (e instanceof ItemFrame) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ENDERCRYSTALS:
                        if (e instanceof EnderCrystal) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case AMBIENT:
                        if (e instanceof Flying) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case HOSTILE:
                    case MONSTERS:
                        if (e instanceof Monster || e instanceof ComplexLivingEntity || e instanceof Flying || e instanceof Slime) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case PASSIVE:
                    case ANIMALS:
                        if (e instanceof Animals || e instanceof NPC || e instanceof Snowman || e instanceof WaterMob || e instanceof Ambient) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case MOBS:
                        if (e instanceof Animals || e instanceof NPC || e instanceof Snowman || e instanceof WaterMob || e instanceof Monster || e instanceof ComplexLivingEntity || e instanceof Flying || e instanceof Slime || e instanceof Ambient) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ENTITIES:
                    case ALL:
                        e.remove();
                        removed++;
                        break;
                    case CUSTOM:
                        for (final Mob type : customRemoveTypes) {
                            if (e.getType() == type.getType()) {
                                e.remove();
                                removed++;
                            }
                        }
                        break;
                }
            }
        }
    }
    sender.sendMessage(tl("removed", removed));
}
Also used : NPC(org.bukkit.entity.NPC) ComplexLivingEntity(org.bukkit.entity.ComplexLivingEntity) HumanEntity(org.bukkit.entity.HumanEntity) Entity(org.bukkit.entity.Entity) LivingEntity(org.bukkit.entity.LivingEntity) ArrayList(java.util.ArrayList) Minecart(org.bukkit.entity.Minecart) ComplexLivingEntity(org.bukkit.entity.ComplexLivingEntity) ItemFrame(org.bukkit.entity.ItemFrame) ComplexLivingEntity(org.bukkit.entity.ComplexLivingEntity) LivingEntity(org.bukkit.entity.LivingEntity) Item(org.bukkit.entity.Item) Monster(org.bukkit.entity.Monster) HumanEntity(org.bukkit.entity.HumanEntity) OfflinePlayer(org.bukkit.OfflinePlayer) WaterMob(org.bukkit.entity.WaterMob) Mob(com.earth2me.essentials.Mob) Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) Tameable(org.bukkit.entity.Tameable) ExperienceOrb(org.bukkit.entity.ExperienceOrb) EnderCrystal(org.bukkit.entity.EnderCrystal) Chunk(org.bukkit.Chunk) Slime(org.bukkit.entity.Slime) Projectile(org.bukkit.entity.Projectile) Painting(org.bukkit.entity.Painting) WaterMob(org.bukkit.entity.WaterMob) Flying(org.bukkit.entity.Flying) Animals(org.bukkit.entity.Animals) Ambient(org.bukkit.entity.Ambient) Snowman(org.bukkit.entity.Snowman) Boat(org.bukkit.entity.Boat)

Example 2 with WaterMob

use of org.bukkit.entity.WaterMob in project Essentials by EssentialsX.

the class Commandremove method removeHandler.

private void removeHandler(final CommandSource sender, final List<String> types, final List<String> customTypes, final World world, int radius) {
    int removed = 0;
    if (radius > 0) {
        radius *= radius;
    }
    final ArrayList<ToRemove> removeTypes = new ArrayList<>();
    final ArrayList<Mob> customRemoveTypes = new ArrayList<>();
    for (final String s : types) {
        removeTypes.add(ToRemove.valueOf(s));
    }
    boolean warnUser = false;
    for (final String s : customTypes) {
        final Mob mobType = Mob.fromName(s);
        if (mobType == null) {
            warnUser = true;
        } else {
            customRemoveTypes.add(mobType);
        }
    }
    if (warnUser) {
        sender.sendMessage(tl("invalidMob"));
    }
    for (final Chunk chunk : world.getLoadedChunks()) {
        for (final Entity e : chunk.getEntities()) {
            if (radius > 0) {
                if (sender.getPlayer().getLocation().distanceSquared(e.getLocation()) > radius) {
                    continue;
                }
            }
            if (e instanceof HumanEntity) {
                continue;
            }
            for (final ToRemove toRemove : removeTypes) {
                // We should skip any animals tamed by players unless we are specifially targetting them.
                if (e instanceof Tameable && ((Tameable) e).isTamed() && (((Tameable) e).getOwner() instanceof Player || ((Tameable) e).getOwner() instanceof OfflinePlayer) && !removeTypes.contains(ToRemove.TAMED)) {
                    continue;
                }
                // We should skip any NAMED animals unless we are specifially targetting them.
                if (e instanceof LivingEntity && e.getCustomName() != null && !removeTypes.contains(ToRemove.NAMED)) {
                    continue;
                }
                switch(toRemove) {
                    case TAMED:
                        if (e instanceof Tameable && ((Tameable) e).isTamed()) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case NAMED:
                        if (e instanceof LivingEntity && e.getCustomName() != null) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case DROPS:
                        if (e instanceof Item) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ARROWS:
                        if (e instanceof Projectile) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case BOATS:
                        if (e instanceof Boat) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case MINECARTS:
                        if (e instanceof Minecart) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case XP:
                        if (e instanceof ExperienceOrb) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case PAINTINGS:
                        if (e instanceof Painting) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ITEMFRAMES:
                        if (e instanceof ItemFrame) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ENDERCRYSTALS:
                        if (e instanceof EnderCrystal) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case AMBIENT:
                        if (e instanceof Flying) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case HOSTILE:
                    case MONSTERS:
                        if (e instanceof Monster || e instanceof ComplexLivingEntity || e instanceof Flying || e instanceof Slime) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case PASSIVE:
                    case ANIMALS:
                        if (e instanceof Animals || e instanceof NPC || e instanceof Snowman || e instanceof WaterMob || e instanceof Ambient) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case MOBS:
                        if (e instanceof Animals || e instanceof NPC || e instanceof Snowman || e instanceof WaterMob || e instanceof Monster || e instanceof ComplexLivingEntity || e instanceof Flying || e instanceof Slime || e instanceof Ambient) {
                            e.remove();
                            removed++;
                        }
                        break;
                    case ENTITIES:
                    case ALL:
                        e.remove();
                        removed++;
                        break;
                    case CUSTOM:
                        for (final Mob type : customRemoveTypes) {
                            if (e.getType() == type.getType()) {
                                e.remove();
                                removed++;
                            }
                        }
                        break;
                }
            }
        }
    }
    sender.sendMessage(tl("removed", removed));
}
Also used : NPC(org.bukkit.entity.NPC) ComplexLivingEntity(org.bukkit.entity.ComplexLivingEntity) HumanEntity(org.bukkit.entity.HumanEntity) Entity(org.bukkit.entity.Entity) LivingEntity(org.bukkit.entity.LivingEntity) ArrayList(java.util.ArrayList) Minecart(org.bukkit.entity.Minecart) ComplexLivingEntity(org.bukkit.entity.ComplexLivingEntity) ItemFrame(org.bukkit.entity.ItemFrame) ComplexLivingEntity(org.bukkit.entity.ComplexLivingEntity) LivingEntity(org.bukkit.entity.LivingEntity) Item(org.bukkit.entity.Item) Monster(org.bukkit.entity.Monster) HumanEntity(org.bukkit.entity.HumanEntity) OfflinePlayer(org.bukkit.OfflinePlayer) WaterMob(org.bukkit.entity.WaterMob) Mob(com.earth2me.essentials.Mob) Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) Tameable(org.bukkit.entity.Tameable) ExperienceOrb(org.bukkit.entity.ExperienceOrb) EnderCrystal(org.bukkit.entity.EnderCrystal) Chunk(org.bukkit.Chunk) Slime(org.bukkit.entity.Slime) Projectile(org.bukkit.entity.Projectile) Painting(org.bukkit.entity.Painting) WaterMob(org.bukkit.entity.WaterMob) Flying(org.bukkit.entity.Flying) Animals(org.bukkit.entity.Animals) Ambient(org.bukkit.entity.Ambient) Snowman(org.bukkit.entity.Snowman) Boat(org.bukkit.entity.Boat)

Aggregations

Mob (com.earth2me.essentials.Mob)2 ArrayList (java.util.ArrayList)2 Chunk (org.bukkit.Chunk)2 OfflinePlayer (org.bukkit.OfflinePlayer)2 Ambient (org.bukkit.entity.Ambient)2 Animals (org.bukkit.entity.Animals)2 Boat (org.bukkit.entity.Boat)2 ComplexLivingEntity (org.bukkit.entity.ComplexLivingEntity)2 EnderCrystal (org.bukkit.entity.EnderCrystal)2 Entity (org.bukkit.entity.Entity)2 ExperienceOrb (org.bukkit.entity.ExperienceOrb)2 Flying (org.bukkit.entity.Flying)2 HumanEntity (org.bukkit.entity.HumanEntity)2 Item (org.bukkit.entity.Item)2 ItemFrame (org.bukkit.entity.ItemFrame)2 LivingEntity (org.bukkit.entity.LivingEntity)2 Minecart (org.bukkit.entity.Minecart)2 Monster (org.bukkit.entity.Monster)2 NPC (org.bukkit.entity.NPC)2 Painting (org.bukkit.entity.Painting)2