Package net.crystalyx.bukkit.simplyperms.preventions

Source Code of net.crystalyx.bukkit.simplyperms.preventions.Vehicle

package net.crystalyx.bukkit.simplyperms.preventions;

import net.crystalyx.bukkit.simplyperms.SimplyPlugin;
import net.crystalyx.bukkit.simplyperms.SimplyPrevents;

import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.vehicle.VehicleDestroyEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.event.vehicle.VehicleEntityCollisionEvent;

public class Vehicle extends SimplyPrevents {

  public Vehicle(SimplyPlugin plugin) {
    super(plugin);
  }

  @EventHandler(priority = EventPriority.LOWEST)
  public void vehicleEnter(VehicleEnterEvent event) {
    Entity entered = event.getEntered();
    if (entered instanceof Player) {
      prevent(event, (Player) entered, "vehicle");
    }
  }

  @EventHandler(priority = EventPriority.LOWEST)
  public void vehicleDestroy(VehicleDestroyEvent event) {
    Entity attacker = event.getAttacker();
    if (attacker instanceof Player) {
      prevent(event, (Player) attacker, "vehicle");
    }
  }

  @EventHandler(priority = EventPriority.LOWEST)
  public void vehicleCollision(VehicleEntityCollisionEvent event) {
    Entity collider = event.getEntity();
    if (collider instanceof Player) {
      if (prevent(event, (Player) collider, "vehicle")) {
        event.setCollisionCancelled(true);
        event.setPickupCancelled(true);
      }
    }
  }

  @EventHandler(priority = EventPriority.LOWEST)
  public void vehicle(PlayerInteractEvent event) {
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
      Material clickedMaterial = event.getClickedBlock().getType();
      Player player = event.getPlayer();
      Material materialInHand = player.getItemInHand().getType();
      if (clickedMaterial == Material.RAILS
          || clickedMaterial == Material.POWERED_RAIL
          || clickedMaterial == Material.DETECTOR_RAIL) {
        if (materialInHand == Material.MINECART
            || materialInHand == Material.POWERED_MINECART
            || materialInHand == Material.STORAGE_MINECART) {
          prevent(event, player, "vehicle");
        }
      } else if (materialInHand == Material.BOAT) {
        prevent(event, player, "vehicle");
      }
    }
  }
 
}
TOP

Related Classes of net.crystalyx.bukkit.simplyperms.preventions.Vehicle

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.