diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-11 03:15:13 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-11 03:15:13 +0200 |
commit | f4972b339ba28ee83cee08aa090039edfff12e30 (patch) | |
tree | 845a5f99d41a6601ddef353961557bd60ace8e25 /src/jrummikub/control/network/ConnectionControl.java | |
parent | dbd57d42188aa8499211f9a0461fd3511c80f578 (diff) | |
download | JRummikub-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
Diffstat (limited to 'src/jrummikub/control/network/ConnectionControl.java')
-rw-r--r-- | src/jrummikub/control/network/ConnectionControl.java | 20 |
1 files changed, 8 insertions, 12 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); } |