|  |  | @ -1,9 +1,12 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | package engine.net.client.handlers; |  |  |  | package engine.net.client.handlers; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import engine.exception.MsgSendException; |  |  |  | import engine.exception.MsgSendException; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import engine.gameManager.DbManager; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import engine.math.Vector3fImmutable; | 
			
		
	
		
		
			
				
					
					|  |  |  | import engine.net.client.ClientConnection; |  |  |  | import engine.net.client.ClientConnection; | 
			
		
	
		
		
			
				
					
					|  |  |  | import engine.net.client.msg.ClientNetMsg; |  |  |  | import engine.net.client.msg.ClientNetMsg; | 
			
		
	
		
		
			
				
					
					|  |  |  | import engine.net.client.msg.PetitionReceivedMsg; |  |  |  | import engine.net.client.msg.PetitionReceivedMsg; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.pmw.tinylog.Logger; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | public class PetitionReceivedMsgHandler extends AbstractClientMsgHandler { |  |  |  | public class PetitionReceivedMsgHandler extends AbstractClientMsgHandler { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -13,69 +16,80 @@ public class PetitionReceivedMsgHandler extends AbstractClientMsgHandler { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Override |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |     protected boolean _handleNetMsg(ClientNetMsg msg, ClientConnection origin) throws MsgSendException { |  |  |  |     protected boolean _handleNetMsg(ClientNetMsg msg, ClientConnection origin) throws MsgSendException { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         String originAccount = origin.getAccount().getUname(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         String originCharacter = origin.getPlayerCharacter().getName(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Vector3fImmutable playerLocation = origin.getPlayerCharacter().getLoc(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         String primaryReportType; | 
			
		
	
		
		
			
				
					
					|  |  |  |         switch(((PetitionReceivedMsg) msg).getType()){ |  |  |  |         switch(((PetitionReceivedMsg) msg).getType()){ | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 1: // TYPE_GENERAL_HELP
 |  |  |  |             case 1: // TYPE_GENERAL_HELP
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "GENERAL"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 2: // TYPE_FEEDBACK
 |  |  |  |             case 2: // TYPE_FEEDBACK
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "FEEDBACK"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 3: // TYPE_STUCK
 |  |  |  |             case 3: // TYPE_STUCK
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "STUCK"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 4: // TYPE_HARASSMENT
 |  |  |  |             case 4: // TYPE_HARASSMENT
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "HARASSMENT"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 5: // TYPE_EXPLOIT
 |  |  |  |             case 5: // TYPE_EXPLOIT
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "EXPLOIT"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 6: // TYPE_BUG
 |  |  |  |             case 6: // TYPE_BUG
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "BUG"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 7: // TYPE_GAME_STOPPER
 |  |  |  |             case 7: // TYPE_GAME_STOPPER
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "GAME STOPPER"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 8: // TYPE_TECH_SUPPORT
 |  |  |  |             case 8: // TYPE_TECH_SUPPORT
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                 primaryReportType = "TECH SUPPORT"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             default: // INVALID_TYPE cannot process this
 |  |  |  |             default: // INVALID_TYPE cannot process this
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 primaryReportType = "NONE"; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return false; |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         String subType; | 
			
		
	
		
		
			
				
					
					|  |  |  |             switch (((PetitionReceivedMsg)msg).getSubType()) { |  |  |  |             switch (((PetitionReceivedMsg)msg).getSubType()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 1: // SUBTYPE_EXPLOIT_DUPE
 |  |  |  |                 case 1: // SUBTYPE_EXPLOIT_DUPE
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "DUPE"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 2: // SUBTYPE_EXPLOIT_LEVELING
 |  |  |  |                 case 2: // SUBTYPE_EXPLOIT_LEVELING
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "LEVELLING"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 3: // SUBTYPE_EXPLOIT_SKILL_GAIN
 |  |  |  |                 case 3: // SUBTYPE_EXPLOIT_SKILL_GAIN
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "SKILL GAIN"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 4: // SUBTYPE_EXPLOIT_KILLING
 |  |  |  |                 case 4: // SUBTYPE_EXPLOIT_KILLING
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "KILLING"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 5: // SUBTYPE_EXPLOIT_POLICY
 |  |  |  |                 case 5: // SUBTYPE_EXPLOIT_POLICY
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "POLICY"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 6: // SUBTYPE_EXPLOIT_OTHER
 |  |  |  |                 case 6: // SUBTYPE_EXPLOIT_OTHER
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "OTHER"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 7: // SUBTYPE_TECH_VIDEO
 |  |  |  |                 case 7: // SUBTYPE_TECH_VIDEO
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "VIDEO"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 8: // SUBTYPE_TECH_SOUND
 |  |  |  |                 case 8: // SUBTYPE_TECH_SOUND
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "SOUND"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 9: // SUBTYPE_TECH_NETWORK
 |  |  |  |                 case 9: // SUBTYPE_TECH_NETWORK
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "NETWORK"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 case 10: // SUBTYPE_TECH_OTHER
 |  |  |  |                 case 10: // SUBTYPE_TECH_OTHER
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "OTHER"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 default: // INVALID_SUB_TYPE
 |  |  |  |                 default: // INVALID_SUB_TYPE
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |                     subType = "NONE"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     break; |  |  |  |                     break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             String report = "ACCOUNT: " + originAccount + " CHARACTER: " + originCharacter + " LOCATION: " + playerLocation + " PRIMARY TYPE: " + primaryReportType + " SUB TYPE: " + subType + " MESSAGE: " + ((PetitionReceivedMsg) msg).getMessage(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             Logger.info(report); | 
			
		
	
		
		
			
				
					
					|  |  |  |         return true; |  |  |  |         return true; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private void logBugReport(PetitionReceivedMsg msg){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |