Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.breakmc.aess.features;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.Boat;
- import org.bukkit.event.Event;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.entity.EntityCombustEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.vehicle.VehicleDamageEvent;
- import org.bukkit.event.vehicle.VehicleMoveEvent;
- import org.bukkit.metadata.FixedMetadataValue;
- import org.bukkit.util.Vector;
- import com.breakmc.aess.Main;
- public class LavaBoat implements Listener
- {
- public Main plugin;
- public LavaBoat(Main instance)
- {
- plugin = instance;
- }
- @EventHandler
- public void onPlayerPlaceLavaBoat(PlayerInteractEvent e){
- Player player = e.getPlayer();
- if(player.getItemInHand().hasItemMeta()){
- if((e.getAction() == Action.RIGHT_CLICK_BLOCK) && player.getItemInHand().getItemMeta().getDisplayName().equals("�7�lIron Boat")){
- Location loc = e.getClickedBlock().getLocation();
- if(loc.add(0, 1, 0).getBlock().getType().equals(Material.AIR)){
- e.setUseItemInHand(Event.Result.DENY);
- player.getInventory().remove(player.getItemInHand());
- Boat boat = loc.getWorld().spawn(loc, Boat.class);
- boat.setMetadata("IronBoat", new FixedMetadataValue(plugin, true));
- }
- }
- }
- }
- @EventHandler
- public void onLavaBoatCombust(EntityCombustEvent e)
- {
- Entity entity = e.getEntity();
- if(entity.equals(EntityType.BOAT))
- {
- if(entity.hasMetadata("IronBoat"))
- {
- e.setCancelled(true);
- }
- }
- if(e.getEntity() instanceof Player)
- {
- if(entity.getVehicle() instanceof Boat && entity.getVehicle().hasMetadata("IronBoat"))
- {
- e.setCancelled(true);
- entity.setFireTicks(0);
- }
- }
- }
- @EventHandler
- public void onLavaBoatDamage(VehicleDamageEvent event)
- {
- if(event.getVehicle().equals(EntityType.BOAT))
- {
- Entity entity = event.getVehicle();
- Location loc = entity.getLocation();
- if(entity.hasMetadata("IronBoat"))
- {
- if(loc.subtract(0, 1, 0).getBlock().getType().equals(Material.LAVA))
- {
- event.setCancelled(true);
- }
- else return;
- }
- }
- }
- @EventHandler
- public void onVehicleMove(VehicleMoveEvent e)
- {
- if(e.getVehicle() instanceof Boat)
- {
- if(e.getVehicle().hasMetadata("IronBoat"))
- {
- Vector vect=e.getVehicle().getVelocity();
- int y=0;
- Material mat=e.getVehicle().getLocation().getWorld().getBlockAt(e.getVehicle().getLocation()).getType();
- if(mat==Material.LAVA||mat==Material.STATIONARY_LAVA)
- {
- y=1;
- }
- e.getVehicle().setVelocity(new Vector(vect.getX(),y,vect.getZ()));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement