@EventHandler public void onVehicleBreak(VehicleDestroyEvent e){ if (e.isCancelled()){ return; } if (!(e.getAttacker() instanceof Player)){ return; } Vehicle cart = e.getVehicle(); Player p = (Player) e.getAttacker(); Region r = RedProtect.get().rm.getTopRegion(cart.getLocation()); if (r != null){ return; } if (!RPConfig.getGlobalFlagBool(p.getWorld().getName()+".use-minecart") && !p.hasPermission("redprotect.bypass.world")){ e.setCancelled(true); } }
@EventHandler public void onVehicleBreak(VehicleDestroyEvent e){ RedProtect.get().logger.debug("RPBlockListener - Is VehicleDestroyEvent event"); if (e.isCancelled()){ return; } if (!(e.getAttacker() instanceof Player)){ return; } Vehicle cart = e.getVehicle(); Player p = (Player) e.getAttacker(); Region r = RedProtect.get().rm.getTopRegion(cart.getLocation()); if (r != null && !r.canMinecart(p)){ RPLang.sendMessage(p, "blocklistener.region.cantbreak"); e.setCancelled(true); } }
public static void teleportVehicle(final Player player, final String vehicleTypeName, final double velocity, final Location location) { checkChunkLoad(location.getBlock()); // Crete new velocity final Vector newVelocity = location.getDirection(); newVelocity.multiply(velocity); final Vehicle v = (Vehicle) location.getWorld().spawnEntity(location, EntityUtil.entityType(vehicleTypeName)); player.teleport(location); Plugin.instance.getServer().getScheduler().scheduleSyncDelayedTask(Plugin.instance, new Runnable() { @Override public void run() { v.setPassenger(player); v.setVelocity(newVelocity); } }, 2); }
@EventHandler public void onPlayerUnleashEntity(PlayerUnleashEntityEvent event) { List<String> denyRiding = Config.REGION_DENYRIDING.getStringList(); Player player = event.getPlayer(); Entity entity = event.getEntity(); NovaPlayer nPlayer = PlayerManager.getPlayer(player); if(denyRiding.contains(entity.getType().name())) { if(RegionManager.get(entity) != null && (!plugin.getRegionManager().canInteract(player, entity) || (!nPlayer.getPreferences().getBypass() && !nPlayer.hasPermission(GuildPermission.MOB_LEASH))) && !(entity instanceof Vehicle) || !PlayerManager.getPlayer(player).isVehicleListed((Vehicle) event.getEntity())) { event.setCancelled(true); Message.CHAT_REGION_DENY_UNLEASH.send(player); } } }
@EventHandler public void onVehicleEnter(VehicleEnterEvent event) { Vehicle vehicle = event.getVehicle(); if(!(event.getEntered() instanceof Player)) { return; } final Player player = (Player) event.getEntered(); NovaPlayer nPlayer = PlayerManager.getPlayer(player); List<String> denyRiding = Config.REGION_DENYRIDING.getStringList(); if(denyRiding.contains(vehicle.getType().name()) && RegionManager.get(vehicle) != null && (!plugin.getRegionManager().canInteract(player, vehicle) || (!nPlayer.getPreferences().getBypass() && !nPlayer.hasPermission(GuildPermission.MOB_RIDE))) && !PlayerManager.getPlayer(event.getEntered()).isVehicleListed(vehicle)) { event.setCancelled(true); Message.CHAT_REGION_DENY_RIDEMOB.send(event.getEntered()); } }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onVehicleCreate(VehicleCreateEvent event) { Vehicle entity = event.getVehicle(); Location location = BukkitUtil.getLocation(entity); PlotArea area = location.getPlotArea(); if (area == null) { return; } Plot plot = area.getOwnedPlotAbs(location); if (plot == null || checkEntity(entity, plot)) { entity.remove(); return; } if (Settings.Enabled_Components.KILL_ROAD_VEHICLES) { entity.setMetadata("plot", new FixedMetadataValue((Plugin) PS.get().IMP, plot)); } }
@Override /** * Applies a velocity to each of the entities pushing them away from each other. Args: entity */ public void applyEntityCollision(Entity entity) { org.bukkit.entity.Entity hitEntity = (entity == null) ? null : entity.getBukkitEntity(); VehicleEntityCollisionEvent event = new VehicleEntityCollisionEvent((Vehicle) this.getBukkitEntity(), hitEntity); this.worldObj.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return; } super.applyEntityCollision(entity); }
protected void p(Entity entity) { if (entity.bz() == this) { throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { // CraftBukkit start CraftEntity craft = (CraftEntity) entity.getBukkitEntity().getVehicle(); Entity orig = craft == null ? null : craft.getHandle(); if (getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) { VehicleExitEvent event = new VehicleExitEvent( (Vehicle) getBukkitEntity(), (LivingEntity) entity.getBukkitEntity() ); Bukkit.getPluginManager().callEvent(event); CraftEntity craftn = (CraftEntity) entity.getBukkitEntity().getVehicle(); Entity n = craftn == null ? null : craftn.getHandle(); if (event.isCancelled() || n != orig) { return; } } // CraftBukkit end Bukkit.getPluginManager().callEvent( new org.spigotmc.event.entity.EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity())); // Spigot this.passengers.remove(entity); entity.j = 60; } }
@EventHandler public void onVehicleDestroy(VehicleDestroyEvent event) { Vehicle v = event.getVehicle(); Entity attacker = event.getAttacker(); ArenaManager am = SimpleSurvivalGames.instance.getArenaManager(); for(Arena a : am.getArenas()) { if(a.isArenaCuboidSet()) { if(a.getArenaCuboid().isInsideCuboid(v.getLocation())) { if(!a.isInEditMode()) { event.setCancelled(true); if(attacker instanceof Player) { Player p = (Player) attacker; p.sendMessage(ChatColor.DARK_RED + "You may not destroy this vehicle!"); } } } } } }
@EventHandler public void onDismount(VehicleExitEvent event) { if (event.getExited() instanceof Player) { Player p = (Player) event.getExited(); if (plugin.getPD(p) != null) plugin.getPD(p).riding = false; } if (horseUUIDs.contains(event.getVehicle().getUniqueId())) { Vehicle v = event.getVehicle(); RScheduler.schedule(plugin, new Runnable() { public void run() { if (v != null && v.isValid()) { if (v instanceof Horse) { if (((CraftHorse) v).getHandle() instanceof CustomHorse) { ((CustomHorse) ((CraftHorse) v).getHandle()).rearUp(); } } } } }, 10); RScheduler.schedule(plugin, new Runnable() { public void run() { if (v != null && v.isValid()) { RParticles.show(ParticleEffect.CLOUD, v.getLocation().add(0, 1, 0), 10); v.remove(); } } }, 35); } }
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onVehicleCreate(VehicleCreateEvent event) { Vehicle vehicle = event.getVehicle(); if (vehicle instanceof Boat) { Boat boat = (Boat) vehicle; Block belowBlock = boat.getLocation().add(0, -1, 0).getBlock(); if (belowBlock.getType() != Material.WATER && belowBlock.getType() != Material.STATIONARY_WATER) { boat.remove(); } } }
/** * Handles vehicle spawning * * @param e an event representing a vehicle that has spawned * @see VehicleCreateEvent * @since 4.0.0 */ @EventHandler(ignoreCancelled = true) public void onVehicleCreate(VehicleCreateEvent e) { Vehicle vehicle = e.getVehicle(); Plot plot; if ((plot = Plot.getPlot(vehicle.getLocation())) != null) { if (!plot.addEntity(vehicle)) vehicle.remove(); } }
public EntityMinecartAbstract(World world, double d0, double d1, double d2) { this(world); this.setPosition(d0, d1, d2); this.motX = 0.0D; this.motY = 0.0D; this.motZ = 0.0D; this.lastX = d0; this.lastY = d1; this.lastZ = d2; this.world.getServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleCreateEvent((Vehicle) this.getBukkitEntity())); // CraftBukkit }
@Override public void collide(Entity entity) { org.bukkit.entity.Entity hitEntity = (entity == null) ? null : entity.getBukkitEntity(); VehicleEntityCollisionEvent event = new VehicleEntityCollisionEvent((Vehicle) this.getBukkitEntity(), hitEntity); this.world.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return; } super.collide(entity); }
public EntityBoat(World world, double d0, double d1, double d2) { this(world); this.setPosition(d0, d1 + (double) this.height, d2); this.motX = 0.0D; this.motY = 0.0D; this.motZ = 0.0D; this.lastX = d0; this.lastY = d1; this.lastZ = d2; this.world.getServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleCreateEvent((Vehicle) this.getBukkitEntity())); // CraftBukkit }
protected void a(double d0, boolean flag) { int i = MathHelper.floor(this.locX); int j = MathHelper.floor(this.locY); int k = MathHelper.floor(this.locZ); if (flag) { if (this.fallDistance > 3.0F) { this.b(this.fallDistance); if (!this.world.isStatic && !this.dead) { // CraftBukkit start Vehicle vehicle = (Vehicle) this.getBukkitEntity(); VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, null); this.world.getServer().getPluginManager().callEvent(destroyEvent); if (!destroyEvent.isCancelled()) { this.die(); int l; for (l = 0; l < 3; ++l) { this.a(Item.getItemOf(Blocks.WOOD), 1, 0.0F); } for (l = 0; l < 2; ++l) { this.a(Items.STICK, 1, 0.0F); } } // CraftBukkit end } this.fallDistance = 0.0F; } } else if (this.world.getType(i, j - 1, k).getMaterial() != Material.WATER && d0 < 0.0D) { this.fallDistance = (float) ((double) this.fallDistance - d0); } }
public static void execCommand(final Vehicle vehicle, final String command, final CommandType commandType, final Boolean teleport) { final Entity passenger = vehicle.getPassenger(); // Spin player 180 deg if (teleport) { final Location position = vehicle.getLocation(); float yaw = position.getYaw(); if ((yaw += 180) > 360) { yaw -= 360; } position.setYaw(yaw); position.add(position.getDirection().multiply(2)); final Vehicle v = position.getWorld().spawn(position, vehicle.getClass()); vehicle.eject(); vehicle.remove(); passenger.teleport(position); passenger.setFireTicks(0); // Cancel lava fire Plugin.instance.getServer().getScheduler().scheduleSyncDelayedTask(Plugin.instance, new Runnable() { @Override public void run() { v.setPassenger(passenger); } }, 2); } // Execute command as player or console Plugin.instance.getServer().getScheduler().scheduleSyncDelayedTask(Plugin.instance, new Runnable() { @Override public void run() { execCommand((Player) passenger, command, commandType); } }, 3); }
@EventHandler public void onEntityPortal(final EntityPortalEvent event) { if (event.isCancelled()) { return; } if (!(event.getEntity() instanceof Player) && !(event.getEntity().getPassenger() instanceof Player)) { // Ok so an entity portal event begins // Find the nearest gate! final WorldCoord entityCoord = new WorldCoord(event.getEntity().getLocation()); final Gate nearestGate = GateUtil.nearestGate(entityCoord, true); if (nearestGate != null) { event.setCancelled(true); /* * Teleport non-living vehicles - Only when useVanillaPortals is enabled Boolean * Expression: Rtrn = VanilFlag' InstVeh InstLiv'; */ if (!Conf.useVanillaPortals && event.getEntity() instanceof Vehicle && !(event.getEntity() instanceof LivingEntity)) { return; } /* * Teleport entities (incl. living vehicles) - If they're allowed Teleport * non-living vehicles if they're allowed Boolean Expression: Tele = EntFlag * InstVeh' + EntFlag InstLiv + VehFlag InstVeh InstLiv'; */ if (nearestGate.getTeleportEntities() && !(event.getEntity() instanceof Vehicle) || nearestGate.getTeleportEntities() && event.getEntity() instanceof LivingEntity || nearestGate.getTeleportVehicles() && event.getEntity() instanceof Vehicle && !(event.getEntity() instanceof LivingEntity)) { if (nearestGate.getBungeeTo() == null) { TeleportUtil.teleportEntity(event, nearestGate.getTo()); } else { TeleportUtil.teleportEntity(event, nearestGate.getBungeeTo()); } } } } }
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onVehicleCreate(final VehicleCreateEvent event) { Vehicle entity = event.getVehicle(); Location loc = BukkitUtil.getLocation(entity); Plot plot = MainUtil.getPlot(loc); if (checkEntity(entity, plot)) { entity.remove(); } }
@EventHandler public void onPlayerLeashEntity(PlayerLeashEntityEvent event) { List<String> denyRiding = Config.REGION_DENYRIDING.getStringList(); Player player = event.getPlayer(); Entity entity = event.getEntity(); NovaPlayer nPlayer = PlayerManager.getPlayer(player); if(denyRiding.contains(entity.getType().name()) && RegionManager.get(entity) != null && (!plugin.getRegionManager().canInteract(player, entity) || (!nPlayer.getPreferences().getBypass() && !nPlayer.hasPermission(GuildPermission.MOB_LEASH))) && (!(entity instanceof Vehicle) || !PlayerManager.getPlayer(player).isVehicleListed((Vehicle) event.getEntity()))) { event.setCancelled(true); Message.CHAT_REGION_DENY_LEASH.send(event.getPlayer()); } }
/** * @param e * This event check throws the boat at a player when they hit it * unless someone is in it */ @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onClick(VehicleDamageEvent e) { // plugin.getLogger().info("Damage event " + e.getDamage()); // Find out what block is being clicked Vehicle boat = e.getVehicle(); if (!(boat instanceof Boat)) { return; } if (!boat.isEmpty()) { return; } final World playerWorld = boat.getWorld(); if (!playerWorld.getName().equalsIgnoreCase(Settings.worldName)) { // Not the right world return; } // plugin.getLogger().info("Boat "); // Find out who is doing the clicking if (!(e.getAttacker() instanceof Player)) { // If a creeper blows up the boat, tough cookies! return; } Player p = (Player) e.getAttacker(); if (p == null) { return; } // Try to remove the boat and throw it at the player Location boatSpot = new Location(boat.getWorld(), boat.getLocation().getX(), boat.getLocation().getY() + 2, boat.getLocation().getZ()); Location throwTo = new Location(boat.getWorld(), p.getLocation().getX(), p.getLocation().getY() + 1, p.getLocation().getZ()); ItemStack newBoat = new ItemStack(Material.BOAT, 1); // Find the direction the boat should move in Vector dir = throwTo.toVector().subtract(boatSpot.toVector()).normalize(); dir = dir.multiply(0.5); Entity newB = boat.getWorld().dropItem(boatSpot, newBoat); newB.setVelocity(dir); boat.remove(); e.setCancelled(true); }
public EntityMinecart(World p_i1713_1_, double p_i1713_2_, double p_i1713_4_, double p_i1713_6_) { this(p_i1713_1_); this.setPosition(p_i1713_2_, p_i1713_4_, p_i1713_6_); this.motionX = 0.0D; this.motionY = 0.0D; this.motionZ = 0.0D; this.prevPosX = p_i1713_2_; this.prevPosY = p_i1713_4_; this.prevPosZ = p_i1713_6_; this.worldObj.getServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleCreateEvent((Vehicle) this.getBukkitEntity())); // CraftBukkit }
public EntityBoat(World p_i1705_1_, double p_i1705_2_, double p_i1705_4_, double p_i1705_6_) { this(p_i1705_1_); this.setPosition(p_i1705_2_, p_i1705_4_ + (double)this.yOffset, p_i1705_6_); this.motionX = 0.0D; this.motionY = 0.0D; this.motionZ = 0.0D; this.prevPosX = p_i1705_2_; this.prevPosY = p_i1705_4_; this.prevPosZ = p_i1705_6_; this.worldObj.getServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleCreateEvent((Vehicle) this.getBukkitEntity())); // CraftBukkit }
public EntityBoat(World world, double d0, double d1, double d2) { this(world); this.setPosition(d0, d1, d2); this.motX = 0.0D; this.motY = 0.0D; this.motZ = 0.0D; this.lastX = d0; this.lastY = d1; this.lastZ = d2; this.world.getServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleCreateEvent((Vehicle) this.getBukkitEntity())); // CraftBukkit }
protected void a(double d0, boolean flag, IBlockData iblockdata, BlockPosition blockposition) { this.aI = this.motY; if (!this.isPassenger()) { if (flag) { if (this.fallDistance > 3.0F) { if (this.aG != EntityBoat.EnumStatus.ON_LAND) { this.fallDistance = 0.0F; return; } this.e(this.fallDistance, 1.0F); if (!this.world.isClientSide && !this.dead) { // CraftBukkit start Vehicle vehicle = (Vehicle) this.getBukkitEntity(); VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, null); this.world.getServer().getPluginManager().callEvent(destroyEvent); if (!destroyEvent.isCancelled()) { this.die(); if (this.world.getGameRules().getBoolean("doEntityDrops")) { int i; for (i = 0; i < 3; ++i) { this.a(new ItemStack(Item.getItemOf(Blocks.PLANKS), 1, this.getType().b()), 0.0F); } for (i = 0; i < 2; ++i) { this.a(Items.STICK, 1, 0.0F); } } } } // CraftBukkit end } this.fallDistance = 0.0F; } else if (this.world.getType((new BlockPosition(this)).down()).getMaterial() != Material.WATER && d0 < 0.0D) { this.fallDistance = (float) ((double) this.fallDistance - d0); } } }
public EntityMinecartAbstract(World world, double d0, double d1, double d2) { this(world); this.setPosition(d0, d1 + (double) this.height, d2); this.motX = 0.0D; this.motY = 0.0D; this.motZ = 0.0D; this.lastX = d0; this.lastY = d1; this.lastZ = d2; this.world.getServer().getPluginManager().callEvent(new org.bukkit.event.vehicle.VehicleCreateEvent((Vehicle) this.getBukkitEntity())); // CraftBukkit }
@EventHandler public void cartRocket(PlayerInteractEvent ev){ if(ev.getPlayer().isInsideVehicle()&&ev.getPlayer().hasPermission("sxw.cartrocket")&&ev.getItem().getTypeId()==280){ Vehicle v=(Vehicle) ev.getPlayer().getVehicle(); v.setVelocity(ev.getPlayer().getLocation().getDirection()); } }
public static Set<String> getTags(Vehicle vehicle) { if (metadataStorage.get(vehicle, "mrtags") != null) { return new HashSet<String>(Arrays.asList(metadataStorage.get(vehicle, "mrtags").split(","))); } else { return new HashSet<String>(); } }