@ -1,5 +1,6 @@
				@@ -1,5 +1,6 @@
					 
			
		
	
		
			
				
					package  engine.util ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					import  engine.InterestManagement.WorldGrid ;  
			
		
	
		
			
				
					import  engine.gameManager.ChatManager ;  
			
		
	
		
			
				
					import  engine.gameManager.ConfigManager ;  
			
		
	
		
			
				
					import  engine.gameManager.DbManager ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -10,8 +11,11 @@ import engine.net.client.msg.ClientNetMsg;
				@@ -10,8 +11,11 @@ import engine.net.client.msg.ClientNetMsg;
					 
			
		
	
		
			
				
					import  engine.net.client.msg.TargetObjectMsg ;  
			
		
	
		
			
				
					import  engine.objects.Group ;  
			
		
	
		
			
				
					import  engine.objects.PlayerCharacter ;  
			
		
	
		
			
				
					import  engine.server.MBServerStatics ;  
			
		
	
		
			
				
					import  org.pmw.tinylog.Logger ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					import  java.awt.image.ImageObserver ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					public  enum  KeyCloneAudit  {  
			
		
	
		
			
				
					    KEYCLONEAUDIT ;   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -34,57 +38,42 @@ public enum KeyCloneAudit {
				@@ -34,57 +38,42 @@ public enum KeyCloneAudit {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  static  boolean auditNetMsg ( ClientNetMsg  msg )  {   
			
		
	
		
			
				
					    public  static  void auditNetMsg ( ClientNetMsg  msg )  {   
			
		
	
		
			
				
					        boolean  valid  =  true ;   
			
		
	
		
			
				
					        try  {   
			
		
	
		
			
				
					            if  ( msg . getProtocolMsg ( ) . equals ( Protocol . KEEPALIVESERVERCLIENT ) )   
			
		
	
		
			
				
					            return  true  ;   
			
		
	
		
			
				
					                 return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            ClientConnection  origin  =  ( ClientConnection )  msg . getOrigin ( ) ;   
			
		
	
		
			
				
					            long  now  =  System . currentTimeMillis ( ) ;   
			
		
	
		
			
				
					            PlayerCharacter  pc  =  SessionManager . getSession ( origin ) . getPlayerCharacter ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            if  ( msg . getProtocolMsg ( ) . equals ( Protocol . SETSELECTEDOBECT ) )  {   
			
		
	
		
			
				
					            TargetObjectMsg  tarMsg  =  ( TargetObjectMsg )  msg ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                if  ( System . currentTimeMillis ( )  >  origin . finalStrikeRefresh )  {   
			
		
	
		
			
				
					                    origin . lastStrike  =  System . currentTimeMillis ( ) ;   
			
		
	
		
			
				
					                    origin . strikes  =  0 ;   
			
		
	
		
			
				
					                    origin . finalStrikes  =  0 ;   
			
		
	
		
			
				
					                    origin . finalStrikeRefresh  =  System . currentTimeMillis ( ) ;   
			
		
	
		
			
				
					                    return ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					                // 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 )  {   
			
		
	
		
			
				
					                    valid  =  false ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					        if ( origin . lastStrike  +  2000L  <  System . currentTimeMillis ( ) )  {   
			
		
	
		
			
				
					            if  ( ! valid )  {   
			
		
	
		
			
				
					                if  ( timeSinceLastTarget  <  150 )  {   
			
		
	
		
			
				
					                    origin . strikes + + ;   
			
		
	
		
			
				
					                origin . last Strike  =  System . currentTimeMillis ( ) ;   
			
		
	
		
			
				
					                    origin . finalStrikeRefresh  =  System . currentTimeMillis ( )  +  1000L ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					        } else {   
			
		
	
		
			
				
					            origin . strikes  =  0 ;   
			
		
	
		
			
				
					                if  ( origin . strikes  >  20 )  {   
			
		
	
		
			
				
					                    origin . finalStrikes + + ;   
			
		
	
		
			
				
					                    ChatManager . chatSystemInfo ( pc ,  "Strike Received" ) ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					                if  ( origin . finalStrikes  >  3 )  {   
			
		
	
		
			
				
					                    origin . forceDisconnect ( ) ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if ( origin . strikes  >  10 ) {   
			
		
	
		
			
				
					            //origin.forceDisconnect();
   
			
		
	
		
			
				
					            ChatManager . chatSystemInfo ( pc ,  "Cheater Cheater Pumpkin Eater" ) ;   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					        return  valid ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					}