mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-10-06 10:27:26 +02:00
Try to make speedhack ignore "cancelled" move events.
This commit is contained in:
parent
0284f5be3f
commit
6a7e7d239f
@ -3,7 +3,7 @@ name: NoCheat
|
||||
author: Evenprime
|
||||
|
||||
main: cc.co.evenprime.bukkit.nocheat.NoCheat
|
||||
version: 1.14b
|
||||
version: 1.14c
|
||||
|
||||
softdepend: [ Permissions, CraftIRC ]
|
||||
|
||||
|
@ -20,6 +20,7 @@ import cc.co.evenprime.bukkit.nocheat.config.NoCheatConfiguration;
|
||||
import cc.co.evenprime.bukkit.nocheat.data.PermissionData;
|
||||
import cc.co.evenprime.bukkit.nocheat.data.SpeedhackData;
|
||||
import cc.co.evenprime.bukkit.nocheat.listeners.SpeedhackPlayerListener;
|
||||
import cc.co.evenprime.bukkit.nocheat.listeners.SpeedhackPlayerMonitor;
|
||||
|
||||
/**
|
||||
* Log if a player sends to many move events in a specific time frame, usually
|
||||
@ -190,8 +191,11 @@ public class SpeedhackCheck extends Check {
|
||||
PluginManager pm = Bukkit.getServer().getPluginManager();
|
||||
|
||||
Listener speedhackPlayerListener = new SpeedhackPlayerListener(this);
|
||||
Listener speedhackPlayerMonitor = new SpeedhackPlayerMonitor(this);
|
||||
|
||||
// Register listeners for speedhack check
|
||||
pm.registerEvent(Event.Type.PLAYER_MOVE, speedhackPlayerListener, Priority.High, plugin);
|
||||
pm.registerEvent(Event.Type.PLAYER_MOVE, speedhackPlayerMonitor, Priority.Monitor, plugin);
|
||||
pm.registerEvent(Event.Type.PLAYER_TELEPORT, speedhackPlayerListener, Priority.Monitor, plugin);
|
||||
|
||||
}
|
||||
@ -200,4 +204,9 @@ public class SpeedhackCheck extends Check {
|
||||
SpeedhackData data = plugin.getDataManager().getSpeedhackData(event.getPlayer());
|
||||
resetData(data, event.getTo());
|
||||
}
|
||||
|
||||
public void teleported(Player player) {
|
||||
SpeedhackData data = plugin.getDataManager().getSpeedhackData(player);
|
||||
resetData(data, player.getLocation());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package cc.co.evenprime.bukkit.nocheat.listeners;
|
||||
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
|
||||
import cc.co.evenprime.bukkit.nocheat.checks.SpeedhackCheck;
|
||||
|
||||
|
||||
public class SpeedhackPlayerMonitor extends PlayerListener {
|
||||
|
||||
private final SpeedhackCheck check;
|
||||
|
||||
public SpeedhackPlayerMonitor(SpeedhackCheck check) {
|
||||
this.check = check;
|
||||
}
|
||||
@Override
|
||||
public void onPlayerMove(PlayerMoveEvent event) {
|
||||
if(event.isCancelled()) {
|
||||
check.teleported(event.getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user