Search in sources :

Example 6 with Boat

use of org.bukkit.entity.Boat 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 7 with Boat

use of org.bukkit.entity.Boat in project BentoBox by BentoBoxWorld.

the class EntityInteractListener method onPlayerInteractEntity.

@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerInteractEntity(PlayerInteractEntityEvent e) {
    Player p = e.getPlayer();
    Location l = e.getRightClicked().getLocation();
    if (e.getRightClicked() instanceof Vehicle) {
        // Animal riding
        if (e.getRightClicked() instanceof Animals) {
            checkIsland(e, p, l, Flags.RIDING);
        } else // Minecart riding
        if (e.getRightClicked() instanceof RideableMinecart) {
            checkIsland(e, p, l, Flags.MINECART);
        } else // Boat riding
        if (e.getRightClicked() instanceof Boat) {
            checkIsland(e, p, l, Flags.BOAT);
        }
    } else // Villager trading
    if (e.getRightClicked() instanceof Villager || e.getRightClicked() instanceof WanderingTrader) {
        // Check naming and check trading
        checkIsland(e, p, l, Flags.TRADING);
        if (e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.NAME_TAG)) {
            checkIsland(e, p, l, Flags.NAME_TAG);
        }
    } else // Name tags
    if (e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.NAME_TAG)) {
        checkIsland(e, p, l, Flags.NAME_TAG);
    }
}
Also used : Vehicle(org.bukkit.entity.Vehicle) Player(org.bukkit.entity.Player) Animals(org.bukkit.entity.Animals) Villager(org.bukkit.entity.Villager) WanderingTrader(org.bukkit.entity.WanderingTrader) RideableMinecart(org.bukkit.entity.minecart.RideableMinecart) Location(org.bukkit.Location) Boat(org.bukkit.entity.Boat) EventHandler(org.bukkit.event.EventHandler)

Example 8 with Boat

use of org.bukkit.entity.Boat in project acidisland by tastybento.

the class GridManager method homeTeleport.

/**
 * Teleport player to a home location. If one cannot be found a search is done to
 * find a safe place.
 * @param player player object
 * @param number - home location to do to
 * @return true if successful, false if not
 */
@SuppressWarnings("deprecation")
public void homeTeleport(final Player player, int number) {
    Location home = null;
    // plugin.getLogger().info("home teleport called for #" + number);
    home = getSafeHomeLocation(player.getUniqueId(), number);
    // Check if the player is a passenger in a boat
    if (player.isInsideVehicle()) {
        Entity boat = player.getVehicle();
        if (boat instanceof Boat) {
            player.leaveVehicle();
            // Remove the boat so they don't lie around everywhere
            boat.remove();
            player.getInventory().addItem(new ItemStack(Material.BOAT, 1));
            player.updateInventory();
        }
    }
    if (home == null) {
        // plugin.getLogger().info("Fixing home location using safe spot teleport");
        // Try to fix this teleport location and teleport the player if possible
        new SafeTeleportBuilder(plugin).entity(player).location(plugin.getPlayers().getHomeLocation(player.getUniqueId(), number)).homeNumber(number).build();
        return;
    }
    // plugin.getLogger().info("DEBUG: home loc = " + home + " teleporting");
    // home.getChunk().load();
    IslandPreTeleportEvent event = new IslandPreTeleportEvent(player, IslandPreTeleportEvent.Type.HOME, home);
    Bukkit.getPluginManager().callEvent(event);
    if (!event.isCancelled()) {
        player.teleport(event.getLocation());
        // player.sendBlockChange(home, Material.GLOWSTONE, (byte)0);
        if (number == 1) {
            Util.sendMessage(player, ChatColor.GREEN + plugin.myLocale(player.getUniqueId()).islandteleport);
        } else {
            Util.sendMessage(player, ChatColor.GREEN + plugin.myLocale(player.getUniqueId()).islandteleport + " #" + number);
        }
    }
    plugin.getPlayers().setInTeleport(player.getUniqueId(), false);
}
Also used : Entity(org.bukkit.entity.Entity) SafeTeleportBuilder(com.wasteofplastic.acidisland.util.teleport.SafeTeleportBuilder) IslandPreTeleportEvent(com.wasteofplastic.acidisland.events.IslandPreTeleportEvent) ItemStack(org.bukkit.inventory.ItemStack) Location(org.bukkit.Location) Boat(org.bukkit.entity.Boat)

Example 9 with Boat

use of org.bukkit.entity.Boat in project Glowstone by GlowstoneMC.

the class ItemBoat method placeBoat.

private void placeBoat(GlowPlayer player, ItemStack holding) {
    Block targetBlock = player.getTargetBlock((Set<Material>) null, 5);
    if (targetBlock != null && !targetBlock.isEmpty() && targetBlock.getRelative(BlockFace.UP).isEmpty()) {
        Location location = targetBlock.getRelative(BlockFace.UP).getLocation();
        // center boat on cursor location
        location.add(0.6875f, 0, 0.6875f);
        location.setYaw(player.getLocation().getYaw());
        Boat boat = targetBlock.getWorld().spawn(location, Boat.class);
        boat.setWoodType(woodType);
        if (player.getGameMode() != GameMode.CREATIVE) {
            player.getInventory().removeItem(holding);
        }
    }
}
Also used : GlowBlock(net.glowstone.block.GlowBlock) Block(org.bukkit.block.Block) Material(org.bukkit.Material) Location(org.bukkit.Location) Boat(org.bukkit.entity.Boat)

Example 10 with Boat

use of org.bukkit.entity.Boat in project Glowstone by GlowstoneMC.

the class VehicleMoveHandler method isValidMovement.

private boolean isValidMovement(Entity vehicle, Location oldLocation, Location newLocation) {
    if (!(vehicle instanceof Boat)) {
        return true;
    }
    boolean workOnLand = ((Boat) vehicle).getWorkOnLand();
    if (workOnLand) {
        return true;
    }
    Material type = oldLocation.getBlock().getType();
    if (type != Material.WATER) {
        return true;
    }
    return !newLocation.getBlock().getType().isSolid();
}
Also used : Material(org.bukkit.Material) Boat(org.bukkit.entity.Boat)

Aggregations

Boat (org.bukkit.entity.Boat)16 Location (org.bukkit.Location)12 Player (org.bukkit.entity.Player)11 Entity (org.bukkit.entity.Entity)10 EventHandler (org.bukkit.event.EventHandler)8 Minecart (org.bukkit.entity.Minecart)7 Animals (org.bukkit.entity.Animals)5 LivingEntity (org.bukkit.entity.LivingEntity)5 Vehicle (org.bukkit.entity.Vehicle)5 Region (br.net.fabiozumbi12.RedProtect.Bukkit.Region)4 EnderCrystal (org.bukkit.entity.EnderCrystal)4 Projectile (org.bukkit.entity.Projectile)4 ArrayList (java.util.ArrayList)3 Material (org.bukkit.Material)3 ItemFrame (org.bukkit.entity.ItemFrame)3 Painting (org.bukkit.entity.Painting)3 ItemStack (org.bukkit.inventory.ItemStack)3 Mob (com.earth2me.essentials.Mob)2 MyPetPlayer (de.Keyle.MyPet.api.player.MyPetPlayer)2 PvPlayer (me.NoChance.PvPManager.PvPlayer)2