mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
e2bc613c9d
#story[1246]
47 lines
1.7 KiB
Java
47 lines
1.7 KiB
Java
package seng302.gameServer;
|
|
|
|
import java.util.Arrays;
|
|
import seng302.gameServer.messages.BoatAction;
|
|
import seng302.gameServer.messages.ChatterMessage;
|
|
import seng302.gameServer.messages.ClientType;
|
|
import seng302.gameServer.messages.CustomizeRequestType;
|
|
import seng302.gameServer.messages.Message;
|
|
import seng302.model.stream.packets.StreamPacket;
|
|
|
|
|
|
public class ServerPacketParser {
|
|
|
|
public static BoatAction extractBoatAction(StreamPacket packet) {
|
|
byte[] payload = packet.getPayload();
|
|
int messageVersionNo = payload[0];
|
|
long actionTypeValue = Message.bytesToLong(Arrays.copyOfRange(payload, 0, 1));
|
|
return BoatAction.getType((int) actionTypeValue);
|
|
}
|
|
|
|
public static ClientType extractClientType(StreamPacket packet){
|
|
byte[] payload = packet.getPayload();
|
|
long value = Message.bytesToLong(Arrays.copyOfRange(payload, 0, 1));
|
|
return ClientType.getClientType((int) value);
|
|
}
|
|
|
|
public static CustomizeRequestType extractCustomizationType(StreamPacket packet) {
|
|
byte[] payload = packet.getPayload();
|
|
long type = Message.bytesToLong(Arrays.copyOfRange(payload, 4, 5));
|
|
return CustomizeRequestType.getRequestType((int) type);
|
|
}
|
|
|
|
public static ChatterMessage extractChatterText(byte[] payload) {
|
|
return new ChatterMessage(
|
|
payload[1], new String(Arrays.copyOfRange(payload, 3, payload.length))
|
|
);
|
|
}
|
|
|
|
public static ChatterMessage extractChatterText(StreamPacket packet) {
|
|
byte[] payload = packet.getPayload();
|
|
return new ChatterMessage(
|
|
payload[1], new String(Arrays.copyOfRange(payload, 3, payload.length))
|
|
);
|
|
}
|
|
}
|
|
|