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;
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ import javafx.scene.paint.Color;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import seng302.gameServer.GameState;
import seng302.gameServer.server.messages.BoatStatus;
import seng302.gameServer.messages.BoatStatus;
import seng302.model.mark.Mark;
import seng302.utilities.GeoUtility;
@@ -2,7 +2,7 @@ package seng302.model.mark;
import java.util.ArrayList;
import java.util.List;
import seng302.gameServer.server.messages.RoundingSide;
import seng302.gameServer.messages.RoundingSide;
import seng302.model.GeoPoint;
import seng302.utilities.GeoUtility;
+1 -1
View File
@@ -2,7 +2,7 @@ package seng302.model.mark;
import java.util.ArrayList;
import java.util.List;
import seng302.gameServer.server.messages.RoundingSide;
import seng302.gameServer.messages.RoundingSide;
import seng302.model.GeoPoint;
/**
@@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import seng302.gameServer.server.messages.RoundingSide;
import seng302.gameServer.messages.RoundingSide;
import seng302.model.stream.xml.generator.Race;
import seng302.model.stream.xml.parser.RaceXMLData;
import seng302.utilities.XMLGenerator;
@@ -9,7 +9,7 @@ import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import seng302.model.stream.xml.generator.Race;
import seng302.model.stream.xml.generator.Regatta;
import seng302.gameServer.server.messages.XMLMessageSubType;
import seng302.gameServer.messages.XMLMessageSubType;
/**
* An XML generator to generate the Race, Boat, and Regatta XML dynamically
@@ -21,14 +21,14 @@ import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import seng302.gameServer.server.messages.BoatAction;
import seng302.gameServer.server.messages.BoatActionMessage;
import seng302.gameServer.server.messages.ClientType;
import seng302.gameServer.server.messages.CustomizeRequestMessage;
import seng302.gameServer.server.messages.CustomizeRequestType;
import seng302.gameServer.server.messages.Message;
import seng302.gameServer.server.messages.RegistrationRequestMessage;
import seng302.gameServer.server.messages.RegistrationResponseStatus;
import seng302.gameServer.messages.BoatAction;
import seng302.gameServer.messages.BoatActionMessage;
import seng302.gameServer.messages.ClientType;
import seng302.gameServer.messages.CustomizeRequestMessage;
import seng302.gameServer.messages.CustomizeRequestType;
import seng302.gameServer.messages.Message;
import seng302.gameServer.messages.RegistrationRequestMessage;
import seng302.gameServer.messages.RegistrationResponseStatus;
import seng302.model.stream.packets.PacketType;
import seng302.model.stream.packets.StreamPacket;
@@ -14,7 +14,7 @@ import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Pane;
import seng302.gameServer.GameState;
import seng302.gameServer.MainServerThread;
import seng302.gameServer.server.messages.BoatAction;
import seng302.gameServer.messages.BoatAction;
import seng302.model.ClientYacht;
import seng302.model.RaceState;
import seng302.model.stream.packets.StreamPacket;
@@ -6,7 +6,7 @@ import javafx.scene.control.ColorPicker;
import javafx.scene.control.TextField;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import seng302.gameServer.server.messages.CustomizeRequestType;
import seng302.gameServer.messages.CustomizeRequestType;
import seng302.visualiser.ClientToServerThread;
public class CustomizationController {
@@ -46,6 +46,8 @@ public class LobbyController {
@FXML
private Button readyButton;
@FXML
private Button customizeButton;
@FXML
private TextArea playerOneTxt;
@FXML
private TextArea playerTwoTxt;
@@ -88,6 +90,8 @@ public class LobbyController {
private ClientToServerThread socketThread;
private Stage customizeStage;
private Color playersColor;
private int MAX_NUM_PLAYERS = 8;
@@ -154,7 +158,9 @@ public class LobbyController {
FXMLLoader fxmlLoader = new FXMLLoader(LobbyController.class.getResource("/views/customizeView.fxml"));
root = fxmlLoader.load();
root.getStylesheets().add("/css/master.css");
Stage customizeStage = new Stage();
customizeStage = new Stage();
customizeStage.setTitle("Customize Boat");
customizeStage.setScene(new Scene(root, 700, 450));
CustomizationController cc = fxmlLoader.getController();
cc.setServerThread(this.socketThread);
cc.setPlayerName(this.players.get(playerID - 1));
@@ -164,8 +170,6 @@ public class LobbyController {
}
cc.setPlayerColor(this.playersColor);
customizeStage.setTitle("Customize Boat");
customizeStage.setScene(new Scene(root, 700, 450));
cc.setStage(customizeStage); // pass the stage through so it can be closed later.
cc.setLobbyController(this);
customizeStage.show();
@@ -194,6 +198,7 @@ public class LobbyController {
for (LobbyCloseListener readyListener : lobbyListeners)
readyListener.notify(CloseStatus.READY);
customizeButton.setDisable(true);
}
public void setTitle (String title) {
@@ -222,6 +227,12 @@ public class LobbyController {
public void updateRaceState(RaceState raceState){
this.raceState = raceState;
/*if (this.customizeStage != null) {
this.customizeStage.close();
}*/ // TODO: 17/08/17 ajm412: close the customization window if the host starts the game while customizing
if (!customizeButton.isDisabled()) {
customizeButton.setDisable(true);
}
timeUntilStart.setText("Starting in: " + raceState.getRaceTimeStr());
}
+1 -1
View File
@@ -99,7 +99,7 @@ Table
-fx-text-fill: black;
}
server thread
/*server thread */
.ui-table .column-header {
-fx-background-color: transparent;
}
+1 -1
View File
@@ -39,7 +39,7 @@
<children>
<Button fx:id="readyButton" focusTraversable="false" mnemonicParsing="false" onAction="#readyButtonPressed" prefWidth="101.0" text="Ready" GridPane.halignment="CENTER" />
<Button focusTraversable="false" mnemonicParsing="false" onAction="#leaveLobbyButtonPressed" text="Leave Lobby" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
<Button focusTraversable="false" mnemonicParsing="false" onAction="#customize" text="Customization" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
<Button fx:id="customizeButton" focusTraversable="false" mnemonicParsing="false" onAction="#customize" text="Customization" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
</children>
</GridPane>
<GridPane GridPane.rowIndex="1">