/* * Copyright (c) 2018 univento.eu - All rights reserved * You are not allowed to use, distribute or modify this code */ package eu.univento.lobby.listeners; import eu.univento.core.api.player.CustomPlayer; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.entity.Creature; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityToggleGlideEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; /** * @author joethei * @version 1.0 */ public class FunStuff implements Listener{ @EventHandler public void onMove(PlayerMoveEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if ((p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() == Material.STATIONARY_WATER) && (p.getVehicle() == null) && (p.getGameMode() != GameMode.CREATIVE) && (!p.isFlying())) { p.setGliding(true); } if ((p.getLocation().getBlock().getType() != Material.STATIONARY_WATER) && (p.getLocation().subtract(0.0D, 3.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) && (p.getVehicle() == null)) { p.setGliding(false); } //only for debugging purposes if(p.getLocation().getY() <= 5.0D && p.getLocation().getBlock().getType() == Material.STATIONARY_WATER) { Vector v = p.getLocation().getDirection().multiply(0D).setY(3D); p.setVelocity(v); } } @EventHandler public void onEntityToggleGlideEvent(EntityToggleGlideEvent e) { if(e.getEntity() instanceof Player) { final CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity()); if(p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() != Material.STATIONARY_WATER) { p.setVelocity(new Vector(p.getLocation().getDirection().getX() * 1, 1 * -1.0, p.getLocation().getDirection().getZ() * 0.1)); e.setCancelled(true); } if(p.isSneaking()) { e.setCancelled(true); } } } @EventHandler public void onToogleSneak(PlayerToggleSneakEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(!p.isSneaking()) { p.setGliding(true); } } @EventHandler public void onEntityHit(EntityDamageByEntityEvent e) { if(e.getDamager() instanceof Player && e.getEntity() instanceof Creature) { Creature creature = (Creature) e.getEntity(); CustomPlayer p = CustomPlayer.getPlayer((Player) e.getDamager()); creature.setGlowing(true); creature.setCustomName(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " ยง8hat mir das angetan"); creature.setCustomNameVisible(true); creature.addPotionEffect(new PotionEffect(PotionEffectType.LEVITATION, 60, 5, false)); } } }