Fixed failing tests & other bug fixes

- Fixed server capacity in server list
- Fixed failing unit tests for chat

Tags: #story[1281] #pair[mra106, cir27]
This commit is contained in:
Michael Rausch
2017-09-27 20:37:29 +13:00
parent 2b3a972ed5
commit 5cc4898ab5
12 changed files with 390 additions and 289 deletions
@@ -1,5 +1,6 @@
package seng302.gameServer;
import java.io.IOException;
import java.util.*;
import javafx.scene.paint.Color;
@@ -81,7 +82,7 @@ public class GameState implements Runnable {
private static MarkOrder markOrder;
private static long startTime;
private static Set<Mark> marks = new HashSet<>();
private static List<Limit> courseLimit;
private static List<Limit> courseLimit = new ArrayList<>();
private static Integer maxPlayers = 8;
private static List<Token> tokensInPlay;
@@ -97,7 +98,6 @@ public class GameState implements Runnable {
windSpeed = 10000d;
yachts = new HashMap<>();
tokensInPlay = new ArrayList<>();
marks = new HashSet<>();
players = new ArrayList<>();
customizationFlag = false;
playerHasLeftFlag = false;
@@ -517,6 +517,7 @@ public class GameState implements Runnable {
return true;
}
}
if (GeoUtility.checkCrossedLine(courseLimit.get(courseLimit.size() - 1), courseLimit.get(0),
yacht.getLastLocation(), yacht.getLocation()) != 0) {
return true;
@@ -1025,6 +1026,12 @@ public class GameState implements Runnable {
public static void setMaxPlayers(Integer newMax){
maxPlayers = newMax;
try {
ServerAdvertiser.getInstance().setCapacity(newMax);
} catch (IOException e) {
logger.warn("Couldn't update max players");
}
}
public static void endRace () {
@@ -63,7 +63,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
ServerAdvertiser.getInstance()
.setMapName(regattaXMLData.getCourseName())
.setCapacity(capacity)
.setNumberOfPlayers(numPlayers)
.setNumberOfPlayers(numPlayers - 1)
.registerGame(PORT, regattaXMLData.getRegattaName());
} catch (IOException e) {
logger.warn("Could not register server");
@@ -84,11 +84,11 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
}
private void startServer() {
PolarTable.parsePolarFile(getClass().getResourceAsStream("/server_config/acc_polars.csv"));
MessageFactory.updateXMLGenerator(raceXMLData, regattaXMLData);
GameState.setRace(raceXMLData);
MessageFactory.updateBoats(new ArrayList<>(GameState.getYachts().values()));
startAdvertisingServer();
PolarTable.parsePolarFile(getClass().getResourceAsStream("/server_config/acc_polars.csv"));
GameState.addMessageEventListener(this::broadcastMessage);
sendSetupMessages();
}
@@ -92,13 +92,10 @@ public class ServerDescription {
public Boolean serverShouldBeRemoved() {
if (lastRefreshed == null) return false;
System.out.println("SBR" + (System.currentTimeMillis() - lastRefreshed > EXPIRY_INTERVAL));
return System.currentTimeMillis() - lastRefreshed > EXPIRY_INTERVAL;
}
public void hasBeenRefreshed(){
System.out.println("Was refreshed");
lastRefreshed = System.currentTimeMillis();
}
}
@@ -37,6 +37,7 @@ import seng302.model.stream.xml.generator.RaceXMLTemplate;
import seng302.model.stream.xml.generator.RegattaXMLTemplate;
import seng302.utilities.XMLGenerator;
import seng302.utilities.XMLParser;
import seng302.visualiser.controllers.ViewManager;
/**
* A class describing a single connection to a Server for the purposes of sending and receiving on
@@ -168,6 +169,9 @@ public class ClientToServerThread implements Runnable {
logger.warn("Closed connection to server", 1);
notifyDisconnectListeners("Connection to server was terminated");
closeSocket();
ViewManager.getInstance().goToStartView();
ViewManager.getInstance().showErrorSnackBar("Server rejected connection.");
}
public void sendCustomizationRequest(CustomizeRequestType reqType, byte[] payload) {
@@ -230,7 +234,6 @@ public class ClientToServerThread implements Runnable {
return;
}
logger.error("Server Denied Connection, Exiting");
final String alertErrorText;
@@ -243,7 +246,8 @@ public class ClientToServerThread implements Runnable {
}
handleConnectionError("Server no longer available.");
notifyDisconnectListeners(alertErrorText);
closeSocket();
System.out.println();
}
/**
@@ -59,7 +59,7 @@ public class StartScreenController implements Initializable{
/**
* Changes the view to the Server Browser.
*/
private void goToServerBrowser() {
public void goToServerBrowser() {
try {
ViewManager.getInstance().setScene(serverList);
} catch (Exception e) {