Browse Source

aimbot detection

lakebane-ai
FatBoy-DOTC 2 weeks ago
parent
commit
3e4aad9db9
  1. 4
      src/engine/net/client/ClientConnection.java
  2. 38
      src/engine/util/KeyCloneAudit.java

4
src/engine/net/client/ClientConnection.java

@ -44,6 +44,10 @@ public class ClientConnection extends AbstractConnection { @@ -44,6 +44,10 @@ public class ClientConnection extends AbstractConnection {
public ReentrantLock buyLock = new ReentrantLock();
public boolean desyncDebug = false;
public byte[] lastByteBuffer;
public long lastTargetSwitchTime;
public int lastTargetID;
public int targetSwitchCount;
public int fastTargetSwitchCount;
protected SessionID sessionID = null;
private byte cryptoInitTries = 0;

38
src/engine/util/KeyCloneAudit.java

@ -1,9 +1,13 @@ @@ -1,9 +1,13 @@
package engine.util;
import engine.gameManager.ChatManager;
import engine.gameManager.ConfigManager;
import engine.gameManager.DbManager;
import engine.gameManager.SessionManager;
import engine.net.client.ClientConnection;
import engine.net.client.Protocol;
import engine.net.client.msg.ClientNetMsg;
import engine.net.client.msg.TargetObjectMsg;
import engine.objects.Group;
import engine.objects.PlayerCharacter;
import org.pmw.tinylog.Logger;
@ -30,19 +34,43 @@ public enum KeyCloneAudit { @@ -30,19 +34,43 @@ public enum KeyCloneAudit {
}
public static boolean auditNetMsg(ClientNetMsg msg){
public static boolean auditNetMsg(ClientNetMsg msg) {
boolean valid = true;
if(msg.getProtocolMsg().equals(Protocol.KEEPALIVESERVERCLIENT))
if (msg.getProtocolMsg().equals(Protocol.KEEPALIVESERVERCLIENT))
return true;
Long msgDelay = System.currentTimeMillis() - msg.getOrigin().lastMsgTime;
ClientConnection origin = (ClientConnection) msg.getOrigin();
long now = System.currentTimeMillis();
PlayerCharacter pc = SessionManager.getSession(origin).getPlayerCharacter();
if(msgDelay < 100)
return false;
if (msg.getProtocolMsg().equals(Protocol.SETSELECTEDOBECT)) {
TargetObjectMsg tarMsg = (TargetObjectMsg) msg;
// Calculate time since last target switch
long timeSinceLastTarget = now - origin.lastTargetSwitchTime;
origin.lastTargetSwitchTime = now;
// Check if the target has changed
if (tarMsg.getTargetID() != origin.lastTargetID) {
origin.lastTargetID = tarMsg.getTargetID();
origin.targetSwitchCount++;
// If switching too fast, flag as bot-like behavior
if (timeSinceLastTarget < 300) { // Adjust this threshold if needed
origin.fastTargetSwitchCount++;
} else {
origin.fastTargetSwitchCount = Math.max(0, origin.fastTargetSwitchCount - 1);
}
if (origin.fastTargetSwitchCount > 5) {
ChatManager.chatSystemInfo(pc, "Possible bot detected: Targeting too quickly.");
valid = false;
}
}
}
return valid;
}
}

Loading…
Cancel
Save