Core/src/main/java/eu/univento/core/antihack/modules/Movement.java

46 lines
1.8 KiB
Java

package eu.univento.core.antihack.modules;
import eu.univento.core.api.player.CustomPlayer;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class Movement implements Listener{
@EventHandler
public void onMove(PlayerMoveEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(p.getGameMode() == GameMode.CREATIVE) return;
if(p.getVehicle() != null) return;
if(p.getAllowFlight()) return;
double distance = e.getTo().distance(e.getFrom());
if(p.getFallDistance() == 0.0F && p.getLocation().getBlock().getRelative(BlockFace.UP).getType() == Material.AIR) {
if(distance > 0.6D && !p.isOnGround()) {
e.setCancelled(true);
p.teleport(e.getFrom());
p.sendMessage("Du hast Fly an");
}
}
if(distance > 0.2D && distance < 0.29D) {
if(p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.WATER) return;
if(p.getLocation().getBlock().getRelative(BlockFace.DOWN).isLiquid()) {
e.setCancelled(true);
p.teleport(e.getFrom());
p.sendMessage("Du hast Jesus an");
}
}
if(p.getFallDistance() == 0.0F && distance > 0.79D && p.isOnGround()) {
e.setCancelled(true);
p.setHealth(0.0D);
p.sendMessage("Du hast NoFall an");
}
if(e.getTo().getY() - e.getFrom().getY() == -0.125 && e.getTo().clone().subtract(0.0, 1.0, 0.0).getBlock().getType().equals(Material.AIR)) {
e.setCancelled(true);
p.teleport(e.getFrom());
p.sendMessage("Du hast Glide an");
}
}
}