custom parser flow for block messages
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
This commit is contained in:
parent
accf7d32b8
commit
bb48ca0663
@ -4,9 +4,13 @@ import electrosphere.engine.Globals;
|
||||
import electrosphere.logger.LoggerInterface;
|
||||
import electrosphere.net.parser.net.message.NetworkMessage;
|
||||
import electrosphere.net.parser.net.message.ServerMessage;
|
||||
import electrosphere.net.parser.net.message.TerrainMessage;
|
||||
import electrosphere.net.parser.net.message.TypeBytes;
|
||||
import electrosphere.net.parser.net.message.NetworkMessage.MessageType;
|
||||
import electrosphere.net.parser.net.message.ServerMessage.ServerMessageType;
|
||||
import electrosphere.net.parser.net.raw.NetworkParser;
|
||||
import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import io.github.studiorailgun.CircularByteBuffer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -167,6 +171,18 @@ public class ClientNetworking implements Runnable {
|
||||
|
||||
//create parser
|
||||
parser = new NetworkParser(inputStream,outputStream);
|
||||
|
||||
//
|
||||
//register custom message parsers
|
||||
parser.registerCustomParser(TypeBytes.MESSAGE_TYPE_TERRAIN, TypeBytes.TERRAIN_MESSAGE_TYPE_SENDREDUCEDBLOCKDATA, (NetworkMessage message, CircularByteBuffer buff) -> {
|
||||
TerrainMessage castMessage = (TerrainMessage)message;
|
||||
castMessage.setworldX(ByteStreamUtils.popIntFromByteQueue(buff));
|
||||
castMessage.setworldY(ByteStreamUtils.popIntFromByteQueue(buff));
|
||||
castMessage.setworldZ(ByteStreamUtils.popIntFromByteQueue(buff));
|
||||
castMessage.setchunkResolution(ByteStreamUtils.popIntFromByteQueue(buff));
|
||||
castMessage.sethomogenousValue(ByteStreamUtils.popIntFromByteQueue(buff));
|
||||
castMessage.setchunkData(ByteStreamUtils.popByteArrayFromByteQueue(buff));
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class AuthMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -117,7 +120,7 @@ public class AuthMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type AuthRequest
|
||||
*/
|
||||
public static AuthMessage parseAuthRequestMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static AuthMessage parseAuthRequestMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
|
||||
rVal.messageType = AuthMessageType.AUTHREQUEST;
|
||||
AuthMessage.stripPacketHeader(byteBuffer);
|
||||
@ -170,7 +173,7 @@ public class AuthMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type AuthDetails
|
||||
*/
|
||||
public static AuthMessage parseAuthDetailsMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static AuthMessage parseAuthDetailsMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
|
||||
rVal.messageType = AuthMessageType.AUTHDETAILS;
|
||||
AuthMessage.stripPacketHeader(byteBuffer);
|
||||
@ -192,7 +195,7 @@ public class AuthMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type AuthSuccess
|
||||
*/
|
||||
public static AuthMessage parseAuthSuccessMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static AuthMessage parseAuthSuccessMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
|
||||
rVal.messageType = AuthMessageType.AUTHSUCCESS;
|
||||
AuthMessage.stripPacketHeader(byteBuffer);
|
||||
@ -210,7 +213,7 @@ public class AuthMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type AuthFailure
|
||||
*/
|
||||
public static AuthMessage parseAuthFailureMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static AuthMessage parseAuthFailureMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
AuthMessage rVal = (AuthMessage)pool.get(MessageType.AUTH_MESSAGE);
|
||||
rVal.messageType = AuthMessageType.AUTHFAILURE;
|
||||
AuthMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class CharacterMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -118,7 +121,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestCharacterList
|
||||
*/
|
||||
public static CharacterMessage parseRequestCharacterListMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseRequestCharacterListMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.REQUESTCHARACTERLIST;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -158,7 +161,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ResponseCharacterList
|
||||
*/
|
||||
public static CharacterMessage parseResponseCharacterListMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseResponseCharacterListMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.RESPONSECHARACTERLIST;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -200,7 +203,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestCreateCharacter
|
||||
*/
|
||||
public static CharacterMessage parseRequestCreateCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseRequestCreateCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.REQUESTCREATECHARACTER;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -220,7 +223,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ResponseCreateCharacterSuccess
|
||||
*/
|
||||
public static CharacterMessage parseResponseCreateCharacterSuccessMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseResponseCreateCharacterSuccessMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.RESPONSECREATECHARACTERSUCCESS;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -238,7 +241,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ResponseCreateCharacterFailure
|
||||
*/
|
||||
public static CharacterMessage parseResponseCreateCharacterFailureMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseResponseCreateCharacterFailureMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.RESPONSECREATECHARACTERFAILURE;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -278,7 +281,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestSpawnCharacter
|
||||
*/
|
||||
public static CharacterMessage parseRequestSpawnCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseRequestSpawnCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.REQUESTSPAWNCHARACTER;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -320,7 +323,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ResponseSpawnCharacter
|
||||
*/
|
||||
public static CharacterMessage parseResponseSpawnCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseResponseSpawnCharacterMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.RESPONSESPAWNCHARACTER;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
@ -340,7 +343,7 @@ public class CharacterMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type EditorSwap
|
||||
*/
|
||||
public static CharacterMessage parseEditorSwapMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CharacterMessage parseEditorSwapMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CharacterMessage rVal = (CharacterMessage)pool.get(MessageType.CHARACTER_MESSAGE);
|
||||
rVal.messageType = CharacterMessageType.EDITORSWAP;
|
||||
CharacterMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class CombatMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -299,7 +302,7 @@ public class CombatMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type serverReportHitboxCollision
|
||||
*/
|
||||
public static CombatMessage parseserverReportHitboxCollisionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static CombatMessage parseserverReportHitboxCollisionMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
CombatMessage rVal = (CombatMessage)pool.get(MessageType.COMBAT_MESSAGE);
|
||||
rVal.messageType = CombatMessageType.SERVERREPORTHITBOXCOLLISION;
|
||||
CombatMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class EntityMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -715,7 +718,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Create
|
||||
*/
|
||||
public static EntityMessage parseCreateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseCreateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.CREATE;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -755,7 +758,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type moveUpdate
|
||||
*/
|
||||
public static EntityMessage parsemoveUpdateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parsemoveUpdateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.MOVEUPDATE;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -797,7 +800,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type attackUpdate
|
||||
*/
|
||||
public static EntityMessage parseattackUpdateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseattackUpdateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.ATTACKUPDATE;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -835,7 +838,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type startAttack
|
||||
*/
|
||||
public static EntityMessage parsestartAttackMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parsestartAttackMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.STARTATTACK;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -853,7 +856,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Kill
|
||||
*/
|
||||
public static EntityMessage parseKillMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseKillMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.KILL;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -875,7 +878,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Destroy
|
||||
*/
|
||||
public static EntityMessage parseDestroyMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseDestroyMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.DESTROY;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -895,7 +898,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type setProperty
|
||||
*/
|
||||
public static EntityMessage parsesetPropertyMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parsesetPropertyMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.SETPROPERTY;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -949,7 +952,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type attachEntityToEntity
|
||||
*/
|
||||
public static EntityMessage parseattachEntityToEntityMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseattachEntityToEntityMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.ATTACHENTITYTOENTITY;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -973,7 +976,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type updateEntityViewDir
|
||||
*/
|
||||
public static EntityMessage parseupdateEntityViewDirMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseupdateEntityViewDirMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.UPDATEENTITYVIEWDIR;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1001,7 +1004,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type syncPhysics
|
||||
*/
|
||||
public static EntityMessage parsesyncPhysicsMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parsesyncPhysicsMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.SYNCPHYSICS;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1086,7 +1089,7 @@ public class EntityMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type interact
|
||||
*/
|
||||
public static EntityMessage parseinteractMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static EntityMessage parseinteractMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
EntityMessage rVal = (EntityMessage)pool.get(MessageType.ENTITY_MESSAGE);
|
||||
rVal.messageType = EntityMessageType.INTERACT;
|
||||
EntityMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class InventoryMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -414,7 +417,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type addItemToInventory
|
||||
*/
|
||||
public static InventoryMessage parseaddItemToInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseaddItemToInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.ADDITEMTOINVENTORY;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -438,7 +441,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type removeItemFromInventory
|
||||
*/
|
||||
public static InventoryMessage parseremoveItemFromInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseremoveItemFromInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.REMOVEITEMFROMINVENTORY;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -483,7 +486,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestEquipItem
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestEquipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestEquipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTEQUIPITEM;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -533,7 +536,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type serverCommandMoveItemContainer
|
||||
*/
|
||||
public static InventoryMessage parseserverCommandMoveItemContainerMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseserverCommandMoveItemContainerMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.SERVERCOMMANDMOVEITEMCONTAINER;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -601,7 +604,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type serverCommandEquipItem
|
||||
*/
|
||||
public static InventoryMessage parseserverCommandEquipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseserverCommandEquipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.SERVERCOMMANDEQUIPITEM;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -657,7 +660,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type serverCommandUnequipItem
|
||||
*/
|
||||
public static InventoryMessage parseserverCommandUnequipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseserverCommandUnequipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.SERVERCOMMANDUNEQUIPITEM;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -703,7 +706,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestUnequipItem
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestUnequipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestUnequipItemMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTUNEQUIPITEM;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -754,7 +757,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestStoreItem
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestStoreItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestStoreItemMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTSTOREITEM;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -824,7 +827,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type serverCommandStoreItem
|
||||
*/
|
||||
public static InventoryMessage parseserverCommandStoreItemMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseserverCommandStoreItemMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.SERVERCOMMANDSTOREITEM;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -852,7 +855,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestWatchInventory
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestWatchInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestWatchInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTWATCHINVENTORY;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -872,7 +875,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestUnwatchInventory
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestUnwatchInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestUnwatchInventoryMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTUNWATCHINVENTORY;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -892,7 +895,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestAddToolbar
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestAddToolbarMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestAddToolbarMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTADDTOOLBAR;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -914,7 +917,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestAddNatural
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestAddNaturalMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestAddNaturalMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTADDNATURAL;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -934,7 +937,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientUpdateToolbar
|
||||
*/
|
||||
public static InventoryMessage parseclientUpdateToolbarMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientUpdateToolbarMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTUPDATETOOLBAR;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -991,7 +994,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestPerformItemAction
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestPerformItemActionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestPerformItemActionMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTPERFORMITEMACTION;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1021,7 +1024,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type clientRequestCraft
|
||||
*/
|
||||
public static InventoryMessage parseclientRequestCraftMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseclientRequestCraftMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.CLIENTREQUESTCRAFT;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1045,7 +1048,7 @@ public class InventoryMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type serverUpdateItemCharges
|
||||
*/
|
||||
public static InventoryMessage parseserverUpdateItemChargesMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static InventoryMessage parseserverUpdateItemChargesMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
InventoryMessage rVal = (InventoryMessage)pool.get(MessageType.INVENTORY_MESSAGE);
|
||||
rVal.messageType = InventoryMessageType.SERVERUPDATEITEMCHARGES;
|
||||
InventoryMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class LoreMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -88,7 +91,7 @@ public class LoreMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestRaces
|
||||
*/
|
||||
public static LoreMessage parseRequestRacesMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static LoreMessage parseRequestRacesMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
LoreMessage rVal = (LoreMessage)pool.get(MessageType.LORE_MESSAGE);
|
||||
rVal.messageType = LoreMessageType.REQUESTRACES;
|
||||
LoreMessage.stripPacketHeader(byteBuffer);
|
||||
@ -128,7 +131,7 @@ public class LoreMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ResponseRaces
|
||||
*/
|
||||
public static LoreMessage parseResponseRacesMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static LoreMessage parseResponseRacesMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
LoreMessage rVal = (LoreMessage)pool.get(MessageType.LORE_MESSAGE);
|
||||
rVal.messageType = LoreMessageType.RESPONSERACES;
|
||||
LoreMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -4,6 +4,8 @@ import io.github.studiorailgun.CircularByteBuffer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
/**
|
||||
* A network message
|
||||
@ -61,9 +63,10 @@ public abstract class NetworkMessage {
|
||||
* Parses the byte stream for the next message
|
||||
* @param byteBuffer The byte buffer
|
||||
* @param pool The message pool
|
||||
* @param customParserMap The map of message type/subtype to parser
|
||||
* @return The message if one is at the front of the byte stream, null otherwise
|
||||
*/
|
||||
public static NetworkMessage parseBytestreamForMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static NetworkMessage parseBytestreamForMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
NetworkMessage rVal = null;
|
||||
byte firstByte;
|
||||
byte secondByte;
|
||||
@ -75,57 +78,57 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_CREATE:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseCreateMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseCreateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_MOVEUPDATE:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parsemoveUpdateMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parsemoveUpdateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_ATTACKUPDATE:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseattackUpdateMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseattackUpdateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_STARTATTACK:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parsestartAttackMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parsestartAttackMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_KILL:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseKillMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseKillMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_DESTROY:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseDestroyMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseDestroyMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_SETPROPERTY:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parsesetPropertyMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parsesetPropertyMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_ATTACHENTITYTOENTITY:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseattachEntityToEntityMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseattachEntityToEntityMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_UPDATEENTITYVIEWDIR:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseupdateEntityViewDirMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseupdateEntityViewDirMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_SYNCPHYSICS:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parsesyncPhysicsMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parsesyncPhysicsMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.ENTITY_MESSAGE_TYPE_INTERACT:
|
||||
if(EntityMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = EntityMessage.parseinteractMessage(byteBuffer,pool);
|
||||
rVal = EntityMessage.parseinteractMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -135,12 +138,12 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.LORE_MESSAGE_TYPE_REQUESTRACES:
|
||||
if(LoreMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = LoreMessage.parseRequestRacesMessage(byteBuffer,pool);
|
||||
rVal = LoreMessage.parseRequestRacesMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.LORE_MESSAGE_TYPE_RESPONSERACES:
|
||||
if(LoreMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = LoreMessage.parseResponseRacesMessage(byteBuffer,pool);
|
||||
rVal = LoreMessage.parseResponseRacesMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -150,12 +153,12 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.PLAYER_MESSAGE_TYPE_SET_ID:
|
||||
if(PlayerMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = PlayerMessage.parseSet_IDMessage(byteBuffer,pool);
|
||||
rVal = PlayerMessage.parseSet_IDMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.PLAYER_MESSAGE_TYPE_SETINITIALDISCRETEPOSITION:
|
||||
if(PlayerMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = PlayerMessage.parseSetInitialDiscretePositionMessage(byteBuffer,pool);
|
||||
rVal = PlayerMessage.parseSetInitialDiscretePositionMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -165,97 +168,97 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTMETADATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestMetadataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestMetadataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_RESPONSEMETADATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseResponseMetadataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseResponseMetadataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTEDITVOXEL:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestEditVoxelMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestEditVoxelMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_UPDATEVOXEL:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseUpdateVoxelMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseUpdateVoxelMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTUSETERRAINPALETTE:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestUseTerrainPaletteMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestUseTerrainPaletteMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTDESTROYTERRAIN:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestDestroyTerrainMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestDestroyTerrainMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_SPAWNPOSITION:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseSpawnPositionMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseSpawnPositionMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTCHUNKDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestChunkDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestChunkDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_SENDCHUNKDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parsesendChunkDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parsesendChunkDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTREDUCEDCHUNKDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestReducedChunkDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestReducedChunkDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_SENDREDUCEDCHUNKDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseSendReducedChunkDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseSendReducedChunkDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTREDUCEDBLOCKDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestReducedBlockDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestReducedBlockDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_SENDREDUCEDBLOCKDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseSendReducedBlockDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseSendReducedBlockDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_UPDATEBLOCK:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseUpdateBlockMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseUpdateBlockMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTFLUIDDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestFluidDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestFluidDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_SENDFLUIDDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parsesendFluidDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parsesendFluidDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_UPDATEFLUIDDATA:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseupdateFluidDataMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseupdateFluidDataMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTEDITBLOCK:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestEditBlockMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestEditBlockMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTPLACEFAB:
|
||||
if(TerrainMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = TerrainMessage.parseRequestPlaceFabMessage(byteBuffer,pool);
|
||||
rVal = TerrainMessage.parseRequestPlaceFabMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -265,17 +268,17 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.SERVER_MESSAGE_TYPE_PING:
|
||||
if(ServerMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = ServerMessage.parsePingMessage(byteBuffer,pool);
|
||||
rVal = ServerMessage.parsePingMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SERVER_MESSAGE_TYPE_PONG:
|
||||
if(ServerMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = ServerMessage.parsePongMessage(byteBuffer,pool);
|
||||
rVal = ServerMessage.parsePongMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SERVER_MESSAGE_TYPE_DISCONNECT:
|
||||
if(ServerMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = ServerMessage.parseDisconnectMessage(byteBuffer,pool);
|
||||
rVal = ServerMessage.parseDisconnectMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -285,22 +288,22 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHREQUEST:
|
||||
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = AuthMessage.parseAuthRequestMessage(byteBuffer,pool);
|
||||
rVal = AuthMessage.parseAuthRequestMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHDETAILS:
|
||||
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = AuthMessage.parseAuthDetailsMessage(byteBuffer,pool);
|
||||
rVal = AuthMessage.parseAuthDetailsMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHSUCCESS:
|
||||
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = AuthMessage.parseAuthSuccessMessage(byteBuffer,pool);
|
||||
rVal = AuthMessage.parseAuthSuccessMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.AUTH_MESSAGE_TYPE_AUTHFAILURE:
|
||||
if(AuthMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = AuthMessage.parseAuthFailureMessage(byteBuffer,pool);
|
||||
rVal = AuthMessage.parseAuthFailureMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -310,42 +313,42 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTCHARACTERLIST:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseRequestCharacterListMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseRequestCharacterListMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECHARACTERLIST:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseResponseCharacterListMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseResponseCharacterListMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTCREATECHARACTER:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseRequestCreateCharacterMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseRequestCreateCharacterMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECREATECHARACTERSUCCESS:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseResponseCreateCharacterSuccessMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseResponseCreateCharacterSuccessMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECREATECHARACTERFAILURE:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseResponseCreateCharacterFailureMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseResponseCreateCharacterFailureMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTSPAWNCHARACTER:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseRequestSpawnCharacterMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseRequestSpawnCharacterMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSESPAWNCHARACTER:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseResponseSpawnCharacterMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseResponseSpawnCharacterMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.CHARACTER_MESSAGE_TYPE_EDITORSWAP:
|
||||
if(CharacterMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CharacterMessage.parseEditorSwapMessage(byteBuffer,pool);
|
||||
rVal = CharacterMessage.parseEditorSwapMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -355,87 +358,87 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_ADDITEMTOINVENTORY:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseaddItemToInventoryMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseaddItemToInventoryMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_REMOVEITEMFROMINVENTORY:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseremoveItemFromInventoryMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseremoveItemFromInventoryMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTEQUIPITEM:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestEquipItemMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestEquipItemMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDMOVEITEMCONTAINER:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseserverCommandMoveItemContainerMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseserverCommandMoveItemContainerMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDEQUIPITEM:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseserverCommandEquipItemMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseserverCommandEquipItemMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDUNEQUIPITEM:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseserverCommandUnequipItemMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseserverCommandUnequipItemMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTUNEQUIPITEM:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestUnequipItemMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestUnequipItemMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTSTOREITEM:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestStoreItemMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestStoreItemMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDSTOREITEM:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseserverCommandStoreItemMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseserverCommandStoreItemMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTWATCHINVENTORY:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestWatchInventoryMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestWatchInventoryMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTUNWATCHINVENTORY:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestUnwatchInventoryMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestUnwatchInventoryMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTADDTOOLBAR:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestAddToolbarMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestAddToolbarMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTADDNATURAL:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestAddNaturalMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestAddNaturalMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTUPDATETOOLBAR:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientUpdateToolbarMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientUpdateToolbarMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTPERFORMITEMACTION:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestPerformItemActionMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestPerformItemActionMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTCRAFT:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseclientRequestCraftMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseclientRequestCraftMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERUPDATEITEMCHARGES:
|
||||
if(InventoryMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = InventoryMessage.parseserverUpdateItemChargesMessage(byteBuffer,pool);
|
||||
rVal = InventoryMessage.parseserverUpdateItemChargesMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -445,57 +448,57 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTSTATE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseUpdateClientStateMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseUpdateClientStateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTSTRINGSTATE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseUpdateClientStringStateMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseUpdateClientStringStateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTINTSTATE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseUpdateClientIntStateMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseUpdateClientIntStateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTLONGSTATE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseUpdateClientLongStateMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseUpdateClientLongStateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTFLOATSTATE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseUpdateClientFloatStateMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseUpdateClientFloatStateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTDOUBLESTATE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseUpdateClientDoubleStateMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseUpdateClientDoubleStateMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_CLIENTREQUESTBTREEACTION:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseClientRequestBTreeActionMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseClientRequestBTreeActionMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_SERVERNOTIFYBTREETRANSITION:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseServerNotifyBTreeTransitionMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseServerNotifyBTreeTransitionMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_ATTACHTREE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseAttachTreeMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseAttachTreeMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_DETATCHTREE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseDetatchTreeMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseDetatchTreeMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
case TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_LOADSCENE:
|
||||
if(SynchronizationMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = SynchronizationMessage.parseLoadSceneMessage(byteBuffer,pool);
|
||||
rVal = SynchronizationMessage.parseLoadSceneMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -505,7 +508,7 @@ public abstract class NetworkMessage {
|
||||
switch(secondByte){
|
||||
case TypeBytes.COMBAT_MESSAGE_TYPE_SERVERREPORTHITBOXCOLLISION:
|
||||
if(CombatMessage.canParseMessage(byteBuffer,secondByte)){
|
||||
rVal = CombatMessage.parseserverReportHitboxCollisionMessage(byteBuffer,pool);
|
||||
rVal = CombatMessage.parseserverReportHitboxCollisionMessage(byteBuffer,pool,customParserMap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4,6 +4,9 @@ import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import io.github.studiorailgun.CircularByteBuffer;
|
||||
import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class PlayerMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -134,7 +137,7 @@ public class PlayerMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Set_ID
|
||||
*/
|
||||
public static PlayerMessage parseSet_IDMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static PlayerMessage parseSet_IDMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
PlayerMessage rVal = (PlayerMessage)pool.get(MessageType.PLAYER_MESSAGE);
|
||||
rVal.messageType = PlayerMessageType.SET_ID;
|
||||
PlayerMessage.stripPacketHeader(byteBuffer);
|
||||
@ -154,7 +157,7 @@ public class PlayerMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type SetInitialDiscretePosition
|
||||
*/
|
||||
public static PlayerMessage parseSetInitialDiscretePositionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static PlayerMessage parseSetInitialDiscretePositionMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
PlayerMessage rVal = (PlayerMessage)pool.get(MessageType.PLAYER_MESSAGE);
|
||||
rVal.messageType = PlayerMessageType.SETINITIALDISCRETEPOSITION;
|
||||
PlayerMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -3,6 +3,9 @@ package electrosphere.net.parser.net.message;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import io.github.studiorailgun.CircularByteBuffer;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class ServerMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -80,7 +83,7 @@ public class ServerMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Ping
|
||||
*/
|
||||
public static ServerMessage parsePingMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static ServerMessage parsePingMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
ServerMessage rVal = (ServerMessage)pool.get(MessageType.SERVER_MESSAGE);
|
||||
rVal.messageType = ServerMessageType.PING;
|
||||
ServerMessage.stripPacketHeader(byteBuffer);
|
||||
@ -98,7 +101,7 @@ public class ServerMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Pong
|
||||
*/
|
||||
public static ServerMessage parsePongMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static ServerMessage parsePongMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
ServerMessage rVal = (ServerMessage)pool.get(MessageType.SERVER_MESSAGE);
|
||||
rVal.messageType = ServerMessageType.PONG;
|
||||
ServerMessage.stripPacketHeader(byteBuffer);
|
||||
@ -116,7 +119,7 @@ public class ServerMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type Disconnect
|
||||
*/
|
||||
public static ServerMessage parseDisconnectMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static ServerMessage parseDisconnectMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
ServerMessage rVal = (ServerMessage)pool.get(MessageType.SERVER_MESSAGE);
|
||||
rVal.messageType = ServerMessageType.DISCONNECT;
|
||||
ServerMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class SynchronizationMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -267,7 +270,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateClientState
|
||||
*/
|
||||
public static SynchronizationMessage parseUpdateClientStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseUpdateClientStateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.UPDATECLIENTSTATE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -324,7 +327,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateClientStringState
|
||||
*/
|
||||
public static SynchronizationMessage parseUpdateClientStringStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseUpdateClientStringStateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.UPDATECLIENTSTRINGSTATE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -350,7 +353,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateClientIntState
|
||||
*/
|
||||
public static SynchronizationMessage parseUpdateClientIntStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseUpdateClientIntStateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.UPDATECLIENTINTSTATE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -376,7 +379,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateClientLongState
|
||||
*/
|
||||
public static SynchronizationMessage parseUpdateClientLongStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseUpdateClientLongStateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.UPDATECLIENTLONGSTATE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -402,7 +405,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateClientFloatState
|
||||
*/
|
||||
public static SynchronizationMessage parseUpdateClientFloatStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseUpdateClientFloatStateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.UPDATECLIENTFLOATSTATE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -428,7 +431,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateClientDoubleState
|
||||
*/
|
||||
public static SynchronizationMessage parseUpdateClientDoubleStateMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseUpdateClientDoubleStateMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.UPDATECLIENTDOUBLESTATE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -454,7 +457,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ClientRequestBTreeAction
|
||||
*/
|
||||
public static SynchronizationMessage parseClientRequestBTreeActionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseClientRequestBTreeActionMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.CLIENTREQUESTBTREEACTION;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -478,7 +481,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ServerNotifyBTreeTransition
|
||||
*/
|
||||
public static SynchronizationMessage parseServerNotifyBTreeTransitionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseServerNotifyBTreeTransitionMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.SERVERNOTIFYBTREETRANSITION;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -504,7 +507,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type AttachTree
|
||||
*/
|
||||
public static SynchronizationMessage parseAttachTreeMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseAttachTreeMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.ATTACHTREE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -526,7 +529,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type DetatchTree
|
||||
*/
|
||||
public static SynchronizationMessage parseDetatchTreeMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseDetatchTreeMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.DETATCHTREE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
@ -570,7 +573,7 @@ public class SynchronizationMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type LoadScene
|
||||
*/
|
||||
public static SynchronizationMessage parseLoadSceneMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static SynchronizationMessage parseLoadSceneMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
SynchronizationMessage rVal = (SynchronizationMessage)pool.get(MessageType.SYNCHRONIZATION_MESSAGE);
|
||||
rVal.messageType = SynchronizationMessageType.LOADSCENE;
|
||||
SynchronizationMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -7,6 +7,9 @@ import electrosphere.net.parser.util.ByteStreamUtils;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class TerrainMessage extends NetworkMessage {
|
||||
|
||||
/**
|
||||
@ -607,7 +610,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestMetadata
|
||||
*/
|
||||
public static TerrainMessage parseRequestMetadataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestMetadataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTMETADATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -625,7 +628,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type ResponseMetadata
|
||||
*/
|
||||
public static TerrainMessage parseResponseMetadataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseResponseMetadataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.RESPONSEMETADATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -657,7 +660,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestEditVoxel
|
||||
*/
|
||||
public static TerrainMessage parseRequestEditVoxelMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestEditVoxelMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTEDITVOXEL;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -691,7 +694,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateVoxel
|
||||
*/
|
||||
public static TerrainMessage parseUpdateVoxelMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseUpdateVoxelMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.UPDATEVOXEL;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -725,7 +728,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestUseTerrainPalette
|
||||
*/
|
||||
public static TerrainMessage parseRequestUseTerrainPaletteMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestUseTerrainPaletteMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTUSETERRAINPALETTE;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -755,7 +758,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestDestroyTerrain
|
||||
*/
|
||||
public static TerrainMessage parseRequestDestroyTerrainMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestDestroyTerrainMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTDESTROYTERRAIN;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -783,7 +786,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type SpawnPosition
|
||||
*/
|
||||
public static TerrainMessage parseSpawnPositionMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseSpawnPositionMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.SPAWNPOSITION;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -807,7 +810,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestChunkData
|
||||
*/
|
||||
public static TerrainMessage parseRequestChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTCHUNKDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -862,7 +865,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type sendChunkData
|
||||
*/
|
||||
public static TerrainMessage parsesendChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parsesendChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.SENDCHUNKDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -888,7 +891,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestReducedChunkData
|
||||
*/
|
||||
public static TerrainMessage parseRequestReducedChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestReducedChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTREDUCEDCHUNKDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -951,7 +954,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type SendReducedChunkData
|
||||
*/
|
||||
public static TerrainMessage parseSendReducedChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseSendReducedChunkDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.SENDREDUCEDCHUNKDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -981,7 +984,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestReducedBlockData
|
||||
*/
|
||||
public static TerrainMessage parseRequestReducedBlockDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestReducedBlockDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTREDUCEDBLOCKDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1044,16 +1047,16 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type SendReducedBlockData
|
||||
*/
|
||||
public static TerrainMessage parseSendReducedBlockDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseSendReducedBlockDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.SENDREDUCEDBLOCKDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
rVal.setworldX(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
|
||||
rVal.setworldY(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
|
||||
rVal.setworldZ(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
|
||||
rVal.setchunkResolution(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
|
||||
rVal.sethomogenousValue(ByteStreamUtils.popIntFromByteQueue(byteBuffer));
|
||||
rVal.setchunkData(ByteStreamUtils.popByteArrayFromByteQueue(byteBuffer));
|
||||
short pair = (short)((TypeBytes.MESSAGE_TYPE_TERRAIN << 4) & TypeBytes.TERRAIN_MESSAGE_TYPE_SENDREDUCEDBLOCKDATA);
|
||||
BiConsumer<NetworkMessage,CircularByteBuffer> customParser = customParserMap.get(pair);
|
||||
if(customParser == null){
|
||||
throw new Error("Custom parser undefined for message pair!");
|
||||
}
|
||||
customParser.accept(rVal,byteBuffer);
|
||||
return rVal;
|
||||
}
|
||||
|
||||
@ -1074,7 +1077,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type UpdateBlock
|
||||
*/
|
||||
public static TerrainMessage parseUpdateBlockMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseUpdateBlockMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.UPDATEBLOCK;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1108,7 +1111,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestFluidData
|
||||
*/
|
||||
public static TerrainMessage parseRequestFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTFLUIDDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1163,7 +1166,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type sendFluidData
|
||||
*/
|
||||
public static TerrainMessage parsesendFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parsesendFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.SENDFLUIDDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1220,7 +1223,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type updateFluidData
|
||||
*/
|
||||
public static TerrainMessage parseupdateFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseupdateFluidDataMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.UPDATEFLUIDDATA;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1246,7 +1249,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestEditBlock
|
||||
*/
|
||||
public static TerrainMessage parseRequestEditBlockMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestEditBlockMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTEDITBLOCK;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
@ -1325,7 +1328,7 @@ public class TerrainMessage extends NetworkMessage {
|
||||
/**
|
||||
* Parses a message of type RequestPlaceFab
|
||||
*/
|
||||
public static TerrainMessage parseRequestPlaceFabMessage(CircularByteBuffer byteBuffer, MessagePool pool){
|
||||
public static TerrainMessage parseRequestPlaceFabMessage(CircularByteBuffer byteBuffer, MessagePool pool, Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap){
|
||||
TerrainMessage rVal = (TerrainMessage)pool.get(MessageType.TERRAIN_MESSAGE);
|
||||
rVal.messageType = TerrainMessageType.REQUESTPLACEFAB;
|
||||
TerrainMessage.stripPacketHeader(byteBuffer);
|
||||
|
||||
@ -6,8 +6,11 @@ import io.github.studiorailgun.CircularByteBuffer;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
/**
|
||||
* The main message parser. This is used to serialize/deserialize messages to/from the provided streams.
|
||||
@ -27,53 +30,53 @@ public class NetworkParser {
|
||||
/**
|
||||
* The input stream for the parser
|
||||
*/
|
||||
InputStream incomingStream;
|
||||
private InputStream incomingStream;
|
||||
|
||||
/**
|
||||
* The output stream for the parser
|
||||
*/
|
||||
OutputStream outgoingStream;
|
||||
private OutputStream outgoingStream;
|
||||
|
||||
/**
|
||||
* The queue of incoming messages that have been parsed
|
||||
*/
|
||||
CopyOnWriteArrayList<NetworkMessage> incomingMessageQueue = new CopyOnWriteArrayList<NetworkMessage>();
|
||||
private CopyOnWriteArrayList<NetworkMessage> incomingMessageQueue = new CopyOnWriteArrayList<NetworkMessage>();
|
||||
|
||||
/**
|
||||
* The queue of outgoing messages that have yet to be sent
|
||||
*/
|
||||
CopyOnWriteArrayList<NetworkMessage> outgoingMessageQueue = new CopyOnWriteArrayList<NetworkMessage>();
|
||||
private CopyOnWriteArrayList<NetworkMessage> outgoingMessageQueue = new CopyOnWriteArrayList<NetworkMessage>();
|
||||
|
||||
/**
|
||||
* Message object pool
|
||||
*/
|
||||
MessagePool pool = new MessagePool();
|
||||
private MessagePool pool = new MessagePool();
|
||||
|
||||
/**
|
||||
* The byte buffer for storing incoming bytes
|
||||
*/
|
||||
CircularByteBuffer incomingByteBuffer = new CircularByteBuffer(CIRCULAR_BUFFER_SIZE);
|
||||
private CircularByteBuffer incomingByteBuffer = new CircularByteBuffer(CIRCULAR_BUFFER_SIZE);
|
||||
|
||||
/**
|
||||
* The block array used to read blocks of bytes in
|
||||
*/
|
||||
byte[] readBuffer = new byte[READ_BLOCK_SIZE];
|
||||
|
||||
/**
|
||||
* The outgoing byte buffer
|
||||
*/
|
||||
CopyOnWriteArrayList<Byte> outgoingByteQueue = new CopyOnWriteArrayList<Byte>();
|
||||
private byte[] readBuffer = new byte[READ_BLOCK_SIZE];
|
||||
|
||||
/**
|
||||
* The number of bytes read
|
||||
*/
|
||||
long totalBytesRead = 0;
|
||||
private long totalBytesRead = 0;
|
||||
|
||||
/**
|
||||
* If set to true, the parser will automatically release messages on send.
|
||||
* Otherwise, will not release when the message is sent.
|
||||
*/
|
||||
boolean releaseOnSend = true;
|
||||
private boolean releaseOnSend = true;
|
||||
|
||||
/**
|
||||
* The map of messasge type -> custom function to produce the message from a byte stream
|
||||
*/
|
||||
private Map<Short,BiConsumer<NetworkMessage,CircularByteBuffer>> customParserMap = new HashMap<Short,BiConsumer<NetworkMessage,CircularByteBuffer>>();
|
||||
|
||||
|
||||
/**
|
||||
@ -103,7 +106,7 @@ public class NetworkParser {
|
||||
//parse byte queue for messages
|
||||
//for each message, append to clientIncomingMessageQueue
|
||||
NetworkMessage newMessage;
|
||||
while((newMessage = NetworkMessage.parseBytestreamForMessage(incomingByteBuffer,this.pool))!=null){
|
||||
while((newMessage = NetworkMessage.parseBytestreamForMessage(incomingByteBuffer,this.pool,this.customParserMap))!=null){
|
||||
incomingMessageQueue.add(newMessage);
|
||||
}
|
||||
}
|
||||
@ -195,4 +198,15 @@ public class NetworkParser {
|
||||
this.releaseOnSend = releaseOnSend;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a custom parser for a given message type/subtype
|
||||
* @param messageType The type of message
|
||||
* @param messageSubtype The subtype of the message
|
||||
* @param parserFunc The parser function
|
||||
*/
|
||||
public void registerCustomParser(byte messageType, byte messageSubtype, BiConsumer<NetworkMessage,CircularByteBuffer> parserFunc){
|
||||
short pair = (short)((messageType << 4) & messageSubtype);
|
||||
this.customParserMap.put(pair,parserFunc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -272,6 +272,7 @@
|
||||
{
|
||||
"messageName" : "SendReducedBlockData",
|
||||
"description" : "Sends block data to the client",
|
||||
"customParser" : true,
|
||||
"data" : [
|
||||
"worldX",
|
||||
"worldY",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user