Wrote tests that are currently broken for sending server commands through text chat.

#tests
This commit is contained in:
Calum
2017-09-03 20:38:31 +12:00
parent 88d1e91b6f
commit 5026c568a7
6 changed files with 208 additions and 32 deletions
@@ -697,10 +697,15 @@ public class GameState implements Runnable {
public static void endRace () {
yachts.forEach((id, yacht) -> yacht.setBoatStatus(BoatStatus.FINISHED));
// currentStage = GameStages.FINISHED;
currentStage = GameStages.FINISHED;
System.out.println("FOR FUCKS SAKE YOU FUCKING DEGENERATE");
}
public static void setSpeedMultiplier (double multiplier) {
speedMultiplier = multiplier;
}
public static double getSpeedMultiplier () {
return speedMultiplier;
}
}
@@ -61,6 +61,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
//You should handle interrupts in some way, so that the thread won't keep on forever if you exit the app.
while (!terminated) {
System.out.println("CUNT GF" + GameState.getCurrentStage());
try {
Thread.sleep(1000 / CLIENT_UPDATES_PER_SECOND);
} catch (InterruptedException e) {
@@ -87,22 +88,21 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
//FINISHED
else if (GameState.getCurrentStage() == GameStages.FINISHED) {
broadcastMessage(makeRaceStatusMessage());
System.out.println("BUT I WAS HERE CUNTFACE");
try {
Thread.sleep(1000); //Hackish fix to make sure all threads have broadcasted
Thread.sleep(100); //Hackish fix to make sure all threads have broadcasted
terminate();
} catch (InterruptedException ie) {
serverLog("Thread interrupted while waiting to terminate clients", 1);
}
}
}
// TODO: 14/07/17 wmu16 - Send out disconnect packet to clients
try {
for (ServerToClientThread serverToClientThread : serverToClientThreads) {
serverToClientThread.terminate();
}
serverSocket.close();
return;
System.out.println("closed");
} catch (IOException e) {
System.out.println("IO error in server thread handler upon closing socket");
}
@@ -245,6 +245,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
for (Player player : GameState.getPlayers()) {
ServerYacht y = player.getYacht();
System.out.println(y.getBoatStatus());
BoatSubMessage m = new BoatSubMessage(y.getSourceId(), y.getBoatStatus(),
y.getLegNumber(),
0, 0, 1234L,
@@ -267,6 +268,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
raceStatus = RaceStatus.PREPARATORY;
}
} else if (GameState.getCurrentStage() == GameStages.FINISHED) {
System.out.println("WHAT THE FUCKING FUCK");
raceStatus = RaceStatus.TERMINATED;
} else {
raceStatus = RaceStatus.STARTED;
@@ -279,6 +281,7 @@ public class MainServerThread implements Runnable, ClientConnectionDelegate {
}
public void terminate() {
System.out.println("done");
terminated = true;
}
@@ -386,32 +386,34 @@ public class ServerToClientThread implements Runnable, Observer {
Arrays.copyOfRange(chatterPayload, 3, 3 + chatterPayload.length)
);
String[] words = chatterText.split("\\s+");
if (words.length < 3) {
return;
for (String s : words) {
System.out.println(s);
}
switch (words[2].trim()) {
case ">speed":
try {
GameState.setSpeedMultiplier(Double.valueOf(words[3]));
if (words.length > 2 && isHost) {
switch (words[2].trim()) {
case ">speed":
try {
GameState.setSpeedMultiplier(Double.valueOf(words[3]));
GameState.broadcastChatter(new ChatterMessage(
Byte.toUnsignedInt(chatterPayload[1]),
words[0] + "Host has set speed modifier to x" + words[3]
));
} catch (Exception e) {
logger.error("cannot parse >speed value");
}
return;
case ">finish":
System.out.println(words[2].trim());
GameState.endRace();
GameState.broadcastChatter(new ChatterMessage(
Byte.toUnsignedInt(chatterPayload[1]),
words[0] + "Host has set speed modifier to x" + words[3]
chatterPayload[1],
words[0] + "Host has ended the game"
));
} catch (Exception e) {
logger.error("cannot parse >speed value");
}
break;
case ">finish":
GameState.endRace();
GameState.broadcastChatter(new ChatterMessage(
chatterPayload[1],
words[0] + "Host has ended the game"
));
break;
default:
GameState.broadcastChatter(
ServerPacketParser.extractChatterText(chatterPayload)
);
return;
}
}
GameState.broadcastChatter(
ServerPacketParser.extractChatterText(chatterPayload)
);
}
}