package me.pascoej.ajario.packet;
import me.pascoej.ajario.packet.clientbound.*;
import java.nio.ByteBuffer;
/**
* Created by john on 6/14/15.
*/
public interface AgarPacket {
byte[] toBytes();
PacketType getType();
static AgarPacket parseByteBuffer(ByteBuffer byteBuffer) {
if (byteBuffer.capacity() == 0) {
return null;
}
PacketType.ClientBound packetType = PacketType.ClientBound.packetType(byteBuffer.get());
if (packetType == null) {
return null;
}
switch (packetType) {
case UPDATE_NODES:
return new UpdateNodes(byteBuffer);
case UPDATE_POSITION_SIZE:
return new UpdatePositionAndSize(byteBuffer);
case CLEAR_ALL_NODES:
return new ClearAllNodes(byteBuffer);
case ADD_NODE:
return new AddNode(byteBuffer);
case UPDATE_LEADERBOARD:
return new UpdateLeaderBoard(byteBuffer);
case SET_BORDER:
return new SetBorder(byteBuffer);
}
return null;
}
}