Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.helik.abilities;
- import fr.helik.asia.Asia;
- import fr.helik.asia.utils.Kit;
- import java.util.HashMap;
- import java.util.List;
- import org.bukkit.Color;
- import org.bukkit.Material;
- import org.bukkit.Sound;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.PlayerInventory;
- import org.bukkit.inventory.meta.LeatherArmorMeta;
- import org.bukkit.scheduler.BukkitRunnable;
- public class Phantom
- implements Listener
- {
- public Asia plugin;
- HashMap<Player, ItemStack[]> armor = new HashMap();
- HashMap<String, Long> cooldown = new HashMap();
- int time = 60;
- public Phantom(Asia instance) {
- this.plugin = instance;
- }
- private ItemStack colorIn(Material mat) {
- ItemStack armor = new ItemStack(mat);
- armor.setDurability((short)100);
- LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
- meta.setColor(Color.WHITE);
- armor.setItemMeta(meta);
- return armor;
- }
- @EventHandler
- public void onInteract(PlayerInteractEvent event)
- {
- final Player player = event.getPlayer();
- if ((player.getItemInHand().getType().equals(Material.FEATHER)) &&
- (Kit.getKit(player).equals("phantom"))) {
- if (Asia.hasSpawnProtection(player.getLocation()))
- return;
- if (this.cooldown.containsKey(player.getName())) {
- long secondes = ((Long)this.cooldown.get(player.getName()))
- .longValue() /
- 1000L +
- this.time -
- System.currentTimeMillis() / 1000L;
- if (secondes > 0L) {
- player.sendMessage("§cPlease wait " + secondes +
- " seconds before use your kit!");
- return;
- }
- }
- player.setAllowFlight(true);
- player.setFlying(true);
- this.armor.put(player, player.getInventory().getArmorContents());
- player.getInventory().setHelmet(
- new ItemStack(colorIn(Material.LEATHER_HELMET)));
- player.getInventory().setChestplate(
- new ItemStack(colorIn(Material.LEATHER_CHESTPLATE)));
- player.getInventory().setLeggings(
- new ItemStack(colorIn(Material.LEATHER_LEGGINGS)));
- player.getInventory().setBoots(
- new ItemStack(colorIn(Material.LEATHER_BOOTS)));
- player.updateInventory();
- player.playSound(player.getLocation(), Sound.WITHER_DEATH, 1.0F,
- 1.2F);
- List nearby = player.getNearbyEntities(20.0D, 20.0D, 20.0D);
- for (Entity target : nearby) {
- if ((target instanceof Player)) {
- Player tmp = (Player)target;
- tmp.sendMessage("§f§lA phantom approaches...\n§f§lNote: they are not fly hacking, it's part of the kit.");
- }
- }
- this.cooldown.put(player.getName(),
- Long.valueOf(System.currentTimeMillis()));
- new BukkitRunnable() {
- int seconds = 5;
- public void run() {
- this.seconds -= 1;
- if (this.seconds <= 3) {
- player.sendMessage("§c" + this.seconds +
- " seconds of flight remaining!");
- }
- if (this.seconds <= 0) {
- player.setAllowFlight(false);
- player.getInventory()
- .setArmorContents(
- (ItemStack[])Phantom.this.armor
- .remove(player));
- player.playSound(player.getLocation(),
- Sound.WITHER_SPAWN, 1.0F, 1.2F);
- player.setFallDistance(0.7F);
- cancel();
- }
- }
- }
- .runTaskTimer(this.plugin, 0L, 20L);
- }
- }
- @EventHandler
- public void onClick(InventoryClickEvent event) {
- if ((event.getInventory() != null) && (event.getCurrentItem() != null) &&
- ((event.getWhoClicked() instanceof Player))) {
- Player player = (Player)event.getWhoClicked();
- if (this.armor.containsKey(event.getWhoClicked()))
- {
- if (event.getCurrentItem().getType().name()
- .contains("LEATHER_"))
- {
- if ((((LeatherArmorMeta)event.getCurrentItem()
- .getItemMeta()).getColor().equals(Color.WHITE)) &&
- (Kit.getKit(player).equals("phantom")))
- event.setCancelled(true);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement