Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.96 KB | None | 0 0
  1. package com.breakmc.aess.features;
  2.  
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.Location;
  5. import org.bukkit.Material;
  6. import org.bukkit.entity.Boat;
  7. import org.bukkit.event.Event;
  8. import org.bukkit.entity.Entity;
  9. import org.bukkit.entity.EntityType;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.block.Action;
  14. import org.bukkit.event.entity.EntityCombustEvent;
  15. import org.bukkit.event.player.PlayerInteractEvent;
  16. import org.bukkit.event.vehicle.VehicleDamageEvent;
  17. import org.bukkit.event.vehicle.VehicleMoveEvent;
  18. import org.bukkit.metadata.FixedMetadataValue;
  19. import org.bukkit.util.Vector;
  20.  
  21. import com.breakmc.aess.Main;
  22.  
  23. public class LavaBoat implements Listener
  24. {
  25.     public Main plugin;
  26.     public LavaBoat(Main instance)
  27.     {  
  28.         plugin = instance;
  29.     }
  30.     @EventHandler
  31.     public void onPlayerPlaceLavaBoat(PlayerInteractEvent e){
  32.         Player player = e.getPlayer();
  33.         if(player.getItemInHand().hasItemMeta()){
  34.         if((e.getAction() == Action.RIGHT_CLICK_BLOCK) && player.getItemInHand().getItemMeta().getDisplayName().equals("�7�lIron Boat")){
  35.             Location loc = e.getClickedBlock().getLocation();
  36.             if(loc.add(0, 1, 0).getBlock().getType().equals(Material.AIR)){
  37.                 e.setUseItemInHand(Event.Result.DENY);
  38.                 player.getInventory().remove(player.getItemInHand());
  39.                 Boat boat = loc.getWorld().spawn(loc, Boat.class);
  40.                 boat.setMetadata("IronBoat", new FixedMetadataValue(plugin, true));
  41.             }
  42.         }
  43.         }
  44.     }
  45.     @EventHandler
  46.     public void onLavaBoatCombust(EntityCombustEvent e)
  47.     {
  48.         Entity entity = e.getEntity();
  49.         if(entity.equals(EntityType.BOAT))
  50.         {
  51.             if(entity.hasMetadata("IronBoat"))
  52.             {
  53.                 e.setCancelled(true);
  54.             }
  55.         }
  56.             if(e.getEntity() instanceof Player)
  57.          {
  58.                 if(entity.getVehicle() instanceof Boat && entity.getVehicle().hasMetadata("IronBoat"))
  59.                 {
  60.                     e.setCancelled(true);
  61.                     entity.setFireTicks(0);
  62.                 }
  63.          }
  64.       }
  65.     @EventHandler
  66.       public void onLavaBoatDamage(VehicleDamageEvent event)
  67.        {
  68.           if(event.getVehicle().equals(EntityType.BOAT))
  69.          {
  70.               Entity entity = event.getVehicle();
  71.               Location loc = entity.getLocation();
  72.               if(entity.hasMetadata("IronBoat"))
  73.               {
  74.               if(loc.subtract(0, 1, 0).getBlock().getType().equals(Material.LAVA))
  75.                 {
  76.                   event.setCancelled(true);
  77.                  }
  78.               else return;
  79.               }
  80.           }
  81.         }
  82.       @EventHandler
  83.       public void onVehicleMove(VehicleMoveEvent e)
  84.         {
  85.  
  86.             if(e.getVehicle() instanceof Boat)
  87.             {
  88.                 if(e.getVehicle().hasMetadata("IronBoat"))
  89.                {
  90.                 Vector vect=e.getVehicle().getVelocity();
  91.                 int y=0;
  92.                 Material mat=e.getVehicle().getLocation().getWorld().getBlockAt(e.getVehicle().getLocation()).getType();
  93.                 if(mat==Material.LAVA||mat==Material.STATIONARY_LAVA)
  94.                 {
  95.                     y=1;
  96.                 }
  97.                 e.getVehicle().setVelocity(new Vector(vect.getX(),y,vect.getZ()));
  98.                }
  99.             }
  100.         }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement