@ -26,7 +26,7 @@ public enum Protocol {
				@@ -26,7 +26,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    ACTIVATECHARTER ( 0x296C0B22 ,  UseCharterMsg . class ,  null ) , // Use Guild Charter
   
			
		
	
		
			
				
					    ACTIVATENPC ( 0xC9AAE81E ,  ActivateNPCMessage . class ,  ActivateNPCMsgHandler . class ) ,   
			
		
	
		
			
				
					    ACTIVATEPLEDGE ( 0x5A694DC0 ,  SwearInMsg . class ,  SwearInHandler . class ) ,  // Swear In
   
			
		
	
		
			
				
					    ADDFRIEND ( 0xCFA1C787 , AddFriendMessage . class , null ) ,   
			
		
	
		
			
				
					    ADDFRIEND ( 0xCFA1C787 ,   AddFriendMessage . class ,   null ) ,   
			
		
	
		
			
				
					    ALLIANCECHANGE ( 0x0E7D0B57 ,  AllianceChangeMsg . class ,  AllianceChangeMsgHandler . class ) ,  // Remove From Allies/Enemies List
   
			
		
	
		
			
				
					    ALLYENEMYLIST ( 0xAEA443FD ,  AllyEnemyListMsg . class ,  AllyEnemyListMsgHandler . class ) ,   
			
		
	
		
			
				
					    ARCCOMBATMODEATTACKING ( 0xD8B10579 ,  SetCombatModeMsg . class ,  null ) ,  // Attack From Outside Combat Mode
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -79,7 +79,7 @@ public enum Protocol {
				@@ -79,7 +79,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    CLAIMASSET ( 0x948C62CC ,  ClaimAssetMsg . class ,  ClaimAssetMsgHandler . class ) ,  // ClaimAsset
   
			
		
	
		
			
				
					    CLAIMGUILDTREE ( 0xFD1C6442 ,  ClaimGuildTreeMsg . class ,  ClaimGuildTreeMsgHandler . class ) ,   
			
		
	
		
			
				
					    CLIENTADMINCOMMAND ( 0x624EAB5F ,  ClientAdminCommandMsg . class ,  null ) ,     //Admin Command
   
			
		
	
		
			
				
					    CLIENTUPDATEVAULT (   0x66EDBECD ,  UpdateVaultMsg . class ,  null ) ,   
			
		
	
		
			
				
					    CLIENTUPDATEVAULT ( 0x66EDBECD ,  UpdateVaultMsg . class ,  null ) ,   
			
		
	
		
			
				
					    COMBATMODE ( 0xFE4BF353 ,  ToggleCombatMsg . class ,  null ) ,  //Toggle Combat mode
   
			
		
	
		
			
				
					    CONFIRMPROMOTE ( 0x153BB5F9 ,  ConfirmPromoteMsg . class ,  null ) ,   
			
		
	
		
			
				
					    COSTTOOPENBANK ( 0x135BE5E8 ,  AckBankWindowOpenedMsg . class ,  null ) ,  // ACK Bank Window Opened
   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -95,8 +95,8 @@ public enum Protocol {
				@@ -95,8 +95,8 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    EQUIP ( 0x3CB1AF8C ,  TransferItemFromInventoryToEquipMsg . class ,  null ) ,  // Transfer Item from Inventory to Equip
   
			
		
	
		
			
				
					    EXPERIENCE ( 0xC57802A7 ,  GrantExperienceMsg . class ,  null ) ,  //TODO rename once identified
   
			
		
	
		
			
				
					    FORGETOBJECTS ( 0xE307A0E1 ,  UnloadObjectsMsg . class ,  null ) ,  // Unload Objects
   
			
		
	
		
			
				
					    FRIENDACCEPT ( 0xCA297870 , AcceptFriendMsg . class , FriendAcceptHandler . class ) ,   
			
		
	
		
			
				
					    FRIENDDECLINE ( 0xF08FC279 , DeclineFriendMsg . class , FriendDeclineHandler . class ) ,   
			
		
	
		
			
				
					    FRIENDACCEPT ( 0xCA297870 ,   AcceptFriendMsg . class ,   FriendAcceptHandler . class ) ,   
			
		
	
		
			
				
					    FRIENDDECLINE ( 0xF08FC279 ,   DeclineFriendMsg . class ,   FriendDeclineHandler . class ) ,   
			
		
	
		
			
				
					    FURNITURE ( 0xCE7FA503 ,  FurnitureMsg . class ,  FurnitureHandler . class ) ,   
			
		
	
		
			
				
					    GAMESERVERIPRESPONSE ( 0x6C95CF87 ,  GameServerIPResponseMsg . class ,  null ) ,  // Game Server IP Response
   
			
		
	
		
			
				
					    GLOBALCHANNELMESSAGE ( 0x2bf03fd2 ,  null ,  null ) ,   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -109,7 +109,7 @@ public enum Protocol {
				@@ -109,7 +109,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    GUILDMEMBERONLINE ( 0x7B79EB3A ,  GuildEnterWorldMsg . class ,  null ) ,  // Send Enter World Message to Guild
   
			
		
	
		
			
				
					    GUILDRANKCHANGE ( 0x0DEFB21F ,  ChangeRankMsg . class ,  ChangeRankHandler . class ) ,  // Change Rank
   
			
		
	
		
			
				
					    GUILDTREESTATUS ( 0x4B95FB85 ,  GuildTreeStatusMsg . class ,  null ) ,   
			
		
	
		
			
				
					    HIRELINGSERVICE ( 0xD3D93322 , HirelingServiceMsg . class , HirelingServiceMsgHandler . class ) ,   
			
		
	
		
			
				
					    HIRELINGSERVICE ( 0xD3D93322 ,   HirelingServiceMsg . class ,   HirelingServiceMsgHandler . class ) ,   
			
		
	
		
			
				
					    IGNORE ( 0xBD8881EE ,  IgnoreMsg . class ,  null ) ,  //client sent /ignore command
   
			
		
	
		
			
				
					    INITIATETRADEHUDS ( 0x667D29D8 ,  OpenTradeWindowMsg . class ,  null ) ,  // Open Trade Window
   
			
		
	
		
			
				
					    INVITEGROUP ( 0x004A2012 ,  GroupInviteMsg . class ,  GroupInviteHandler . class ) ,  // Send/Receive/Deny Group Invite
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -168,7 +168,7 @@ public enum Protocol {
				@@ -168,7 +168,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    RECOMMENDNATION ( 0x6D4579E9 ,  RecommendNationMsg . class ,  RecommendNationMsgHandler . class ) ,  // Recommend as Ally/Enemy, error
   
			
		
	
		
			
				
					    RECYCLEPOWER ( 0x24033B67 ,  RecyclePowerMsg . class ,  null ) ,  //Unlock power for reUse
   
			
		
	
		
			
				
					    REMOVECHAR ( 0x5D3F9739 ,  DeleteCharacterMsg . class ,  null ) ,  // Delete Character
   
			
		
	
		
			
				
					    REMOVEFRIEND ( 0xE0D5DB42 , RemoveFriendMessage . class , RemoveFriendHandler . class ) ,   
			
		
	
		
			
				
					    REMOVEFRIEND ( 0xE0D5DB42 ,   RemoveFriendMessage . class ,   RemoveFriendHandler . class ) ,   
			
		
	
		
			
				
					    REPAIRBUILDING ( 0xAF8C2560 ,  RepairBuildingMsg . class ,  RepairBuildingMsgHandler . class ) ,   
			
		
	
		
			
				
					    REPAIROBJECT ( 0x782219CE ,  RepairMsg . class ,  null ) ,  //Repair Window Req/Ack, RepairObject item Req/Ack
   
			
		
	
		
			
				
					    REQUESTCONTENTS ( 0xA786B0A2 ,  LootWindowRequestMsg . class ,  null ) ,  // MoveObjectToContainer Window Request
   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -179,7 +179,7 @@ public enum Protocol {
				@@ -179,7 +179,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    REQUESTTOTRADE ( 0x4D84259B ,  TradeRequestMsg . class ,  null ) ,  // Trade Request
   
			
		
	
		
			
				
					    REQUESTTRADECANCEL ( 0xCB0C5735 ,  RejectTradeRequestMsg . class ,  null ) ,  // Reject RequestToTrade
   
			
		
	
		
			
				
					    REQUESTTRADEOK ( 0xFFD29841 ,  AcceptTradeRequestMsg . class ,  null ) ,  // Accept Trade Request
   
			
		
	
		
			
				
					    RESETAFTERDEATH ( 0xFDCBB98F , RespawnMsg . class ,  null ) ,  //Respawn Request/Response
   
			
		
	
		
			
				
					    RESETAFTERDEATH ( 0xFDCBB98F ,   RespawnMsg . class ,  null ) ,  //Respawn Request/Response
   
			
		
	
		
			
				
					    ROTATEMSG ( 0x57F2088E ,  RotateObjectMsg . class ,  null ) ,   
			
		
	
		
			
				
					    SAFEMODE ( 0x9CF3922A ,  SafeModeMsg . class ,  null ) ,  //Tell client they're in safe mode
   
			
		
	
		
			
				
					    SCALEOBJECT ( 0xE2B392D9 ,  null ,  null ) ,  // Adjust scale of object
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -210,7 +210,7 @@ public enum Protocol {
				@@ -210,7 +210,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    TAXCITY ( 0xCD41EAA6 ,  TaxCityMsg . class ,  TaxCityMsgHandler . class ) ,   
			
		
	
		
			
				
					    TAXRESOURCES ( 0x4AD458AF ,  TaxResourcesMsg . class ,  TaxResourcesMsgHandler . class ) ,   
			
		
	
		
			
				
					    TELEPORT ( 0x23E726EA ,  TeleportToPointMsg . class ,  null ) ,  // Teleport to point
   
			
		
	
		
			
				
					    TERRITORYCHANGE ( 0x6B388C8C , TerritoryChangeMessage . class ,  null ) ,  //Hey rich, look what I found? :)
   
			
		
	
		
			
				
					    TERRITORYCHANGE ( 0x6B388C8C ,   TerritoryChangeMessage . class ,  null ) ,  //Hey rich, look what I found? :)
   
			
		
	
		
			
				
					    TOGGLESITSTAND ( 0x624F3C0F ,  ToggleSitStandMsg . class ,  null ) ,  //Toggle Sit/Stand
   
			
		
	
		
			
				
					    TRADEADDGOLD ( 0x654ACB45 ,  AddGoldToTradeWindowMsg . class ,  null ) ,  // Add Gold to Trade Window
   
			
		
	
		
			
				
					    TRADEADDOBJECT ( 0x55D363E9 ,  AddItemToTradeWindowMsg . class ,  null ) ,  // Add an Item to the Trade Window
   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -227,7 +227,7 @@ public enum Protocol {
				@@ -227,7 +227,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    TRANSFERITEMFROMVAULTTOINVENTORY ( 0x0119A64D ,  TransferItemFromVaultToInventoryMsg . class ,  null ) ,  // Transfer Item from Vault to Inventory
   
			
		
	
		
			
				
					    TRANSFERITEMTOBANK ( 0xD48C46FA ,  TransferItemFromInventoryToBankMsg . class ,  null ) ,  // Transfer Item from Inventory to Bank
   
			
		
	
		
			
				
					    UNEQUIP ( 0xC6BFB907 ,  TransferItemFromEquipToInventoryMsg . class ,  null ) ,  // Transfer Item from Equip to Inventory
   
			
		
	
		
			
				
					    UNKNOWN ( 0x238C9259 ,  UnknownMsg . class , null ) ,   
			
		
	
		
			
				
					    UNKNOWN ( 0x238C9259 ,  UnknownMsg . class ,   null ) ,   
			
		
	
		
			
				
					    UPDATECHARORMOB ( 0xB6D78961 ,  null ,  null ) ,   
			
		
	
		
			
				
					    UPDATECLIENTALLIANCES ( 0xF3FEB5D4 ,  null ,  GuildUnknownHandler . class ) ,  //AlliancesMsg
   
			
		
	
		
			
				
					    UPDATECLIENTINVENTORIES ( 0xE66F533D ,  UpdateInventoryMsg . class ,  null ) ,  //Update player inventory
   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -247,14 +247,14 @@ public enum Protocol {
				@@ -247,14 +247,14 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    WEIGHTINVENTORY ( 0xF1B6A85C ,  LootWindowResponseMsg . class ,  null ) ,  // MoveObjectToContainer Window Response
   
			
		
	
		
			
				
					    WHOREQUEST ( 0xF431CCE9 ,  WhoRequestMsg . class ,  null ) ,  // Request /who
   
			
		
	
		
			
				
					    WHORESPONSE ( 0xD7C36568 ,  WhoResponseMsg . class ,  null ) ,  // Response /who
   
			
		
	
		
			
				
						 REQUESTBALLLIST ( 0xE366FF64 , RequestBallListMessage . class , RequestBallListHandler . class ) ,  
			
		
	
		
			
				
						 SENDBALLENTRY ( 0xAC2B5EDC , SendBallEntryMessage . class , SendBallEntryHandler . class ) ,  
			
		
	
		
			
				
						 UNKNOWN1 ( - 263523523 ,  Unknown1Msg . class , null ) ,  
			
		
	
		
			
				
						 DROPGOLD ( 1461654160 , DropGoldMsg . class , null ) ;  
			
		
	
		
			
				
					     REQUESTBALLLIST ( 0xE366FF64 ,   RequestBallListMessage . class ,   RequestBallListHandler . class ) ,  
			
		
	
		
			
				
					     SENDBALLENTRY ( 0xAC2B5EDC ,   SendBallEntryMessage . class ,   SendBallEntryHandler . class ) ,  
			
		
	
		
			
				
					     UNKNOWN1 ( - 263523523 ,  Unknown1Msg . class ,   null ) ,  
			
		
	
		
			
				
					     DROPGOLD ( 1461654160 ,   DropGoldMsg . class ,   null ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  int  opcode ;   
			
		
	
		
			
				
					    private  Class  message ;   
			
		
	
		
			
				
					    private  Class  handlerClass ;   
			
		
	
		
			
				
					    private  final  Class  message ;   
			
		
	
		
			
				
					    private  final  Class  handlerClass ;   
			
		
	
		
			
				
					    public  Constructor  constructor ;   
			
		
	
		
			
				
					    public  AbstractClientMsgHandler  handler ;   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -286,7 +286,7 @@ public enum Protocol {
				@@ -286,7 +286,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    private  static  HashMap < Integer ,  Protocol >  _protocolMsgByOpcode  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    private  static  final  HashMap < Integer ,  Protocol >  _protocolMsgByOpcode  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  static  Protocol  getByOpcode ( int  opcode )  {   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -302,7 +302,7 @@ public enum Protocol {
				@@ -302,7 +302,7 @@ public enum Protocol {
					 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        for  ( Protocol  protocol  :  Protocol . values ( ) )  {   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        	 if  ( _protocolMsgByOpcode . containsKey ( protocol . opcode ) ) {   
			
		
	
		
			
				
					             if  ( _protocolMsgByOpcode . containsKey ( protocol . opcode ) )   {   
			
		
	
		
			
				
					                Logger . error ( "Duplicate opcodes for "  +  protocol . name ( )  +  " and "  +  _protocolMsgByOpcode . get ( protocol . opcode ) . name ( ) ) ;   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					            _protocolMsgByOpcode . put ( protocol . opcode ,  protocol ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -310,21 +310,21 @@ public enum Protocol {
				@@ -310,21 +310,21 @@ public enum Protocol {
					 
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					public  static  int  FindNextValidOpcode ( ByteBufferReader  reader ) {  
			
		
	
		
			
				
					     public  static  int  FindNextValidOpcode ( ByteBufferReader  reader )   {  
			
		
	
		
			
				
					        int  startPos  =  reader . position ( ) ;   
			
		
	
		
			
				
					        int  bytesLeft  =  reader . remaining ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( bytesLeft  <  4 )   
			
		
	
		
			
				
					            return  startPos ;   
			
		
	
		
			
				
					        int  nextPos  =  startPos ;   
			
		
	
		
			
				
					    for  ( int  i  =  1 ;  i <  bytesLeft ;  i + +   ) {   
			
		
	
		
			
				
					         for  ( int  i  =  1 ;  i   <  bytesLeft ;  i + + )   {   
			
		
	
		
			
				
					            reader . position ( nextPos ) ;   
			
		
	
		
			
				
					            if  ( reader . remaining ( )  <  4 )   
			
		
	
		
			
				
					                return  reader . position ( ) ;   
			
		
	
		
			
				
					            int  newOpcode  =  reader . getInt ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            Protocol  foundProtocol  =  Protocol . getByOpcode ( newOpcode ) ;   
			
		
	
		
			
				
					    if  ( foundProtocol . equals ( Protocol . NONE ) ) {   
			
		
	
		
			
				
					             if  ( foundProtocol . equals ( Protocol . NONE ) )   {   
			
		
	
		
			
				
					                nextPos  + =  1 ;   
			
		
	
		
			
				
					                continue ;   
			
		
	
		
			
				
					            }   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -334,5 +334,5 @@ public static int FindNextValidOpcode(ByteBufferReader reader){
				@@ -334,5 +334,5 @@ public static int FindNextValidOpcode(ByteBufferReader reader){
					 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        return  startPos ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					     }  
			
		
	
		
			
				
					}