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

59 lines
2.1 KiB
Java

/*
* Copyright (c) 2017 univento.eu - All rights reserved
* You are not allowed to use, distribute or modify this code
*/
package eu.univento.core.antihack.modules;
import eu.univento.commons.player.warn.WarnReason;
import eu.univento.core.Core;
import eu.univento.core.api.player.CustomPlayer;
import org.bukkit.Bukkit;
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.player.PlayerMoveEvent;
import java.util.ArrayList;
public class Criticals implements Listener {
private final ArrayList<CustomPlayer> players = new ArrayList<>();
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
if(e.getDamager() instanceof Player && e.getEntity() instanceof Player) {
CustomPlayer damager = CustomPlayer.getPlayer((Player) e.getDamager());
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity());
if(!players.contains(p)) {
players.add(p);
Bukkit.getScheduler().runTaskLater(Core.getInstance(), () -> players.remove(p), 5L);
}
}
}
@EventHandler
public void onMove(PlayerMoveEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
Bukkit.getScheduler().runTaskLater(Core.getInstance(), () -> {
final double x1 = e.getFrom().getY();
final double x2 = p.getLocation().getY();
double fark = 0.0;
if (x1 > x2) {
fark = x1 - x2;
} else if (x2 > x1) {
fark = x2 - x1;
} else {
fark = 200.0;
}
if (!players.contains(p)) {
return;
}
if (fark == 0.125 || fark == 1.0 || fark == 1.3 || fark == 0.6190840103302007 || fark == 0.4414162352399398 || fark == 200.0) {
//TODO: change to real warn reason
p.warn(WarnReason.SPAM, null, "https://players.univento.eu/" + p.getUniqueId().toString() + "/hacks");
}
}, 6L);
}
}