Search in sources :

Example 1 with Entity

use of org.bukkit.entity.Entity in project TotalFreedomMod by TotalFreedom.

the class Command_mobpurge method purgeMobs.

public static int purgeMobs() {
    int removed = 0;
    for (World world : Bukkit.getWorlds()) {
        for (Entity ent : world.getLivingEntities()) {
            if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient) {
                ent.remove();
                removed++;
            }
        }
    }
    return removed;
}
Also used : Entity(org.bukkit.entity.Entity) Creature(org.bukkit.entity.Creature) EnderDragon(org.bukkit.entity.EnderDragon) Ambient(org.bukkit.entity.Ambient) Ghast(org.bukkit.entity.Ghast) World(org.bukkit.World) Slime(org.bukkit.entity.Slime)

Example 2 with Entity

use of org.bukkit.entity.Entity in project GameCore by Warvale.

the class GlobalEvent method onBlockBreak.

@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
    if (event.getBlock().getType().equals(Material.IRON_ORE)) {
        event.getPlayer().giveExp(10);
        for (int i = 0; i < NumberUtils.random(3, 1); i++) {
            event.getPlayer().getInventory().addItem(new ItemStack(Material.IRON_INGOT));
        }
        event.setCancelled(true);
        Location blockLoc = event.getBlock().getLocation();
        event.getBlock().setType(Material.STONE);
        List<Entity> entityList = new ArrayList<>();
        for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
            ItemStack stack = new ItemStack(Material.IRON_NUGGET);
            stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
            entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
        }
        new BukkitRunnable() {

            @Override
            public void run() {
                entityList.forEach(Entity::remove);
            }
        }.runTaskLater(Main.get(), 60L);
        new BukkitRunnable() {

            @Override
            public void run() {
                event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.IRON_ORE);
                event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 5, 1);
            }
        }.runTaskLater(Main.get(), 400L);
    }
    if (event.getBlock().getType().equals(Material.GOLD_ORE)) {
        event.getPlayer().giveExp(30);
        for (int i = 0; i < NumberUtils.random(2, 0); i++) {
            event.getPlayer().getInventory().addItem(new ItemStack(Material.GOLD_INGOT));
        }
        event.setCancelled(true);
        Location blockLoc = event.getBlock().getLocation();
        event.getBlock().setType(Material.STONE);
        List<Entity> entityList = new ArrayList<>();
        for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
            ItemStack stack = new ItemStack(Material.GOLD_NUGGET);
            stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
            entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
        }
        new BukkitRunnable() {

            @Override
            public void run() {
                entityList.stream().forEach(entity -> entity.remove());
            }
        }.runTaskLater(Main.get(), 60L);
        new BukkitRunnable() {

            @Override
            public void run() {
                event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.GOLD_ORE);
                event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 10, 1);
            }
        }.runTaskLater(Main.get(), 400L);
    }
    if (event.getBlock().getType().equals(Material.DIAMOND_ORE)) {
        event.getPlayer().giveExp(50);
        for (int i = 0; i < NumberUtils.random(1, 0); i++) {
            event.getPlayer().getInventory().addItem(new ItemStack(Material.DIAMOND));
        }
        event.setCancelled(true);
        Location blockLoc = event.getBlock().getLocation();
        event.getBlock().setType(Material.STONE);
        List<Entity> entityList = new ArrayList<>();
        for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
            ItemStack stack = new ItemStack(Material.PRISMARINE_CRYSTALS);
            stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
            entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
        }
        new BukkitRunnable() {

            @Override
            public void run() {
                entityList.stream().forEach(entity -> entity.remove());
            }
        }.runTaskLater(Main.get(), 60L);
        new BukkitRunnable() {

            @Override
            public void run() {
                event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.DIAMOND_ORE);
                event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 25, 1);
            }
        }.runTaskLater(Main.get(), 400L);
    }
    if (event.getBlock().getType().equals(Material.LAPIS_ORE)) {
        event.getPlayer().giveExp(50);
        for (int i = 0; i < NumberUtils.random(1, 0); i++) {
            event.getPlayer().getInventory().addItem(new ItemStack(Material.LAPIS_BLOCK));
        }
        event.setCancelled(true);
        Location blockLoc = event.getBlock().getLocation();
        event.getBlock().setType(Material.STONE);
        List<Entity> entityList = new ArrayList<>();
        for (int i = 0; i < NumberUtils.random(5, 2) + 1; i++) {
            ItemStack stack = new ItemStack(Material.EYE_OF_ENDER);
            stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, NumberUtils.random(100, 1));
            entityList.add(event.getPlayer().getWorld().dropItemNaturally(event.getBlock().getLocation().setDirection(Vector.getRandom()).add(Vector.getRandom()), stack));
        }
        new BukkitRunnable() {

            @Override
            public void run() {
                entityList.stream().forEach(entity -> entity.remove());
            }
        }.runTaskLater(Main.get(), 60L);
        new BukkitRunnable() {

            @Override
            public void run() {
                event.getPlayer().getWorld().getBlockAt(blockLoc).setType(Material.LAPIS_ORE);
                event.getPlayer().getWorld().playSound(blockLoc, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 15, 1);
            }
        }.runTaskLater(Main.get(), 400L);
    }
}
Also used : Arrays(java.util.Arrays) Entity(org.bukkit.entity.Entity) Enchantment(org.bukkit.enchantments.Enchantment) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) BlockBreakEvent(org.bukkit.event.block.BlockBreakEvent) NumberUtils(net.warvale.core.utils.NumberUtils) Sound(org.bukkit.Sound) Player(org.bukkit.entity.Player) PlayerPickupItemEvent(org.bukkit.event.player.PlayerPickupItemEvent) ItemStack(org.bukkit.inventory.ItemStack) ArrayList(java.util.ArrayList) TeamManager(net.warvale.core.game.logic.TeamManager) EventHandler(org.bukkit.event.EventHandler) Vector(org.bukkit.util.Vector) PlayerDeathEvent(org.bukkit.event.entity.PlayerDeathEvent) List(java.util.List) ChatUtils(net.warvale.core.utils.chat.ChatUtils) Location(org.bukkit.Location) ChatColor(org.bukkit.ChatColor) Material(org.bukkit.Material) Listener(org.bukkit.event.Listener) Entity(org.bukkit.entity.Entity) ArrayList(java.util.ArrayList) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) ItemStack(org.bukkit.inventory.ItemStack) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 3 with Entity

