package me.pascoej.ajario.packet.serverbound;
import me.pascoej.ajario.packet.AgarPacket;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
/**
* Created by john on 6/14/15.
*/
public abstract class ServerBoundPacket implements AgarPacket {
protected ByteBuffer getByteBuffer() {
ByteBuffer byteBuffer = ByteBuffer.allocate(size()).order(ByteOrder.LITTLE_ENDIAN);
byteBuffer.put(this.getType().getId());
addPayload(byteBuffer);
return byteBuffer;
}
protected abstract int size();
protected abstract ByteBuffer addPayload(ByteBuffer byteBuffer);
@Override
public byte[] toBytes() {
return getByteBuffer().array();
}
}