summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-06-11 03:15:13 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-06-11 03:15:13 +0200
commitf4972b339ba28ee83cee08aa090039edfff12e30 (patch)
tree845a5f99d41a6601ddef353961557bd60ace8e25
parentdbd57d42188aa8499211f9a0461fd3511c80f578 (diff)
downloadJRummikub-f4972b339ba28ee83cee08aa090039edfff12e30.tar
JRummikub-f4972b339ba28ee83cee08aa090039edfff12e30.zip
Transmit a whole GameSettings object with game offers
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@410 72836036-5685-4462-b002-a69064685172
-rw-r--r--src/jrummikub/control/network/ConnectionControl.java20
-rw-r--r--src/jrummikub/control/network/NetworkControl.java8
-rw-r--r--src/jrummikub/control/network/NetworkSettingsControl.java5
-rw-r--r--src/jrummikub/view/IGameListPanel.java27
-rw-r--r--src/jrummikub/view/impl/GameListPanel.java5
5 files changed, 23 insertions, 42 deletions
diff --git a/src/jrummikub/control/network/ConnectionControl.java b/src/jrummikub/control/network/ConnectionControl.java
index 171c15d..56dac8c 100644
--- a/src/jrummikub/control/network/ConnectionControl.java
+++ b/src/jrummikub/control/network/ConnectionControl.java
@@ -4,6 +4,7 @@ import java.util.UUID;
import javax.swing.SwingUtilities;
+import jrummikub.model.GameSettings;
import jrummikub.util.Event;
import jrummikub.util.Event1;
import jrummikub.util.IEvent;
@@ -24,6 +25,7 @@ import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smack.packet.XMPPError;
import org.jivesoftware.smack.packet.XMPPError.Type;
+import org.jivesoftware.smack.util.Base64;
import org.jivesoftware.smackx.muc.DiscussionHistory;
import org.jivesoftware.smackx.muc.MultiUserChat;
@@ -120,14 +122,10 @@ class ConnectionControl {
host = host.substring(host.indexOf('/') + 1);
UUID uuid = UUID.fromString(extension.getValue("uuid"));
- int currentPlayerCount = Integer.parseInt(extension
- .getValue("currentPlayerCount"));
- int maxPlayerCount = Integer.parseInt(extension
- .getValue("maxPlayerCount"));
-
- GameData gameData = new GameData(uuid, host);
- gameData.setCurrentPlayerCount(currentPlayerCount);
- gameData.setMaxPlayerCount(maxPlayerCount);
+ GameSettings settings = (GameSettings) Base64.decodeToObject(extension
+ .getValue("gameSettings"));
+
+ GameData gameData = new GameData(uuid, settings, host);
gameOfferEvent.emit(gameData);
} else if (messageType.equals("game_withdrawal")) {
gameWithdrawalEvent.emit(UUID.fromString(extension.getValue("uuid")));
@@ -143,10 +141,8 @@ class ConnectionControl {
extension.setValue("messageType", "game_offer");
extension.setValue("uuid", data.getGameID().toString());
- extension.setValue("currentPlayerCount",
- Integer.toString(data.getCurrentPlayerCount()));
- extension.setValue("maxPlayerCount",
- Integer.toString(data.getMaxPlayerCount()));
+ extension.setValue("gameSettings",
+ Base64.encodeObject(data.getGameSettings(), Base64.GZIP));
return createMessage(extension);
}
diff --git a/src/jrummikub/control/network/NetworkControl.java b/src/jrummikub/control/network/NetworkControl.java
index b6dc27e..ed2c8e6 100644
--- a/src/jrummikub/control/network/NetworkControl.java
+++ b/src/jrummikub/control/network/NetworkControl.java
@@ -36,11 +36,6 @@ public class NetworkControl {
public void handle() {
view.getGameListPanel().setChannelName(loginData.getChannelName());
view.showGameListPanel(true);
-
- GameData testData = new GameData(UUID.randomUUID(), "NeoRaider");
- testData.setCurrentPlayerCount(2);
- testData.setMaxPlayerCount(4);
-
}
}));
@@ -63,8 +58,7 @@ public class NetworkControl {
game = value;
gameMap.put(value.getGameID(), value);
} else {
- game.setCurrentPlayerCount(value.getCurrentPlayerCount());
- game.setMaxPlayerCount(value.getMaxPlayerCount());
+ game.setGameSettings(value.getGameSettings());
}
view.getGameListPanel().addGame(game);
diff --git a/src/jrummikub/control/network/NetworkSettingsControl.java b/src/jrummikub/control/network/NetworkSettingsControl.java
index d1a56e6..ff62d14 100644
--- a/src/jrummikub/control/network/NetworkSettingsControl.java
+++ b/src/jrummikub/control/network/NetworkSettingsControl.java
@@ -8,7 +8,7 @@ import jrummikub.view.IGameListPanel.GameData;
import jrummikub.view.IView;
public class NetworkSettingsControl extends SettingsControl {
- private GameData gameData = new GameData(UUID.randomUUID());
+ private GameData gameData = new GameData(UUID.randomUUID(), settings);
private ConnectionControl connectionControl;
public NetworkSettingsControl(ConnectionControl connectionControl, IView view, GameSettings settings) {
@@ -24,9 +24,6 @@ public class NetworkSettingsControl extends SettingsControl {
@Override
protected void update() {
super.update();
-
- gameData.setMaxPlayerCount(settings.getPlayerList().size());
-
connectionControl.offerGame(gameData);
}
diff --git a/src/jrummikub/view/IGameListPanel.java b/src/jrummikub/view/IGameListPanel.java
index 018d931..cb77cdc 100644
--- a/src/jrummikub/view/IGameListPanel.java
+++ b/src/jrummikub/view/IGameListPanel.java
@@ -2,6 +2,7 @@ package jrummikub.view;
import java.util.UUID;
+import jrummikub.model.GameSettings;
import jrummikub.util.IEvent;
import jrummikub.util.IEvent1;
@@ -9,33 +10,25 @@ public interface IGameListPanel {
public static class GameData {
private UUID gameID;
private String host;
- private int currentPlayerCount = 0;
- private int maxPlayerCount = 0;
+ private GameSettings gameSettings;
- public GameData(UUID gameID) {
- this.gameID = gameID;
+ public GameData(UUID gameID, GameSettings settings) {
+ this(gameID, settings, null);
}
- public GameData(UUID gameID, String host) {
+ public GameData(UUID gameID, GameSettings settings, String host) {
this.gameID = gameID;
+ this.gameSettings = settings;
this.host = host;
}
- public void setCurrentPlayerCount(int i) {
- currentPlayerCount = i;
- }
-
- public int getCurrentPlayerCount() {
- return currentPlayerCount;
- }
-
- public void setMaxPlayerCount(int i) {
- maxPlayerCount = i;
+ public void setGameSettings(GameSettings settings) {
+ gameSettings = settings;
}
- public int getMaxPlayerCount() {
- return maxPlayerCount;
+ public GameSettings getGameSettings() {
+ return gameSettings;
}
public String getHost() {
diff --git a/src/jrummikub/view/impl/GameListPanel.java b/src/jrummikub/view/impl/GameListPanel.java
index dae0f27..99807f8 100644
--- a/src/jrummikub/view/impl/GameListPanel.java
+++ b/src/jrummikub/view/impl/GameListPanel.java
@@ -191,8 +191,9 @@ class GameListPanel extends JPanel implements IGameListPanel {
GameData gameData = (GameData) value;
host = gameData.getHost();
- playerCount = gameData.getCurrentPlayerCount() + "/"
- + gameData.getMaxPlayerCount();
+ /*playerCount = gameData.getCurrentPlayerCount() + "/"
+ + gameData.getMaxPlayerCount();*/
+ playerCount = String.valueOf(gameData.getGameSettings().getPlayerList().size());
} else {
host = String.valueOf(value);
}