use of org.bukkit.entity.Entity in project Minigames by AddstarMC.

the class RecorderData method cartkMoveItem.

@EventHandler(ignoreCancelled = true)
private void cartkMoveItem(InventoryMoveItemEvent event) {
    if (!hasRegenArea() || !minigame.hasPlayers())
        return;
    Location loc = null;
    if (event.getInitiator().getHolder() instanceof HopperMinecart) {
        loc = ((HopperMinecart) event.getInitiator().getHolder()).getLocation().clone();
        if (blockInRegenArea(loc))
            addEntity((Entity) event.getInitiator().getHolder(), null, false);
    }
    loc = null;
    if (event.getDestination().getHolder() instanceof HopperMinecart) {
        loc = ((HopperMinecart) event.getDestination().getHolder()).getLocation().clone();
        if (blockInRegenArea(loc))
            addEntity((Entity) event.getInitiator().getHolder(), null, false);
    }
}
Also used : Entity(org.bukkit.entity.Entity) HopperMinecart(org.bukkit.entity.minecart.HopperMinecart) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 4 with Entity

use of org.bukkit.entity.Entity in project Denizen-For-Bukkit by DenizenScript.

the class RemoveCommand method execute.

@SuppressWarnings("unchecked")
@Override
public void execute(final ScriptEntry scriptEntry) throws CommandExecutionException {
    // Get objects
    List<dEntity> entities = (List<dEntity>) scriptEntry.getObject("entities");
    dWorld world = (dWorld) scriptEntry.getObject("world");
    Element region = (Element) scriptEntry.getObject("region");
    // Report to dB
    dB.report(scriptEntry, getName(), aH.debugList("entities", entities) + (region != null ? aH.debugObj("region", region) : ""));
    boolean conditionsMet;
    for (dEntity entity : entities) {
        conditionsMet = true;
        if (!entity.isGeneric()) {
            if (region != null) {
                dB.echoError(scriptEntry.getResidingQueue(), "Region support is deprecated!");
            /*conditionsMet = WorldGuardUtilities.inRegion
                                    (entity.getBukkitEntity().getLocation(),
                                    region.asString());*/
            }
            if (conditionsMet) {
                if (entity.isCitizensNPC()) {
                    entity.getDenizenNPC().getCitizen().destroy();
                } else {
                    entity.remove();
                }
            }
        } else // If this is a generic unspawned entity, remove
        // all entities of this type from the world (as
        // long as they meet all other conditions)
        {
            for (Entity worldEntity : world.getEntities()) {
                if (entity.getEntityType().equals(DenizenEntityType.getByEntity(worldEntity))) {
                    if (region != null) {
                        dB.echoError(scriptEntry.getResidingQueue(), "Region support is deprecated!");
                    /*conditionsMet = WorldGuardUtilities.inRegion
                                            (worldEntity.getLocation(),
                                            region.asString());*/
                    }
                    if (conditionsMet) {
                        worldEntity.remove();
                    }
                }
            }
        }
    }
}
Also used : Entity(org.bukkit.entity.Entity) net.aufdemrand.denizen.objects.dEntity(net.aufdemrand.denizen.objects.dEntity) net.aufdemrand.denizen.objects.dEntity(net.aufdemrand.denizen.objects.dEntity) Element(net.aufdemrand.denizencore.objects.Element) List(java.util.List) net.aufdemrand.denizencore.objects.dList(net.aufdemrand.denizencore.objects.dList) net.aufdemrand.denizen.objects.dWorld(net.aufdemrand.denizen.objects.dWorld)

