network message pooling across all categories
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good

This commit is contained in:
austin 2025-03-29 16:26:20 -04:00
parent c7dc9ef07d
commit 08d21eb2a9
15 changed files with 346 additions and 280 deletions

View File

@ -167,6 +167,7 @@ public class ClientNetworking implements Runnable {
//create parser
parser = new NetworkParser(inputStream,outputStream);
parser.getMessagePool().setAlwaysAllocate(true);

View File

@ -115,9 +115,10 @@ public class AuthMessage extends NetworkMessage {
/**
* Parses a message of type AuthRequest
*/
public static AuthMessage parseAuthRequestMessage(CircularByteBuffer byteBuffer){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHREQUEST);
stripPacketHeader(byteBuffer);
public static AuthMessage parseAuthRequestMessage(CircularByteBuffer byteBuffer, MessagePool pool){
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
rVal.messageType = AuthMessageType.AUTHREQUEST;
AuthMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -168,9 +169,10 @@ public class AuthMessage extends NetworkMessage {
/**
* Parses a message of type AuthDetails
*/
public static AuthMessage parseAuthDetailsMessage(CircularByteBuffer byteBuffer){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHDETAILS);
stripPacketHeader(byteBuffer);
public static AuthMessage parseAuthDetailsMessage(CircularByteBuffer byteBuffer, MessagePool pool){
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
rVal.messageType = AuthMessageType.AUTHDETAILS;
AuthMessage.stripPacketHeader(byteBuffer);
rVal.setuser(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
rVal.setpass(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
@ -190,9 +192,10 @@ public class AuthMessage extends NetworkMessage {
/**
* Parses a message of type AuthSuccess
*/
public static AuthMessage parseAuthSuccessMessage(CircularByteBuffer byteBuffer){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHSUCCESS);
stripPacketHeader(byteBuffer);
public static AuthMessage parseAuthSuccessMessage(CircularByteBuffer byteBuffer, MessagePool pool){
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
rVal.messageType = AuthMessageType.AUTHSUCCESS;
AuthMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -208,9 +211,10 @@ public class AuthMessage extends NetworkMessage {
/**
* Parses a message of type AuthFailure
*/
public static AuthMessage parseAuthFailureMessage(CircularByteBuffer byteBuffer){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHFAILURE);
stripPacketHeader(byteBuffer);
public static AuthMessage parseAuthFailureMessage(CircularByteBuffer byteBuffer, MessagePool pool){
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
rVal.messageType = AuthMessageType.AUTHFAILURE;
AuthMessage.stripPacketHeader(byteBuffer);
return rVal;
}

View File

@ -116,9 +116,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type RequestCharacterList
*/
public static CharacterMessage parseRequestCharacterListMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.REQUESTCHARACTERLIST);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseRequestCharacterListMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.REQUESTCHARACTERLIST;
CharacterMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -156,9 +157,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type ResponseCharacterList
*/
public static CharacterMessage parseResponseCharacterListMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSECHARACTERLIST);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseResponseCharacterListMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.RESPONSECHARACTERLIST;
CharacterMessage.stripPacketHeader(byteBuffer);
rVal.setdata(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}
@ -198,9 +200,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type RequestCreateCharacter
*/
public static CharacterMessage parseRequestCreateCharacterMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.REQUESTCREATECHARACTER);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseRequestCreateCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.REQUESTCREATECHARACTER;
CharacterMessage.stripPacketHeader(byteBuffer);
rVal.setdata(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}
@ -218,9 +221,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type ResponseCreateCharacterSuccess
*/
public static CharacterMessage parseResponseCreateCharacterSuccessMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSECREATECHARACTERSUCCESS);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseResponseCreateCharacterSuccessMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.RESPONSECREATECHARACTERSUCCESS;
CharacterMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -236,9 +240,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type ResponseCreateCharacterFailure
*/
public static CharacterMessage parseResponseCreateCharacterFailureMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSECREATECHARACTERFAILURE);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseResponseCreateCharacterFailureMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.RESPONSECREATECHARACTERFAILURE;
CharacterMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -276,9 +281,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type RequestSpawnCharacter
*/
public static CharacterMessage parseRequestSpawnCharacterMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.REQUESTSPAWNCHARACTER);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseRequestSpawnCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.REQUESTSPAWNCHARACTER;
CharacterMessage.stripPacketHeader(byteBuffer);
rVal.setdata(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}
@ -318,9 +324,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type ResponseSpawnCharacter
*/
public static CharacterMessage parseResponseSpawnCharacterMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSESPAWNCHARACTER);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseResponseSpawnCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.RESPONSESPAWNCHARACTER;
CharacterMessage.stripPacketHeader(byteBuffer);
rVal.setdata(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}
@ -338,9 +345,10 @@ public class CharacterMessage extends NetworkMessage {
/**
* Parses a message of type EditorSwap
*/
public static CharacterMessage parseEditorSwapMessage(CircularByteBuffer byteBuffer){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.EDITORSWAP);
stripPacketHeader(byteBuffer);
public static CharacterMessage parseEditorSwapMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
rVal.messageType = CharacterMessageType.EDITORSWAP;
CharacterMessage.stripPacketHeader(byteBuffer);
return rVal;
}

View File

@ -297,9 +297,10 @@ public class CombatMessage extends NetworkMessage {
/**
* Parses a message of type serverReportHitboxCollision
*/
public static CombatMessage parseserverReportHitboxCollisionMessage(CircularByteBuffer byteBuffer){
CombatMessage rVal = new CombatMessage(CombatMessageType.SERVERREPORTHITBOXCOLLISION);
stripPacketHeader(byteBuffer);
public static CombatMessage parseserverReportHitboxCollisionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
CombatMessage rVal = (CombatMessage)pool.get(MessageType.COMBAT_MESSAGE);
rVal.messageType = CombatMessageType.SERVERREPORTHITBOXCOLLISION;
CombatMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setreceiverEntityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));

View File

@ -698,7 +698,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parseCreateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.CREATE;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setentityCategory(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setentitySubtype(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
@ -739,7 +739,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parsemoveUpdateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.MOVEUPDATE;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));
rVal.setpositionX(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
@ -782,7 +782,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parseattackUpdateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.ATTACKUPDATE;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));
rVal.setpositionX(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
@ -821,7 +821,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parsestartAttackMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.STARTATTACK;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -840,7 +840,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parseKillMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.KILL;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
@ -863,7 +863,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parseDestroyMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.DESTROY;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
}
@ -884,7 +884,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parsesetPropertyMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.SETPROPERTY;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));
rVal.setpropertyType(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -939,7 +939,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parseattachEntityToEntityMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.ATTACHENTITYTOENTITY;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbone(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
rVal.settargetID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -964,7 +964,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parseupdateEntityViewDirMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.UPDATEENTITYVIEWDIR;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));
rVal.setpropertyType(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -993,7 +993,7 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage parsesyncPhysicsMessage(CircularByteBuffer byteBuffer, MessagePool pool){
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
rVal.messageType = EntityMessageType.SYNCPHYSICS;
stripPacketHeader(byteBuffer);
EntityMessage.stripPacketHeader(byteBuffer);
rVal.setentityID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settime(ByteStreamUtils.popLongFromByteQueue(byteBuffer));
rVal.setpositionX(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));

View File

@ -337,9 +337,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type addItemToInventory
*/
public static InventoryMessage parseaddItemToInventoryMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.ADDITEMTOINVENTORY);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseaddItemToInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.ADDITEMTOINVENTORY;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setitemTemplate(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
@ -359,9 +360,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type removeItemFromInventory
*/
public static InventoryMessage parseremoveItemFromInventoryMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.REMOVEITEMFROMINVENTORY);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseremoveItemFromInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.REMOVEITEMFROMINVENTORY;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
}
@ -404,9 +406,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientRequestEquipItem
*/
public static InventoryMessage parseclientRequestEquipItemMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTEQUIPITEM);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientRequestEquipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTREQUESTEQUIPITEM;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setequipPointId(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
@ -454,9 +457,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type serverCommandMoveItemContainer
*/
public static InventoryMessage parseserverCommandMoveItemContainerMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.SERVERCOMMANDMOVEITEMCONTAINER);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseserverCommandMoveItemContainerMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.SERVERCOMMANDMOVEITEMCONTAINER;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setcontainerType(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setequipPointId(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
@ -522,9 +526,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type serverCommandEquipItem
*/
public static InventoryMessage parseserverCommandEquipItemMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.SERVERCOMMANDEQUIPITEM);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseserverCommandEquipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.SERVERCOMMANDEQUIPITEM;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setequipperId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setcontainerType(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setequipPointId(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
@ -578,9 +583,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type serverCommandUnequipItem
*/
public static InventoryMessage parseserverCommandUnequipItemMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.SERVERCOMMANDUNEQUIPITEM);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseserverCommandUnequipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.SERVERCOMMANDUNEQUIPITEM;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setequipperId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setcontainerType(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setequipPointId(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
@ -624,9 +630,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientRequestUnequipItem
*/
public static InventoryMessage parseclientRequestUnequipItemMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTUNEQUIPITEM);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientRequestUnequipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTREQUESTUNEQUIPITEM;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setequipPointId(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}
@ -644,9 +651,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientRequestAddToolbar
*/
public static InventoryMessage parseclientRequestAddToolbarMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTADDTOOLBAR);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientRequestAddToolbarMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTREQUESTADDTOOLBAR;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.settoolbarId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
@ -666,9 +674,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientRequestAddNatural
*/
public static InventoryMessage parseclientRequestAddNaturalMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTADDNATURAL);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientRequestAddNaturalMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTREQUESTADDNATURAL;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
}
@ -686,9 +695,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientUpdateToolbar
*/
public static InventoryMessage parseclientUpdateToolbarMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTUPDATETOOLBAR);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientUpdateToolbarMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTUPDATETOOLBAR;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.settoolbarId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
}
@ -743,9 +753,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientRequestPerformItemAction
*/
public static InventoryMessage parseclientRequestPerformItemActionMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTPERFORMITEMACTION);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientRequestPerformItemActionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTREQUESTPERFORMITEMACTION;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setequipPointId(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
rVal.setitemActionCode(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setitemActionCodeState(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -773,9 +784,10 @@ public class InventoryMessage extends NetworkMessage {
/**
* Parses a message of type clientRequestCraft
*/
public static InventoryMessage parseclientRequestCraftMessage(CircularByteBuffer byteBuffer){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTCRAFT);
stripPacketHeader(byteBuffer);
public static InventoryMessage parseclientRequestCraftMessage(CircularByteBuffer byteBuffer, MessagePool pool){
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
rVal.messageType = InventoryMessageType.CLIENTREQUESTCRAFT;
InventoryMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setstationId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setrecipeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));

View File

@ -86,9 +86,10 @@ public class LoreMessage extends NetworkMessage {
/**
* Parses a message of type RequestRaces
*/
public static LoreMessage parseRequestRacesMessage(CircularByteBuffer byteBuffer){
LoreMessage rVal = new LoreMessage(LoreMessageType.REQUESTRACES);
stripPacketHeader(byteBuffer);
public static LoreMessage parseRequestRacesMessage(CircularByteBuffer byteBuffer, MessagePool pool){
LoreMessage rVal = (LoreMessage)pool.get(MessageType.LORE_MESSAGE);
rVal.messageType = LoreMessageType.REQUESTRACES;
LoreMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -126,9 +127,10 @@ public class LoreMessage extends NetworkMessage {
/**
* Parses a message of type ResponseRaces
*/
public static LoreMessage parseResponseRacesMessage(CircularByteBuffer byteBuffer){
LoreMessage rVal = new LoreMessage(LoreMessageType.RESPONSERACES);
stripPacketHeader(byteBuffer);
public static LoreMessage parseResponseRacesMessage(CircularByteBuffer byteBuffer, MessagePool pool){
LoreMessage rVal = (LoreMessage)pool.get(MessageType.LORE_MESSAGE);
rVal.messageType = LoreMessageType.RESPONSERACES;
LoreMessage.stripPacketHeader(byteBuffer);
rVal.setdata(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}

View File

@ -1,5 +1,6 @@
package electrosphere.net.parser.net.message;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.locks.ReentrantLock;
@ -12,54 +13,59 @@ import electrosphere.net.parser.net.message.NetworkMessage.MessageType;
public class MessagePool {
/**
* Pools auth messages
*/
List<NetworkMessage> authMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools character messages
*/
List<NetworkMessage> characterMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools combat messages
*/
List<NetworkMessage> combatMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools entity messages
* Pools Entity messages
*/
List<NetworkMessage> entityMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools inventory messages
*/
List<NetworkMessage> inventoryMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools lore messages
* Pools Lore messages
*/
List<NetworkMessage> loreMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools player messages
* Pools Player messages
*/
List<NetworkMessage> playerMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools server messages
* Pools Terrain messages
*/
List<NetworkMessage> terrainMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools Server messages
*/
List<NetworkMessage> serverMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools synchronization messages
* Pools Auth messages
*/
List<NetworkMessage> authMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools Character messages
*/
List<NetworkMessage> characterMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools Inventory messages
*/
List<NetworkMessage> inventoryMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools Synchronization messages
*/
List<NetworkMessage> synchronizationMessagePool = new LinkedList<NetworkMessage>();
/**
* Pools terrain messages
* Pools Combat messages
*/
List<NetworkMessage> terrainMessagePool = new LinkedList<NetworkMessage>();
List<NetworkMessage> combatMessagePool = new LinkedList<NetworkMessage>();
/**
* Controls whether the pool should always allocate or not
*/
boolean alwaysAllocate = false;
/**
* Lock for thread-safeing operations
@ -67,72 +73,72 @@ public class MessagePool {
ReentrantLock lock = new ReentrantLock();
/**
* Gets a network message from the pool. Allocates if no free one is available
* Gets a network message from the pool. Allocates if no free one is available.
* @param type The type of the message
* @return
* @return A network message of the requested type
*/
public NetworkMessage get(MessageType type){
NetworkMessage rVal = null;
lock.lock();
if(type == MessageType.AUTH_MESSAGE){
if(authMessagePool.size() > 0){
rVal = authMessagePool.remove(0);
} else {
rVal = new AuthMessage();
}
} else if(type == MessageType.CHARACTER_MESSAGE){
if(characterMessagePool.size() > 0){
rVal = characterMessagePool.remove(0);
} else {
rVal = new CharacterMessage();
}
} else if(type == MessageType.COMBAT_MESSAGE){
if(combatMessagePool.size() > 0){
rVal = combatMessagePool.remove(0);
} else {
rVal = new CombatMessage();
}
} else if(type == MessageType.ENTITY_MESSAGE){
if(entityMessagePool.size() > 0){
if(type == MessageType.ENTITY_MESSAGE){
if(!alwaysAllocate && entityMessagePool.size() > 0){
rVal = entityMessagePool.remove(0);
} else {
rVal = new EntityMessage();
}
} else if(type == MessageType.INVENTORY_MESSAGE){
if(inventoryMessagePool.size() > 0){
rVal = inventoryMessagePool.remove(0);
} else {
rVal = new InventoryMessage();
}
} else if(type == MessageType.LORE_MESSAGE){
if(loreMessagePool.size() > 0){
if(!alwaysAllocate && loreMessagePool.size() > 0){
rVal = loreMessagePool.remove(0);
} else {
rVal = new LoreMessage();
}
} else if(type == MessageType.PLAYER_MESSAGE){
if(playerMessagePool.size() > 0){
if(!alwaysAllocate && playerMessagePool.size() > 0){
rVal = playerMessagePool.remove(0);
} else {
rVal = new PlayerMessage();
}
} else if(type == MessageType.TERRAIN_MESSAGE){
if(!alwaysAllocate && terrainMessagePool.size() > 0){
rVal = terrainMessagePool.remove(0);
} else {
rVal = new TerrainMessage();
}
} else if(type == MessageType.SERVER_MESSAGE){
if(serverMessagePool.size() > 0){
if(!alwaysAllocate && serverMessagePool.size() > 0){
rVal = serverMessagePool.remove(0);
} else {
rVal = new ServerMessage();
}
} else if(type == MessageType.AUTH_MESSAGE){
if(!alwaysAllocate && authMessagePool.size() > 0){
rVal = authMessagePool.remove(0);
} else {
rVal = new AuthMessage();
}
} else if(type == MessageType.CHARACTER_MESSAGE){
if(!alwaysAllocate && characterMessagePool.size() > 0){
rVal = characterMessagePool.remove(0);
} else {
rVal = new CharacterMessage();
}
} else if(type == MessageType.INVENTORY_MESSAGE){
if(!alwaysAllocate && inventoryMessagePool.size() > 0){
rVal = inventoryMessagePool.remove(0);
} else {
rVal = new InventoryMessage();
}
} else if(type == MessageType.SYNCHRONIZATION_MESSAGE){
if(synchronizationMessagePool.size() > 0){
if(!alwaysAllocate && synchronizationMessagePool.size() > 0){
rVal = synchronizationMessagePool.remove(0);
} else {
rVal = new SynchronizationMessage();
}
} else if(type == MessageType.TERRAIN_MESSAGE){
if(terrainMessagePool.size() > 0){
rVal = terrainMessagePool.remove(0);
} else if(type == MessageType.COMBAT_MESSAGE){
if(!alwaysAllocate && combatMessagePool.size() > 0){
rVal = combatMessagePool.remove(0);
} else {
rVal = new TerrainMessage();
rVal = new CombatMessage();
}
} else {
throw new Error("Unsupported message type! " + type);
@ -147,30 +153,38 @@ public class MessagePool {
*/
public void release(NetworkMessage message){
lock.lock();
if(message instanceof AuthMessage){
authMessagePool.add(message);
} else if(message instanceof CharacterMessage){
characterMessagePool.add(message);
} else if(message instanceof CombatMessage){
combatMessagePool.add(message);
} else if(message instanceof EntityMessage){
if(message instanceof EntityMessage){
entityMessagePool.add(message);
} else if(message instanceof InventoryMessage){
inventoryMessagePool.add(message);
} else if(message instanceof LoreMessage){
loreMessagePool.add(message);
} else if(message instanceof PlayerMessage){
playerMessagePool.add(message);
} else if(message instanceof ServerMessage){
serverMessagePool.add(message);
} else if(message instanceof SynchronizationMessage){
synchronizationMessagePool.add(message);
} else if(message instanceof TerrainMessage){
terrainMessagePool.add(message);
} else if(message instanceof ServerMessage){
serverMessagePool.add(message);
} else if(message instanceof AuthMessage){
authMessagePool.add(message);
} else if(message instanceof CharacterMessage){
characterMessagePool.add(message);
} else if(message instanceof InventoryMessage){
inventoryMessagePool.add(message);
} else if(message instanceof SynchronizationMessage){
synchronizationMessagePool.add(message);
} else if(message instanceof CombatMessage){
combatMessagePool.add(message);
} else {
throw new Error("Unsupported message type! " + message.getClass());
}
lock.unlock();
}
/**
* Sets whether the pool should always allocate or try to pool
* @param alwaysAllocate true to always allocate a new message, false enable message pooling
*/
public void setAlwaysAllocate(boolean alwaysAllocate){
this.alwaysAllocate = alwaysAllocate;
}
}

View File

@ -127,12 +127,12 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.LORE_MESSAGE_TYPE_REQUESTRACES:
if(LoreMessage.canParseMessage(byteBuffer,secondByte)){
rVal = LoreMessage.parseRequestRacesMessage(byteBuffer);
rVal = LoreMessage.parseRequestRacesMessage(byteBuffer,pool);
}
break;
case TypeBytes.LORE_MESSAGE_TYPE_RESPONSERACES:
if(LoreMessage.canParseMessage(byteBuffer,secondByte)){
rVal = LoreMessage.parseResponseRacesMessage(byteBuffer);
rVal = LoreMessage.parseResponseRacesMessage(byteBuffer,pool);
}
break;
}
@ -142,12 +142,12 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.PLAYER_MESSAGE_TYPE_SET_ID:
if(PlayerMessage.canParseMessage(byteBuffer,secondByte)){
rVal = PlayerMessage.parseSet_IDMessage(byteBuffer);
rVal = PlayerMessage.parseSet_IDMessage(byteBuffer,pool);
}
break;
case TypeBytes.PLAYER_MESSAGE_TYPE_SETINITIALDISCRETEPOSITION:
if(PlayerMessage.canParseMessage(byteBuffer,secondByte)){
rVal = PlayerMessage.parseSetInitialDiscretePositionMessage(byteBuffer);
rVal = PlayerMessage.parseSetInitialDiscretePositionMessage(byteBuffer,pool);
}
break;
}
@ -242,12 +242,12 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.SERVER_MESSAGE_TYPE_PING:
if(ServerMessage.canParseMessage(byteBuffer,secondByte)){
rVal = ServerMessage.parsePingMessage(byteBuffer);
rVal = ServerMessage.parsePingMessage(byteBuffer,pool);
}
break;
case TypeBytes.SERVER_MESSAGE_TYPE_PONG:
if(ServerMessage.canParseMessage(byteBuffer,secondByte)){
rVal = ServerMessage.parsePongMessage(byteBuffer);
rVal = ServerMessage.parsePongMessage(byteBuffer,pool);
}
break;
}
@ -257,22 +257,22 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHREQUEST:
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
rVal = AuthMessage.parseAuthRequestMessage(byteBuffer);
rVal = AuthMessage.parseAuthRequestMessage(byteBuffer,pool);
}
break;
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHDETAILS:
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
rVal = AuthMessage.parseAuthDetailsMessage(byteBuffer);
rVal = AuthMessage.parseAuthDetailsMessage(byteBuffer,pool);
}
break;
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHSUCCESS:
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
rVal = AuthMessage.parseAuthSuccessMessage(byteBuffer);
rVal = AuthMessage.parseAuthSuccessMessage(byteBuffer,pool);
}
break;
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHFAILURE:
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
rVal = AuthMessage.parseAuthFailureMessage(byteBuffer);
rVal = AuthMessage.parseAuthFailureMessage(byteBuffer,pool);
}
break;
}
@ -282,42 +282,42 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTCHARACTERLIST:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseRequestCharacterListMessage(byteBuffer);
rVal = CharacterMessage.parseRequestCharacterListMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECHARACTERLIST:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseResponseCharacterListMessage(byteBuffer);
rVal = CharacterMessage.parseResponseCharacterListMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTCREATECHARACTER:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseRequestCreateCharacterMessage(byteBuffer);
rVal = CharacterMessage.parseRequestCreateCharacterMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECREATECHARACTERSUCCESS:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseResponseCreateCharacterSuccessMessage(byteBuffer);
rVal = CharacterMessage.parseResponseCreateCharacterSuccessMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECREATECHARACTERFAILURE:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseResponseCreateCharacterFailureMessage(byteBuffer);
rVal = CharacterMessage.parseResponseCreateCharacterFailureMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTSPAWNCHARACTER:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseRequestSpawnCharacterMessage(byteBuffer);
rVal = CharacterMessage.parseRequestSpawnCharacterMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSESPAWNCHARACTER:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseResponseSpawnCharacterMessage(byteBuffer);
rVal = CharacterMessage.parseResponseSpawnCharacterMessage(byteBuffer,pool);
}
break;
case TypeBytes.CHARACTER_MESSAGE_TYPE_EDITORSWAP:
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CharacterMessage.parseEditorSwapMessage(byteBuffer);
rVal = CharacterMessage.parseEditorSwapMessage(byteBuffer,pool);
}
break;
}
@ -327,62 +327,62 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.INVENTORY_MESSAGE_TYPE_ADDITEMTOINVENTORY:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseaddItemToInventoryMessage(byteBuffer);
rVal = InventoryMessage.parseaddItemToInventoryMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_REMOVEITEMFROMINVENTORY:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseremoveItemFromInventoryMessage(byteBuffer);
rVal = InventoryMessage.parseremoveItemFromInventoryMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTEQUIPITEM:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientRequestEquipItemMessage(byteBuffer);
rVal = InventoryMessage.parseclientRequestEquipItemMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDMOVEITEMCONTAINER:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseserverCommandMoveItemContainerMessage(byteBuffer);
rVal = InventoryMessage.parseserverCommandMoveItemContainerMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDEQUIPITEM:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseserverCommandEquipItemMessage(byteBuffer);
rVal = InventoryMessage.parseserverCommandEquipItemMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDUNEQUIPITEM:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseserverCommandUnequipItemMessage(byteBuffer);
rVal = InventoryMessage.parseserverCommandUnequipItemMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTUNEQUIPITEM:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientRequestUnequipItemMessage(byteBuffer);
rVal = InventoryMessage.parseclientRequestUnequipItemMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTADDTOOLBAR:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientRequestAddToolbarMessage(byteBuffer);
rVal = InventoryMessage.parseclientRequestAddToolbarMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTADDNATURAL:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientRequestAddNaturalMessage(byteBuffer);
rVal = InventoryMessage.parseclientRequestAddNaturalMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTUPDATETOOLBAR:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientUpdateToolbarMessage(byteBuffer);
rVal = InventoryMessage.parseclientUpdateToolbarMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTPERFORMITEMACTION:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientRequestPerformItemActionMessage(byteBuffer);
rVal = InventoryMessage.parseclientRequestPerformItemActionMessage(byteBuffer,pool);
}
break;
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTCRAFT:
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
rVal = InventoryMessage.parseclientRequestCraftMessage(byteBuffer);
rVal = InventoryMessage.parseclientRequestCraftMessage(byteBuffer,pool);
}
break;
}
@ -392,57 +392,57 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTSTATE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseUpdateClientStateMessage(byteBuffer);
rVal = SynchronizationMessage.parseUpdateClientStateMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTSTRINGSTATE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseUpdateClientStringStateMessage(byteBuffer);
rVal = SynchronizationMessage.parseUpdateClientStringStateMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTINTSTATE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseUpdateClientIntStateMessage(byteBuffer);
rVal = SynchronizationMessage.parseUpdateClientIntStateMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTLONGSTATE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseUpdateClientLongStateMessage(byteBuffer);
rVal = SynchronizationMessage.parseUpdateClientLongStateMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTFLOATSTATE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseUpdateClientFloatStateMessage(byteBuffer);
rVal = SynchronizationMessage.parseUpdateClientFloatStateMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTDOUBLESTATE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseUpdateClientDoubleStateMessage(byteBuffer);
rVal = SynchronizationMessage.parseUpdateClientDoubleStateMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_CLIENTREQUESTBTREEACTION:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseClientRequestBTreeActionMessage(byteBuffer);
rVal = SynchronizationMessage.parseClientRequestBTreeActionMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_SERVERNOTIFYBTREETRANSITION:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseServerNotifyBTreeTransitionMessage(byteBuffer);
rVal = SynchronizationMessage.parseServerNotifyBTreeTransitionMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_ATTACHTREE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseAttachTreeMessage(byteBuffer);
rVal = SynchronizationMessage.parseAttachTreeMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_DETATCHTREE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseDetatchTreeMessage(byteBuffer);
rVal = SynchronizationMessage.parseDetatchTreeMessage(byteBuffer,pool);
}
break;
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_LOADSCENE:
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
rVal = SynchronizationMessage.parseLoadSceneMessage(byteBuffer);
rVal = SynchronizationMessage.parseLoadSceneMessage(byteBuffer,pool);
}
break;
}
@ -452,7 +452,7 @@ public abstract class NetworkMessage {
switch(secondByte){
case TypeBytes.COMBAT_MESSAGE_TYPE_SERVERREPORTHITBOXCOLLISION:
if(CombatMessage.canParseMessage(byteBuffer,secondByte)){
rVal = CombatMessage.parseserverReportHitboxCollisionMessage(byteBuffer);
rVal = CombatMessage.parseserverReportHitboxCollisionMessage(byteBuffer,pool);
}
break;
}

View File

@ -132,9 +132,10 @@ public class PlayerMessage extends NetworkMessage {
/**
* Parses a message of type Set_ID
*/
public static PlayerMessage parseSet_IDMessage(CircularByteBuffer byteBuffer){
PlayerMessage rVal = new PlayerMessage(PlayerMessageType.SET_ID);
stripPacketHeader(byteBuffer);
public static PlayerMessage parseSet_IDMessage(CircularByteBuffer byteBuffer, MessagePool pool){
PlayerMessage rVal = (PlayerMessage)pool.get(MessageType.PLAYER_MESSAGE);
rVal.messageType = PlayerMessageType.SET_ID;
PlayerMessage.stripPacketHeader(byteBuffer);
rVal.setplayerID(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
}
@ -152,9 +153,10 @@ public class PlayerMessage extends NetworkMessage {
/**
* Parses a message of type SetInitialDiscretePosition
*/
public static PlayerMessage parseSetInitialDiscretePositionMessage(CircularByteBuffer byteBuffer){
PlayerMessage rVal = new PlayerMessage(PlayerMessageType.SETINITIALDISCRETEPOSITION);
stripPacketHeader(byteBuffer);
public static PlayerMessage parseSetInitialDiscretePositionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
PlayerMessage rVal = (PlayerMessage)pool.get(MessageType.PLAYER_MESSAGE);
rVal.messageType = PlayerMessageType.SETINITIALDISCRETEPOSITION;
PlayerMessage.stripPacketHeader(byteBuffer);
rVal.setinitialDiscretePositionX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setinitialDiscretePositionY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setinitialDiscretePositionZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));

View File

@ -71,9 +71,10 @@ public class ServerMessage extends NetworkMessage {
/**
* Parses a message of type Ping
*/
public static ServerMessage parsePingMessage(CircularByteBuffer byteBuffer){
ServerMessage rVal = new ServerMessage(ServerMessageType.PING);
stripPacketHeader(byteBuffer);
public static ServerMessage parsePingMessage(CircularByteBuffer byteBuffer, MessagePool pool){
ServerMessage rVal = (ServerMessage)pool.get(MessageType.SERVER_MESSAGE);
rVal.messageType = ServerMessageType.PING;
ServerMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -89,9 +90,10 @@ public class ServerMessage extends NetworkMessage {
/**
* Parses a message of type Pong
*/
public static ServerMessage parsePongMessage(CircularByteBuffer byteBuffer){
ServerMessage rVal = new ServerMessage(ServerMessageType.PONG);
stripPacketHeader(byteBuffer);
public static ServerMessage parsePongMessage(CircularByteBuffer byteBuffer, MessagePool pool){
ServerMessage rVal = (ServerMessage)pool.get(MessageType.SERVER_MESSAGE);
rVal.messageType = ServerMessageType.PONG;
ServerMessage.stripPacketHeader(byteBuffer);
return rVal;
}

View File

@ -265,9 +265,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type UpdateClientState
*/
public static SynchronizationMessage parseUpdateClientStateMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.UPDATECLIENTSTATE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseUpdateClientStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.UPDATECLIENTSTATE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -322,9 +323,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type UpdateClientStringState
*/
public static SynchronizationMessage parseUpdateClientStringStateMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.UPDATECLIENTSTRINGSTATE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseUpdateClientStringStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.UPDATECLIENTSTRINGSTATE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -348,9 +350,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type UpdateClientIntState
*/
public static SynchronizationMessage parseUpdateClientIntStateMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.UPDATECLIENTINTSTATE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseUpdateClientIntStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.UPDATECLIENTINTSTATE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -374,9 +377,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type UpdateClientLongState
*/
public static SynchronizationMessage parseUpdateClientLongStateMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.UPDATECLIENTLONGSTATE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseUpdateClientLongStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.UPDATECLIENTLONGSTATE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -400,9 +404,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type UpdateClientFloatState
*/
public static SynchronizationMessage parseUpdateClientFloatStateMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.UPDATECLIENTFLOATSTATE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseUpdateClientFloatStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.UPDATECLIENTFLOATSTATE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -426,9 +431,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type UpdateClientDoubleState
*/
public static SynchronizationMessage parseUpdateClientDoubleStateMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.UPDATECLIENTDOUBLESTATE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseUpdateClientDoubleStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.UPDATECLIENTDOUBLESTATE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -452,9 +458,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type ClientRequestBTreeAction
*/
public static SynchronizationMessage parseClientRequestBTreeActionMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.CLIENTREQUESTBTREEACTION);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseClientRequestBTreeActionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.CLIENTREQUESTBTREEACTION;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeValue(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -476,9 +483,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type ServerNotifyBTreeTransition
*/
public static SynchronizationMessage parseServerNotifyBTreeTransitionMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.SERVERNOTIFYBTREETRANSITION);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseServerNotifyBTreeTransitionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.SERVERNOTIFYBTREETRANSITION;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setfieldId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -502,9 +510,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type AttachTree
*/
public static SynchronizationMessage parseAttachTreeMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.ATTACHTREE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseAttachTreeMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.ATTACHTREE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
@ -524,9 +533,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type DetatchTree
*/
public static SynchronizationMessage parseDetatchTreeMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.DETATCHTREE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseDetatchTreeMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.DETATCHTREE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setentityId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setbTreeId(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
return rVal;
@ -568,9 +578,10 @@ public class SynchronizationMessage extends NetworkMessage {
/**
* Parses a message of type LoadScene
*/
public static SynchronizationMessage parseLoadSceneMessage(CircularByteBuffer byteBuffer){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.LOADSCENE);
stripPacketHeader(byteBuffer);
public static SynchronizationMessage parseLoadSceneMessage(CircularByteBuffer byteBuffer, MessagePool pool){
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
rVal.messageType = SynchronizationMessageType.LOADSCENE;
SynchronizationMessage.stripPacketHeader(byteBuffer);
rVal.setstringValue(ByteStreamUtils.popStringFromByteQueue(byteBuffer));
return rVal;
}

View File

@ -546,7 +546,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestMetadataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTMETADATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
return rVal;
}
@ -565,7 +565,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseResponseMetadataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.RESPONSEMETADATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldSizeDiscrete(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldMinX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldMinY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -598,7 +598,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestEditVoxelMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTEDITVOXEL;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -633,7 +633,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseUpdateVoxelMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.UPDATEVOXEL;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -668,7 +668,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestUseTerrainPaletteMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTUSETERRAINPALETTE;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setrealLocationX(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
rVal.setrealLocationY(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
rVal.setrealLocationZ(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
@ -699,7 +699,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseSpawnPositionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.SPAWNPOSITION;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setrealLocationX(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
rVal.setrealLocationY(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
rVal.setrealLocationZ(ByteStreamUtils.popDoubleFromByteQueue(byteBuffer));
@ -724,7 +724,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTCHUNKDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -780,7 +780,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parsesendChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.SENDCHUNKDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -807,7 +807,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestReducedChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTREDUCEDCHUNKDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -871,7 +871,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseSendReducedChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.SENDREDUCEDCHUNKDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -902,7 +902,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestReducedBlockDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTREDUCEDBLOCKDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -966,7 +966,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseSendReducedBlockDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.SENDREDUCEDBLOCKDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -997,7 +997,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseUpdateBlockMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.UPDATEBLOCK;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -1032,7 +1032,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseRequestFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.REQUESTFLUIDDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -1088,7 +1088,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parsesendFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.SENDFLUIDDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
@ -1146,7 +1146,7 @@ public class TerrainMessage extends NetworkMessage {
public static TerrainMessage parseupdateFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
rVal.messageType = TerrainMessageType.UPDATEFLUIDDATA;
stripPacketHeader(byteBuffer);
TerrainMessage.stripPacketHeader(byteBuffer);
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));

View File

@ -44,16 +44,16 @@ public class NetworkParser {
*/
CopyOnWriteArrayList<NetworkMessage> outgoingMessageQueue = new CopyOnWriteArrayList<NetworkMessage>();
/**
* The byte buffer for storing incoming bytes
*/
CircularByteBuffer incomingByteBuffer = new CircularByteBuffer(CIRCULAR_BUFFER_SIZE);
/**
* Message object pool
*/
MessagePool pool = new MessagePool();
/**
* The byte buffer for storing incoming bytes
*/
CircularByteBuffer incomingByteBuffer = new CircularByteBuffer(CIRCULAR_BUFFER_SIZE);
/**
* The block array used to read blocks of bytes in
*/
@ -110,7 +110,7 @@ public class NetworkParser {
for(NetworkMessage message : outgoingMessageQueue){
outgoingMessageQueue.remove(message);
outgoingStream.write(message.getRawBytes());
pool.release(message);
this.pool.release(message);
}
}
@ -170,4 +170,12 @@ public class NetworkParser {
this.pool.release(message);
}
/**
* Gets the message pool
* @return The message pool
*/
public MessagePool getMessagePool(){
return this.pool;
}
}

View File

@ -129,6 +129,7 @@ public class ServerConnectionHandler implements Runnable {
if(this.local){
//run if serverconnectionHandler is created by passing in input/output streams
networkParser = new NetworkParser(inputStream,outputStream);
networkParser.getMessagePool().setAlwaysAllocate(true);
messageProtocol = new MessageProtocol(this);
} else {
//run if ServerConnectionHandler is created by passing in a socket