84 lines
3.3 KiB
Java
84 lines
3.3 KiB
Java
/*
|
|
* 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));
|
|
|
|
}
|
|
}
|
|
} |