Example 5 with Entity

use of org.bukkit.entity.Entity in project Denizen-For-Bukkit by DenizenScript.

the class FlyCommand method execute.

@SuppressWarnings("unchecked")
@Override
public void execute(final ScriptEntry scriptEntry) throws CommandExecutionException {
    // Get objects
    dLocation origin = (dLocation) scriptEntry.getObject("origin");
    List<dEntity> entities = (List<dEntity>) scriptEntry.getObject("entities");
    final List<dLocation> destinations = scriptEntry.hasObject("destinations") ? (List<dLocation>) scriptEntry.getObject("destinations") : new ArrayList<dLocation>();
    // Set freeflight to true only if there are no destinations
    final boolean freeflight = destinations.size() < 1;
    dEntity controller = (dEntity) scriptEntry.getObject("controller");
    // If freeflight is on, we need to do some checks
    if (freeflight) {
        // flying entities, so try to find a player in the entity list
        if (controller == null) {
            for (dEntity entity : entities) {
                if (entity.isPlayer()) {
                    // the controller
                    if (entities.get(entities.size() - 1) != entity) {
                        controller = entity;
                        dB.report(scriptEntry, getName(), "Flight control defaulting to " + controller);
                        break;
                    }
                }
            }
            // If the controller is still null, we cannot continue
            if (controller == null) {
                dB.report(scriptEntry, getName(), "There is no one to control the flight's path!");
                return;
            }
        } else // Else, if the controller was set, we need to make sure
        // it is among the flying entities, and add it if it is not
        {
            boolean found = false;
            for (dEntity entity : entities) {
                if (entity.identify().equals(controller.identify())) {
                    found = true;
                    break;
                }
            }
            // Add the controller to the entity list
            if (!found) {
                dB.report(scriptEntry, getName(), "Adding controller " + controller + " to flying entities.");
                entities.add(0, controller);
            }
        }
    }
    final double speed = ((Element) scriptEntry.getObject("speed")).asDouble();
    final float rotationThreshold = ((Element) scriptEntry.getObject("rotationThreshold")).asFloat();
    boolean cancel = scriptEntry.hasObject("cancel");
    // Report to dB
    dB.report(scriptEntry, getName(), (cancel ? aH.debugObj("cancel", cancel) : "") + aH.debugObj("origin", origin) + aH.debugObj("entities", entities.toString()) + aH.debugObj("speed", speed) + aH.debugObj("rotation threshold degrees", rotationThreshold) + (freeflight ? aH.debugObj("controller", controller) : aH.debugObj("destinations", destinations.toString())));
    // Mount or dismount all of the entities
    if (!cancel) {
        // Go through all the entities, spawning/teleporting them
        for (dEntity entity : entities) {
            entity.spawnAt(origin);
        }
        Position.mount(Conversion.convertEntities(entities));
    } else {
        Position.dismount(Conversion.convertEntities(entities));
        // Go no further if we are dismounting entities
        return;
    }
    // Get the last entity on the list
    final Entity entity = entities.get(entities.size() - 1).getBukkitEntity();
    final LivingEntity finalController = controller != null ? controller.getLivingEntity() : null;
    BukkitRunnable task = new BukkitRunnable() {

        Location location = null;

        Boolean flying = true;

        public void run() {
            if (freeflight) {
                if (!entity.isEmpty() && finalController.isInsideVehicle()) {
                    location = finalController.getEyeLocation().add(finalController.getEyeLocation().getDirection().multiply(30));
                } else {
                    flying = false;
                }
            } else {
                if (destinations.size() > 0) {
                    location = destinations.get(0);
                } else {
                    flying = false;
                }
            }
            if (flying && entity.isValid()) {
                // when it really needs to
                if (!NMSHandler.getInstance().getEntityHelper().isFacingLocation(entity, location, rotationThreshold)) {
                    NMSHandler.getInstance().getEntityHelper().faceLocation(entity, location);
                }
                Vector v1 = entity.getLocation().toVector();
                Vector v2 = location.toVector();
                Vector v3 = v2.clone().subtract(v1).normalize().multiply(speed);
                entity.setVelocity(v3);
                if (!freeflight) {
                    if (Math.abs(v2.getX() - v1.getX()) < 2 && Math.abs(v2.getY() - v1.getY()) < 2 && Math.abs(v2.getZ() - v1.getZ()) < 2) {
                        destinations.remove(0);
                    }
                }
            } else {
                flying = false;
                this.cancel();
            }
        }
    };
    task.runTaskTimer(DenizenAPI.getCurrentInstance(), 0, 3);
}
Also used : Entity(org.bukkit.entity.Entity) net.aufdemrand.denizen.objects.dEntity(net.aufdemrand.denizen.objects.dEntity) LivingEntity(org.bukkit.entity.LivingEntity) Element(net.aufdemrand.denizencore.objects.Element) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) LivingEntity(org.bukkit.entity.LivingEntity) net.aufdemrand.denizen.objects.dEntity(net.aufdemrand.denizen.objects.dEntity) ArrayList(java.util.ArrayList) List(java.util.List) net.aufdemrand.denizencore.objects.dList(net.aufdemrand.denizencore.objects.dList) net.aufdemrand.denizen.objects.dLocation(net.aufdemrand.denizen.objects.dLocation) Vector(org.bukkit.util.Vector) Location(org.bukkit.Location) net.aufdemrand.denizen.objects.dLocation(net.aufdemrand.denizen.objects.dLocation)

Aggregations

Entity (org.bukkit.entity.Entity)665 LivingEntity (org.bukkit.entity.LivingEntity)271 Player (org.bukkit.entity.Player)261 EventHandler (org.bukkit.event.EventHandler)195 Location (org.bukkit.Location)176 Vector (org.bukkit.util.Vector)76 ItemStack (org.bukkit.inventory.ItemStack)74 ArrayList (java.util.ArrayList)73 Block (org.bukkit.block.Block)61 Mage (com.elmakers.mine.bukkit.api.magic.Mage)56 List (java.util.List)50 World (org.bukkit.World)43 Projectile (org.bukkit.entity.Projectile)40 Material (org.bukkit.Material)32 BukkitRunnable (org.bukkit.scheduler.BukkitRunnable)29 EntityType (org.bukkit.entity.EntityType)28 MageController (com.elmakers.mine.bukkit.api.magic.MageController)27 ISoliniaLivingEntity (com.solinia.solinia.Interfaces.ISoliniaLivingEntity)26 EntityTag (com.denizenscript.denizen.objects.EntityTag)25 FixedMetadataValue (org.bukkit.metadata.FixedMetadataValue)25