mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
fixed some merge issues + added additional connection properties
This commit is contained in:
parent
38da157f8c
commit
864a318b3f
21 changed files with 241 additions and 1630 deletions
|
|
@ -60,6 +60,7 @@ import mage.interfaces.ActionWithResult;
|
|||
import org.mage.network.interfaces.MageServer;
|
||||
import mage.interfaces.ServerState;
|
||||
import mage.interfaces.callback.ClientCallback;
|
||||
import mage.remote.Connection;
|
||||
import mage.remote.DisconnectReason;
|
||||
import mage.remote.MageVersionException;
|
||||
import mage.server.draft.CubeFactory;
|
||||
|
|
@ -242,16 +243,16 @@ public class Main implements MageServer {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean registerClient(String userName, String sessionId, MageVersion version, String host) {
|
||||
public boolean registerClient(Connection connection, String sessionId, MageVersion version, String host) {
|
||||
try {
|
||||
if (version.compareTo(Main.getVersion()) != 0) {
|
||||
logger.info("MageVersionException: userName=" + userName + ", version=" + version);
|
||||
LogServiceImpl.instance.log(LogKeys.KEY_WRONG_VERSION, userName, version.toString(), Main.getVersion().toString(), sessionId);
|
||||
logger.info("MageVersionException: userName=" + connection.getUsername() + ", version=" + version);
|
||||
LogServiceImpl.instance.log(LogKeys.KEY_WRONG_VERSION, connection.getUsername(), version.toString(), Main.getVersion().toString(), sessionId);
|
||||
String message = "Wrong client version " + version + ", expecting version " + Main.getVersion() + ". \r\n\r\nPlease download needed version from http://XMage.de or http://www.slightlymagic.net/forum/viewforum.php?f=70";
|
||||
server.informClient(sessionId, "Wrong version", message, MessageType.ERROR);
|
||||
return false;
|
||||
}
|
||||
return SessionManager.getInstance().registerUser(sessionId, userName, host);
|
||||
return SessionManager.getInstance().registerUser(sessionId, connection, host);
|
||||
} catch (MageException ex) {
|
||||
// if (ex instanceof MageVersionException) {
|
||||
// throw (MageVersionException)ex;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ import mage.MageException;
|
|||
import mage.interfaces.callback.ClientCallback;
|
||||
import mage.players.net.UserData;
|
||||
import mage.players.net.UserGroup;
|
||||
import mage.remote.Connection;
|
||||
import mage.server.game.GamesRoomManager;
|
||||
import mage.server.util.ConfigSettings;
|
||||
import mage.view.UserDataView;
|
||||
|
|
@ -83,7 +84,7 @@ public class Session {
|
|||
this.lock = new ReentrantLock();
|
||||
}
|
||||
|
||||
public String registerUser(String userName) throws MageException {
|
||||
public String registerUser(Connection connection) throws MageException {
|
||||
// String returnMessage = registerUserHandling(userName);
|
||||
// if (returnMessage != null) {
|
||||
// sendErrorMessageToClient(returnMessage);
|
||||
|
|
@ -95,15 +96,16 @@ public class Session {
|
|||
Main.getInstance().pingClient(sessionId);
|
||||
}
|
||||
}, 10, 60, TimeUnit.SECONDS);
|
||||
return registerUserHandling(userName);
|
||||
return registerUserHandling(connection);
|
||||
}
|
||||
|
||||
public boolean isLocked() {
|
||||
return lock.isLocked();
|
||||
}
|
||||
|
||||
public String registerUserHandling(String userName) throws MageException {
|
||||
public String registerUserHandling(Connection connection) throws MageException {
|
||||
this.isAdmin = false;
|
||||
String userName = connection.getUsername();
|
||||
if (userName.equals("Admin")) {
|
||||
return "User name Admin already in use";
|
||||
}
|
||||
|
|
@ -141,6 +143,9 @@ public class Session {
|
|||
return new StringBuilder("Error connecting ").append(userName).toString();
|
||||
}
|
||||
this.userId = user.getId();
|
||||
|
||||
setUserData(user, connection);
|
||||
|
||||
if (reconnect) { // must be connected to receive the message
|
||||
UUID chatId = GamesRoomManager.getInstance().getRoom(GamesRoomManager.getInstance().getMainRoomId()).getChatId();
|
||||
if (chatId != null) {
|
||||
|
|
@ -164,25 +169,25 @@ public class Session {
|
|||
this.userId = user.getId();
|
||||
}
|
||||
|
||||
public boolean setUserData(String userName, UserDataView userDataView) {
|
||||
User user = UserManager.getInstance().findUser(userName);
|
||||
public boolean setUserData(User user, Connection connection) {
|
||||
// User user = UserManager.getInstance().findUser(userName);
|
||||
if (user != null) {
|
||||
UserData userData = user.getUserData();
|
||||
if (userData == null) {
|
||||
userData = new UserData(UserGroup.PLAYER, userDataView.getAvatarId(),
|
||||
userDataView.isShowAbilityPickerForced(), userDataView.allowRequestShowHandCards(),
|
||||
userDataView.confirmEmptyManaPool(), userDataView.getUserSkipPrioritySteps(),
|
||||
userDataView.getFlagName());
|
||||
userData = new UserData(UserGroup.PLAYER, connection.getAvatarId(),
|
||||
connection.isShowAbilityPickerForced(), connection.allowRequestShowHandCards(),
|
||||
connection.confirmEmptyManaPool(), connection.getUserSkipPrioritySteps(),
|
||||
connection.getFlagName());
|
||||
user.setUserData(userData);
|
||||
} else {
|
||||
if (userDataView.getAvatarId() == 51) { // Update special avatar if first avatar is selected
|
||||
updateAvatar(userName, userData);
|
||||
if (connection.getAvatarId() == 51) { // Update special avatar if first avatar is selected
|
||||
updateAvatar(connection.getUsername(), userData);
|
||||
}
|
||||
userData.setAvatarId(userDataView.getAvatarId());
|
||||
userData.setShowAbilityPickerForced(userDataView.isShowAbilityPickerForced());
|
||||
userData.setAllowRequestShowHandCards(userDataView.allowRequestShowHandCards());
|
||||
userData.setUserSkipPrioritySteps(userDataView.getUserSkipPrioritySteps());
|
||||
userData.setConfirmEmptyManaPool(userDataView.confirmEmptyManaPool());
|
||||
userData.setAvatarId(connection.getAvatarId());
|
||||
userData.setShowAbilityPickerForced(connection.isShowAbilityPickerForced());
|
||||
userData.setAllowRequestShowHandCards(connection.allowRequestShowHandCards());
|
||||
userData.setUserSkipPrioritySteps(connection.getUserSkipPrioritySteps());
|
||||
userData.setConfirmEmptyManaPool(connection.confirmEmptyManaPool());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ 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;
|
||||
|
|
@ -73,23 +74,23 @@ public class SessionManager {
|
|||
// sessions.put(sessionId, session);
|
||||
// }
|
||||
|
||||
public boolean registerUser(String sessionId, String userName, String host) throws MageException {
|
||||
public boolean registerUser(String sessionId, Connection connection, String host) throws MageException {
|
||||
Session session = new Session(sessionId);
|
||||
sessions.put(sessionId, session);
|
||||
session.setHost(host);
|
||||
// Session session = sessions.get(sessionId);
|
||||
// if (session != null) {
|
||||
String returnMessage = session.registerUser(userName);
|
||||
String returnMessage = session.registerUser(connection);
|
||||
if (returnMessage == null) {
|
||||
LogServiceImpl.instance.log(LogKeys.KEY_USER_CONNECTED, userName, session.getHost(), sessionId);
|
||||
LogServiceImpl.instance.log(LogKeys.KEY_USER_CONNECTED, connection.getUsername(), session.getHost(), sessionId);
|
||||
|
||||
logger.info(userName + " joined server");
|
||||
logger.info(connection.getUsername() + " joined server");
|
||||
logger.debug("- userId: " + session.getUserId());
|
||||
logger.debug("- sessionId: " + sessionId);
|
||||
logger.debug("- host: " + session.getHost());
|
||||
return true;
|
||||
}
|
||||
logger.debug(userName + " not registered: " + returnMessage);
|
||||
logger.debug(connection.getUsername() + " not registered: " + returnMessage);
|
||||
Main.getInstance().informClient(sessionId, "Connection Error", returnMessage, MessageType.ERROR);
|
||||
// Server.informClient(sessionId, returnMessage, MessageType.ERROR);
|
||||
|
||||
|
|
@ -110,14 +111,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 userName, String sessionId, UserDataView userDataView) throws MageException {
|
||||
// Session session = sessions.get(sessionId);
|
||||
// if (session != null) {
|
||||
// session.setUserData(userName, userDataView);
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
|
||||
public void disconnect(String sessionId, DisconnectReason reason) {
|
||||
Session session = sessions.get(sessionId);
|
||||
|
|
|
|||
|
|
@ -123,17 +123,10 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable {
|
|||
for (User user : UserManager.getInstance().getUsers()) {
|
||||
Session session = SessionManager.getInstance().getSession(user.getSessionId());
|
||||
try {
|
||||
<<<<<<< HEAD
|
||||
users.add(new UsersView(user.getName(), user.getInfo(), user.getGameInfo(), session.getPingInfo()));
|
||||
users.add(new UsersView(user.getUserData().getFlagName(), user.getName(), user.getInfo(), user.getGameInfo(), session.getPingInfo()));
|
||||
} catch (Exception ex) {
|
||||
logger.fatal("User update exception: " + user.getName() + " - " + ex.toString(), ex);
|
||||
users.add(new UsersView(user.getName(), user.getInfo(), "[exception]", session.getPingInfo()));
|
||||
=======
|
||||
users.add(new UsersView(user.getUserData().getFlagName(), user.getName(), user.getInfo(), user.getGameInfo(), user.getPingInfo()));
|
||||
} catch (Exception ex) {
|
||||
logger.fatal("User update exception: " + user.getName() + " - " + ex.toString(), ex);
|
||||
users.add(new UsersView(user.getUserData().getFlagName(), user.getName(), user.getInfo(), "[exception]", user.getPingInfo()));
|
||||
>>>>>>> master
|
||||
users.add(new UsersView(user.getUserData().getFlagName(), user.getName(), user.getInfo(), "[exception]", session.getPingInfo()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue