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
This commit is contained in:
parent
dbd57d4218
commit
f4972b339b
5 changed files with 22 additions and 41 deletions
|
@ -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"));
|
||||
GameSettings settings = (GameSettings) Base64.decodeToObject(extension
|
||||
.getValue("gameSettings"));
|
||||
|
||||
GameData gameData = new GameData(uuid, host);
|
||||
gameData.setCurrentPlayerCount(currentPlayerCount);
|
||||
gameData.setMaxPlayerCount(maxPlayerCount);
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 void setGameSettings(GameSettings settings) {
|
||||
gameSettings = settings;
|
||||
}
|
||||
|
||||
public int getCurrentPlayerCount() {
|
||||
return currentPlayerCount;
|
||||
}
|
||||
|
||||
public void setMaxPlayerCount(int i) {
|
||||
maxPlayerCount = i;
|
||||
}
|
||||
|
||||
public int getMaxPlayerCount() {
|
||||
return maxPlayerCount;
|
||||
public GameSettings getGameSettings() {
|
||||
return gameSettings;
|
||||
}
|
||||
|
||||
public String getHost() {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Reference in a new issue