added setPreferences

This commit is contained in:
betasteward 2015-06-24 15:01:14 -04:00
parent 8aeadf1143
commit 4ddb871f9b
7 changed files with 53 additions and 24 deletions

View file

@ -1731,7 +1731,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
}
try {
MageFrame.getClient().updatePreferencesForServer(getUserData());
MageFrame.getClient().setPreferences(getUserData());
prefs.flush();
} catch (BackingStoreException ex) {
@ -2408,7 +2408,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
public void mousePressed(MouseEvent e) {
if (selectedAvatarId != id) {
setSelectedId(id);
MageFrame.getClient().updatePreferencesForServer(getUserData());
MageFrame.getClient().setPreferences(getUserData());
}
}
});

View file

@ -244,8 +244,12 @@ public class Client {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public void updatePreferencesForServer(UserDataView view) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
public void setPreferences(UserDataView view) {
try {
clientMessageHandler.setPreferences(view);
} catch (Exception ex) {
logger.error("Error updating preferences", ex);
}
}
public boolean startMatch(UUID roomId, UUID tableId) {

View file

@ -1,5 +1,6 @@
package org.mage.network.handlers.client;
import org.mage.network.model.SetPreferencesRequest;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import java.io.Serializable;
@ -13,6 +14,7 @@ import mage.constants.PlayerAction;
import mage.game.match.MatchOptions;
import mage.view.RoomView;
import mage.view.TableView;
import mage.view.UserDataView;
import org.mage.network.handlers.WriteListener;
import org.mage.network.interfaces.MageClient;
import org.mage.network.model.ChatMessageRequest;
@ -188,4 +190,8 @@ public class ClientMessageHandler extends SimpleChannelInboundHandler<ClientMess
ctx.writeAndFlush(new PlayerActionRequest(action, gameId, data)).addListener(WriteListener.getInstance());
}
public void setPreferences(UserDataView view) {
ctx.writeAndFlush(new SetPreferencesRequest(view)).addListener(WriteListener.getInstance());
}
}

View file

@ -13,6 +13,7 @@ import mage.remote.DisconnectReason;
import mage.utils.MageVersion;
import mage.view.RoomView;
import mage.view.TableView;
import mage.view.UserDataView;
/**
*
@ -22,6 +23,7 @@ public interface MageServer {
boolean registerClient(Connection connection, String sessionId, MageVersion version, String host);
void disconnect(String sessionId, DisconnectReason reason);
void setPreferences(String sessionId, UserDataView userDataView);
void receiveChatMessage(UUID chatId, String sessionId, String message);
void joinChat(UUID chatId, String sessionId);

View file

@ -0,0 +1,23 @@
package org.mage.network.model;
import io.netty.channel.ChannelHandlerContext;
import mage.view.UserDataView;
import org.mage.network.interfaces.MageServer;
/**
*
* @author BetaSteward
*/
public class SetPreferencesRequest extends ServerRequest {
private final UserDataView view;
public SetPreferencesRequest(UserDataView view) {
this.view = view;
}
@Override
public void handleMessage(MageServer server, ChannelHandlerContext ctx) {
server.setPreferences(ctx.channel().id().asLongText(), view);
}
}

View file

@ -76,6 +76,7 @@ import mage.view.GameEndView;
import mage.view.GameView;
import mage.view.RoomView;
import mage.view.TableView;
import mage.view.UserDataView;
import mage.view.UserRequestMessage;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.log4j.Logger;
@ -195,7 +196,7 @@ public class ServerMain implements MageServer {
}
@Override
public boolean registerClient(Connection connection, String sessionId, MageVersion version, String host) {
public boolean registerClient(final Connection connection, final String sessionId, final MageVersion version, final String host) {
if (version.compareTo(ServerMain.getVersion()) != 0) {
logger.info("MageVersionException: userName=" + connection.getUsername() + ", version=" + version);
LogServiceImpl.instance.log(LogKeys.KEY_WRONG_VERSION, connection.getUsername(), version.toString(), ServerMain.getVersion().toString(), sessionId);
@ -206,15 +207,10 @@ public class ServerMain implements MageServer {
return SessionManager.getInstance().registerUser(sessionId, connection, host);
}
// @Override
// public boolean setUserData(final String userName, final String sessionId, final UserDataView userDataView) throws MageException {
// return executeWithResult("setUserData", sessionId, new ActionWithBooleanResult() {
// @Override
// public Boolean execute() throws MageException {
// return SessionManager.getInstance().setUserData(userName, sessionId, userDataView);
// }
// });
// }
@Override
public void setPreferences(final String sessionId, final UserDataView userDataView) {
SessionManager.getInstance().setUserData(sessionId, userDataView);
}
//
// @Override
// public boolean registerAdmin(String password, String sessionId, MageVersion version) throws MageException {

View file

@ -31,13 +31,11 @@ import mage.remote.DisconnectReason;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import mage.MageException;
import mage.remote.Connection;
import mage.server.services.LogKeys;
import mage.server.services.impl.LogServiceImpl;
import mage.view.UserDataView;
import org.apache.log4j.Logger;
import org.mage.network.Server;
import org.mage.network.model.MessageType;
/**
@ -110,14 +108,14 @@ public class SessionManager {
return false;
}
// public boolean setUserData(String userName, String sessionId, UserDataView userDataView) throws MageException {
// Session session = sessions.get(sessionId);
// if (session != null) {
// session.setUserData(userName, userDataView);
// return true;
// }
// return false;
// }
public boolean setUserData(String sessionId, UserDataView userDataView) {
Session session = sessions.get(sessionId);
if (session != null) {
session.setUserData(UserManager.getInstance().getUser(session.getUserId()), userDataView);
return true;
}
return false;
}
public void disconnect(String sessionId, DisconnectReason reason) {
Session session = sessions.get(sessionId);