Fixed some weird bug with the messages package, trying to add some small QoL changes with potential interaction bugs with the customization/lobby menu.

tags : #story[1142]
This commit is contained in:
Alistair McIntyre
2017-08-17 13:13:07 +12:00
parent ac279583df
commit faf4600f51
51 changed files with 99 additions and 148 deletions
@@ -13,14 +13,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import seng302.gameServer.server.messages.BoatAction;
import seng302.gameServer.server.messages.BoatStatus;
import seng302.gameServer.server.messages.CustomizeRequestType;
import seng302.gameServer.server.messages.MarkRoundingMessage;
import seng302.gameServer.server.messages.MarkType;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.server.messages.RoundingBoatStatus;
import seng302.gameServer.server.messages.YachtEventCodeMessage;
import seng302.gameServer.messages.BoatAction;
import seng302.gameServer.messages.BoatStatus;
import seng302.gameServer.messages.CustomizeRequestType;
import seng302.gameServer.messages.MarkRoundingMessage;
import seng302.gameServer.messages.MarkType;
import seng302.gameServer.messages.Message;
import seng302.gameServer.messages.RoundingBoatStatus;
import seng302.gameServer.messages.YachtEventCodeMessage;
import seng302.model.GeoPoint;
import seng302.model.Limit;
import seng302.model.Player;
@@ -5,8 +5,8 @@ import java.util.Stack;
import java.util.Timer;
import java.util.TimerTask;
import seng302.model.Player;
import seng302.gameServer.server.messages.Heartbeat;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.messages.Heartbeat;
import seng302.gameServer.messages.Message;
/**
* Send Heartbeat messages to connected player at a specified interval
@@ -7,13 +7,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import seng302.gameServer.server.messages.BoatSubMessage;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.server.messages.RaceStartNotificationType;
import seng302.gameServer.server.messages.RaceStartStatusMessage;
import seng302.gameServer.server.messages.RaceStatus;
import seng302.gameServer.server.messages.RaceStatusMessage;
import seng302.gameServer.server.messages.RaceType;
import seng302.gameServer.messages.BoatSubMessage;
import seng302.gameServer.messages.Message;
import seng302.gameServer.messages.RaceStartNotificationType;
import seng302.gameServer.messages.RaceStartStatusMessage;
import seng302.gameServer.messages.RaceStatus;
import seng302.gameServer.messages.RaceStatusMessage;
import seng302.gameServer.messages.RaceType;
import seng302.model.GeoPoint;
import seng302.model.Player;
import seng302.model.PolarTable;
@@ -1,10 +1,10 @@
package seng302.gameServer;
import java.util.Arrays;
import seng302.gameServer.server.messages.BoatAction;
import seng302.gameServer.server.messages.ClientType;
import seng302.gameServer.server.messages.CustomizeRequestType;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.messages.BoatAction;
import seng302.gameServer.messages.ClientType;
import seng302.gameServer.messages.CustomizeRequestType;
import seng302.gameServer.messages.Message;
import seng302.model.stream.packets.StreamPacket;
@@ -20,16 +20,16 @@ import java.util.zip.CRC32;
import java.util.zip.Checksum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import seng302.gameServer.server.messages.BoatAction;
import seng302.gameServer.server.messages.BoatLocationMessage;
import seng302.gameServer.server.messages.ClientType;
import seng302.gameServer.server.messages.CustomizeRequestType;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.server.messages.RegistrationResponseMessage;
import seng302.gameServer.server.messages.RegistrationResponseStatus;
import seng302.gameServer.server.messages.XMLMessage;
import seng302.gameServer.server.messages.XMLMessageSubType;
import seng302.gameServer.server.messages.YachtEventCodeMessage;
import seng302.gameServer.messages.BoatAction;
import seng302.gameServer.messages.BoatLocationMessage;
import seng302.gameServer.messages.ClientType;
import seng302.gameServer.messages.CustomizeRequestType;
import seng302.gameServer.messages.Message;
import seng302.gameServer.messages.RegistrationResponseMessage;
import seng302.gameServer.messages.RegistrationResponseStatus;
import seng302.gameServer.messages.XMLMessage;
import seng302.gameServer.messages.XMLMessageSubType;
import seng302.gameServer.messages.YachtEventCodeMessage;
import seng302.model.Player;
import seng302.model.ServerYacht;
import seng302.model.stream.packets.PacketType;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
import java.util.HashMap;
import java.util.Map;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Created by kre39 on 12/07/17.
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class BoatLocationMessage extends Message {
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* The current status of a boat
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
import java.nio.ByteBuffer;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class ChatterMessage extends Message {
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public enum ClientType {
SPECTATOR(0x00),
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
// TODO: 14/08/17 ajm412: this may eventually need adjusting due to conforming to the agreed spec.
public class CustomizeRequestMessage extends Message {
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
// TODO: 14/08/17 ajm412: this may eventually need adjusting due to conforming to the agreed spec.
public enum CustomizeRequestType {
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Created by ajm412 on 14/08/17.
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
// TODO: 14/08/17 ajm412: this may eventually need adjusting due to conforming to the agreed spec.
public enum CustomizeResponseType {
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public enum DeviceType {
UNKNOWN(0),
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
import java.nio.ByteBuffer;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class Heartbeat extends Message {
private final int MESSAGE_SIZE = 4;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Types of marks boats can round
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Enum containing the types of messages
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* The types of race start status messages
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class RaceStartStatusMessage extends Message {
private final int MESSAGE_SIZE = 20;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* The current status of the race
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
import java.util.List;
import java.util.zip.CRC32;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Enum containing the types of races
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class RegistrationRequestMessage extends Message {
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class RegistrationResponseMessage extends Message{
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public enum RegistrationResponseStatus {
SUCCESS_SPECTATING(0x00),
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* The status of a boat rounding a mark
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* The side the boat rounded the mark
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
public class XMLMessage extends Message{
private final MessageType MESSAGE_TYPE = MessageType.XML_MESSAGE;
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Enum containing the types of XML messages
@@ -1,4 +1,4 @@
package seng302.gameServer.server.messages;
package seng302.gameServer.messages;
/**
* Created by zyt10 on 10/08/17.
@@ -1,60 +0,0 @@
package seng302.gameServer.server.messages;
import seng302.gameServer.GameState;
public class MarkRoundingMessage extends Message{
private final long MESSAGE_VERSION_NUMBER = 1;
private final int MESSAGE_SIZE = 21;
private long time;
private long ackNumber;
private long raceId;
private long sourceId;
private RoundingBoatStatus boatStatus;
private RoundingSide roundingSide;
private long markId;
/**
* This message is sent when a boat passes a mark, start line, or finish line
* The purpose of this is to record the time when yachts cross marks
* @param ackNumber ackNumber
* @param raceId raceId
* @param sourceId boatSourceId
* @param roundingBoatStatus roundingBoatStatus
* @param roundingSide roundingSide
* @param markId markId
*/
public MarkRoundingMessage(int ackNumber, int raceId, int sourceId, RoundingBoatStatus roundingBoatStatus,
RoundingSide roundingSide, MarkType markType, int markId) {
this.time = System.currentTimeMillis();
this.ackNumber = ackNumber;
this.raceId = raceId;
this.sourceId = sourceId;
this.boatStatus = roundingBoatStatus;
this.roundingSide = roundingSide;
this.markId = markId;
setHeader(new Header(MessageType.MARK_ROUNDING, 1, (short) getSize()));
allocateBuffer();
writeHeaderToBuffer();
putByte((byte) MESSAGE_VERSION_NUMBER);
putInt((int) time, 6);
putInt((int) ackNumber, 2);
putInt((int) raceId, 4);
putInt((int) sourceId, 4);
putByte((byte) boatStatus.getCode());
putByte((byte) roundingSide.getCode());
putByte((byte) markType.getCode());
putByte((byte) markId);
writeCRC();
rewind();
}
@Override
public int getSize() {
return MESSAGE_SIZE;
}
}