summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/ConnectionControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/ConnectionControl.java')
-rw-r--r--src/jrummikub/control/network/ConnectionControl.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/jrummikub/control/network/ConnectionControl.java b/src/jrummikub/control/network/ConnectionControl.java
index 86322b2..6ded0f3 100644
--- a/src/jrummikub/control/network/ConnectionControl.java
+++ b/src/jrummikub/control/network/ConnectionControl.java
@@ -53,6 +53,8 @@ public class ConnectionControl implements IConnectionControl {
private Event2<String, Color> changeColorEvent = new Event2<String, Color>();
+ private Event gameStartEvent = new Event();
+
private GameData currentGame;
private volatile GameData offeredGame;
@@ -129,6 +131,11 @@ public class ConnectionControl implements IConnectionControl {
}
@Override
+ public IEvent getGameStartEvent() {
+ return gameStartEvent;
+ }
+
+ @Override
public void offerGame(GameData data) {
offeredGame = data;
currentGame = data;
@@ -221,6 +228,19 @@ public class ConnectionControl implements IConnectionControl {
}
+ @Override
+ public void startGame() {
+ final UUID uuid = currentGame.getGameID();
+ run(new SendRunner() {
+ @Override
+ protected void addData(DefaultPacketExtension extension) {
+ extension.setValue("messageType", "game_start");
+ extension.setValue("uuid", uuid.toString());
+ }
+ });
+
+ }
+
private void sendGameOffer() {
final GameData data = offeredGame;
run(new SendRunner() {
@@ -315,6 +335,8 @@ public class ConnectionControl implements IConnectionControl {
} else if (messageType.equals("change_color")) {
changeColorEvent.emit(sender,
(Color) Base64.decodeToObject(extension.getValue("color")));
+ } else if (messageType.equals("game_start")) {
+ gameStartEvent.emit();
} else {
System.err.println("Received unrecognized message of type '"
+ messageType + "'");