package electrosphere.net.client.protocol; import org.joml.Vector3i; import electrosphere.engine.Globals; import electrosphere.logger.LoggerInterface; import electrosphere.net.parser.net.message.PlayerMessage; import electrosphere.net.server.player.Player; import electrosphere.net.template.ClientProtocolTemplate; /** * The client protocol for handling player messages */ public class PlayerProtocol implements ClientProtocolTemplate { @Override public PlayerMessage handleAsyncMessage(PlayerMessage message) { return message; } @Override public void handleSyncMessage(PlayerMessage message) { Globals.profiler.beginCpuSample("PlayerProtocol.handlePlayerMessage"); switch(message.getMessageSubtype()){ case SET_ID: Globals.clientPlayer = new Player(message.getplayerID()); LoggerInterface.loggerNetworking.DEBUG("[CLIENT] Player ID is " + Globals.clientPlayer.getId()); break; case SETINITIALDISCRETEPOSITION: Globals.clientPlayerData.setWorldPos(new Vector3i(message.getinitialDiscretePositionX(), message.getinitialDiscretePositionY(), message.getinitialDiscretePositionZ())); break; } Globals.profiler.endCpuSample(); } }