Merge pull request #2836 from spjspj/master

Add field for server console
This commit is contained in:
spjspj 2017-02-05 14:54:28 +11:00 committed by GitHub
commit 9fe53e52c2
11 changed files with 57 additions and 25 deletions

View file

@ -26,7 +26,7 @@
* or implied, of BetaSteward_at_googlemail.com. * or implied, of BetaSteward_at_googlemail.com.
*/ */
/* /*
* ConnectDialog.java * ConnectDialog.java
* *
* Created on 20-Jan-2010, 9:37:07 PM * Created on 20-Jan-2010, 9:37:07 PM
@ -391,6 +391,7 @@ public class ConnectDialog extends MageDialog {
connection.setUsername(this.txtUserName.getText().trim()); connection.setUsername(this.txtUserName.getText().trim());
connection.setPassword(this.txtPassword.getText().trim()); connection.setPassword(this.txtPassword.getText().trim());
connection.setForceDBComparison(this.chkForceUpdateDB.isSelected()); connection.setForceDBComparison(this.chkForceUpdateDB.isSelected());
connection.setUserIdStr(System.getProperty("user.name"));
MageFrame.getPreferences().put(KEY_CONNECT_FLAG, ((CountryItemEditor) cbFlag.getEditor()).getImageItem()); MageFrame.getPreferences().put(KEY_CONNECT_FLAG, ((CountryItemEditor) cbFlag.getEditor()).getImageItem());
PreferencesDialog.setProxyInformation(connection); PreferencesDialog.setProxyInformation(connection);

View file

@ -3520,6 +3520,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
if (selectedAvatarId == 0) { if (selectedAvatarId == 0) {
getSelectedAvatar(); getSelectedAvatar();
} }
String userStrId = System.getProperty("user.name");
return new UserData(UserGroup.PLAYER, return new UserData(UserGroup.PLAYER,
PreferencesDialog.selectedAvatarId, PreferencesDialog.selectedAvatarId,
PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SHOW_ABILITY_PICKER_FORCED, "true").equals("true"), PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SHOW_ABILITY_PICKER_FORCED, "true").equals("true"),
@ -3533,7 +3534,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
PreferencesDialog.getCachedValue(PreferencesDialog.KEY_PASS_PRIORITY_CAST, "true").equals("true"), PreferencesDialog.getCachedValue(PreferencesDialog.KEY_PASS_PRIORITY_CAST, "true").equals("true"),
PreferencesDialog.getCachedValue(PreferencesDialog.KEY_PASS_PRIORITY_ACTIVATION, "true").equals("true"), PreferencesDialog.getCachedValue(PreferencesDialog.KEY_PASS_PRIORITY_ACTIVATION, "true").equals("true"),
PreferencesDialog.getCachedValue(PreferencesDialog.KEY_AUTO_ORDER_TRIGGER, "true").equals("true"), PreferencesDialog.getCachedValue(PreferencesDialog.KEY_AUTO_ORDER_TRIGGER, "true").equals("true"),
PreferencesDialog.getCachedValue(PreferencesDialog.KEY_USE_FIRST_MANA_ABILITY, "false").equals("true") PreferencesDialog.getCachedValue(PreferencesDialog.KEY_USE_FIRST_MANA_ABILITY, "false").equals("true"),
userStrId
); );
} }

View file

@ -62,7 +62,7 @@ public interface MageServer {
boolean resetPassword(String sessionId, String email, String authToken, String password) throws MageException; boolean resetPassword(String sessionId, String email, String authToken, String password) throws MageException;
boolean connectUser(String userName, String password, String sessionId, MageVersion version) throws MageException; boolean connectUser(String userName, String password, String sessionId, MageVersion version, String userIdStr) throws MageException;
boolean connectAdmin(String password, String sessionId, MageVersion version) throws MageException; boolean connectAdmin(String password, String sessionId, MageVersion version) throws MageException;
@ -72,7 +72,7 @@ public interface MageServer {
List<CardInfo> getMissingCardsData(List<String> classNames); List<CardInfo> getMissingCardsData(List<String> classNames);
// user methods // user methods
boolean setUserData(String userName, String sessionId, UserData userData, String clientVersion) throws MageException; boolean setUserData(String userName, String sessionId, UserData userData, String clientVersion, String userIdStr) throws MageException;
void sendFeedbackMessage(String sessionId, String username, String title, String type, String message, String email) throws MageException; void sendFeedbackMessage(String sessionId, String username, String title, String type, String message, String email) throws MageException;

View file

@ -55,6 +55,7 @@ public class Connection {
private String proxyPassword; private String proxyPassword;
private int clientCardDatabaseVersion; private int clientCardDatabaseVersion;
private boolean forceDBComparison; private boolean forceDBComparison;
private String userIdStr;
private UserData userData; private UserData userData;
@ -167,6 +168,14 @@ public class Connection {
this.username = username; this.username = username;
} }
public String getUserIdStr() {
return userIdStr;
}
public void setUserIdStr(String userIdStr) {
this.userIdStr = userIdStr;
}
public String getPassword() { public String getPassword() {
return password; return password;
} }

View file

@ -222,9 +222,9 @@ public class SessionImpl implements Session {
boolean registerResult; boolean registerResult;
if (connection.getAdminPassword() == null) { if (connection.getAdminPassword() == null) {
// for backward compatibility. don't remove twice call - first one does nothing but for version checking // for backward compatibility. don't remove twice call - first one does nothing but for version checking
registerResult = server.connectUser(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion()); registerResult = server.connectUser(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion(), connection.getUserIdStr());
if (registerResult) { if (registerResult) {
server.setUserData(connection.getUsername(), sessionId, connection.getUserData(), client.getVersion().toString()); server.setUserData(connection.getUsername(), sessionId, connection.getUserData(), client.getVersion().toString(), connection.getUserIdStr());
} }
} else { } else {
registerResult = server.connectAdmin(connection.getAdminPassword(), sessionId, client.getVersion()); registerResult = server.connectAdmin(connection.getAdminPassword(), sessionId, client.getVersion());
@ -1571,7 +1571,7 @@ public class SessionImpl implements Session {
public boolean updatePreferencesForServer(UserData userData) { public boolean updatePreferencesForServer(UserData userData) {
try { try {
if (isConnected()) { if (isConnected()) {
server.setUserData(connection.getUsername(), sessionId, userData, null); server.setUserData(connection.getUsername(), sessionId, userData, null, null);
} }
return true; return true;
} catch (MageException ex) { } catch (MageException ex) {

View file

@ -46,8 +46,9 @@ public class UserView implements Serializable {
private final Date muteChatUntil; private final Date muteChatUntil;
private final String clientVersion; private final String clientVersion;
private final String email; private final String email;
private final String userIdStr;
public UserView(String userName, String host, String sessionId, Date timeConnected, String gameInfo, String userState, Date muteChatUntil, String clientVersion, String email) { public UserView(String userName, String host, String sessionId, Date timeConnected, String gameInfo, String userState, Date muteChatUntil, String clientVersion, String email, String userIdStr) {
this.userName = userName; this.userName = userName;
this.host = host; this.host = host;
this.sessionId = sessionId; this.sessionId = sessionId;
@ -57,6 +58,7 @@ public class UserView implements Serializable {
this.muteChatUntil = muteChatUntil; this.muteChatUntil = muteChatUntil;
this.clientVersion = clientVersion; this.clientVersion = clientVersion;
this.email = email; this.email = email;
this.userIdStr = userIdStr;
} }
public String getUserName() { public String getUserName() {
@ -95,4 +97,7 @@ public class UserView implements Serializable {
return email; return email;
} }
public String getUserIdStr() {
return userIdStr;
}
} }

View file

@ -158,13 +158,13 @@ public class MageServerImpl implements MageServer {
} }
@Override @Override
public boolean connectUser(String userName, String password, String sessionId, MageVersion version) throws MageException { public boolean connectUser(String userName, String password, String sessionId, MageVersion version, String userIdStr) throws MageException {
try { try {
if (version.compareTo(Main.getVersion()) != 0) { if (version.compareTo(Main.getVersion()) != 0) {
logger.info("MageVersionException: userName=" + userName + ", version=" + version); logger.info("MageVersionException: userName=" + userName + ", version=" + version);
throw new MageVersionException(version, Main.getVersion()); throw new MageVersionException(version, Main.getVersion());
} }
return SessionManager.getInstance().connectUser(sessionId, userName, password); return SessionManager.getInstance().connectUser(sessionId, userName, password, userIdStr);
} catch (MageException ex) { } catch (MageException ex) {
if (ex instanceof MageVersionException) { if (ex instanceof MageVersionException) {
throw (MageVersionException) ex; throw (MageVersionException) ex;
@ -175,11 +175,11 @@ public class MageServerImpl implements MageServer {
} }
@Override @Override
public boolean setUserData(final String userName, final String sessionId, final UserData userData, final String clientVersion) throws MageException { public boolean setUserData(final String userName, final String sessionId, final UserData userData, final String clientVersion, final String userIdStr) throws MageException {
return executeWithResult("setUserData", sessionId, new ActionWithBooleanResult() { return executeWithResult("setUserData", sessionId, new ActionWithBooleanResult() {
@Override @Override
public Boolean execute() throws MageException { public Boolean execute() throws MageException {
return SessionManager.getInstance().setUserData(userName, sessionId, userData, clientVersion); return SessionManager.getInstance().setUserData(userName, sessionId, userData, clientVersion, userIdStr);
} }
}); });
} }
@ -943,7 +943,8 @@ public class MageServerImpl implements MageServer {
user.getUserState().toString(), user.getUserState().toString(),
user.getChatLockedUntil(), user.getChatLockedUntil(),
user.getClientVersion(), user.getClientVersion(),
user.getEmail() user.getEmail(),
user.getUserIdStr()
)); ));
} }
return users; return users;

View file

@ -264,12 +264,13 @@ public class Session {
this.userId = user.getId(); this.userId = user.getId();
} }
public boolean setUserData(String userName, UserData userData, String clientVersion) { public boolean setUserData(String userName, UserData userData, String clientVersion, String userIdStr) {
User user = UserManager.getInstance().getUserByName(userName); User user = UserManager.getInstance().getUserByName(userName);
if (user != null) { if (user != null) {
if (clientVersion != null) { if (clientVersion != null) {
user.setClientVersion(clientVersion); user.setClientVersion(clientVersion);
} }
user.setUserIdStr(userIdStr);
if (user.getUserData() == null || user.getUserData().getGroupId() == UserGroup.DEFAULT.getGroupId()) { if (user.getUserData() == null || user.getUserData().getGroupId() == UserGroup.DEFAULT.getGroupId()) {
user.setUserData(userData); user.setUserData(userData);
} else { } else {

View file

@ -88,7 +88,7 @@ public class SessionManager {
return true; return true;
} }
public boolean connectUser(String sessionId, String userName, String password) throws MageException { public boolean connectUser(String sessionId, String userName, String password, String userIdStr) throws MageException {
Session session = sessions.get(sessionId); Session session = sessions.get(sessionId);
if (session != null) { if (session != null) {
String returnMessage = session.connectUser(userName, password); String returnMessage = session.connectUser(userName, password);
@ -117,10 +117,10 @@ public class SessionManager {
return false; return false;
} }
public boolean setUserData(String userName, String sessionId, UserData userData, String clientVersion) throws MageException { public boolean setUserData(String userName, String sessionId, UserData userData, String clientVersion, String userIdStr) throws MageException {
Session session = sessions.get(sessionId); Session session = sessions.get(sessionId);
if (session != null) { if (session != null) {
session.setUserData(userName, userData, clientVersion); session.setUserData(userName, userData, clientVersion, userIdStr);
return true; return true;
} }
return false; return false;
@ -217,7 +217,7 @@ public class SessionManager {
if (session != null) { if (session != null) {
return UserManager.getInstance().getUser(sessions.get(sessionId).getUserId()); return UserManager.getInstance().getUser(sessions.get(sessionId).getUserId());
} }
logger.error(String.format("Session %s could not be found",sessionId)); logger.error(String.format("Session %s could not be found", sessionId));
return Optional.empty(); return Optional.empty();
} }

View file

@ -96,6 +96,7 @@ public class User {
private Date lockedUntil; private Date lockedUntil;
private final AuthorizedUser authorizedUser; private final AuthorizedUser authorizedUser;
private String clientVersion; private String clientVersion;
private String userIdStr;
public User(String userName, String host, AuthorizedUser authorizedUser) { public User(String userName, String host, AuthorizedUser authorizedUser) {
this.userId = UUID.randomUUID(); this.userId = UUID.randomUUID();
@ -127,6 +128,7 @@ public class User {
this.tablesToDelete = new ArrayList<>(); this.tablesToDelete = new ArrayList<>();
this.sessionId = ""; this.sessionId = "";
this.clientVersion = ""; this.clientVersion = "";
this.userIdStr = "";
} }
public String getName() { public String getName() {
@ -178,6 +180,14 @@ public class User {
this.clientVersion = clientVersion; this.clientVersion = clientVersion;
} }
public void setUserIdStr(String userIdStr) {
this.userIdStr = userIdStr;
}
public String getUserIdStr() {
return this.userIdStr;
}
public String getClientVersion() { public String getClientVersion() {
return clientVersion; return clientVersion;
} }
@ -199,7 +209,7 @@ public class User {
public void lostConnection() { public void lostConnection() {
// Because watched games don't get restored after reconnection call stop watching // Because watched games don't get restored after reconnection call stop watching
for (Iterator<UUID> iterator = watchedGames.iterator(); iterator.hasNext(); ) { for (Iterator<UUID> iterator = watchedGames.iterator(); iterator.hasNext();) {
UUID gameId = iterator.next(); UUID gameId = iterator.next();
GameManager.getInstance().stopWatching(gameId, userId); GameManager.getInstance().stopWatching(gameId, userId);
iterator.remove(); iterator.remove();

View file

@ -23,6 +23,7 @@ public class UserData implements Serializable {
protected boolean passPriorityActivation; protected boolean passPriorityActivation;
protected boolean autoOrderTrigger; protected boolean autoOrderTrigger;
protected boolean useFirstManaAbility = false; protected boolean useFirstManaAbility = false;
private String userIdStr;
protected String matchHistory; protected String matchHistory;
protected int matchQuitRatio; protected int matchQuitRatio;
@ -36,7 +37,7 @@ public class UserData implements Serializable {
public UserData(UserGroup userGroup, int avatarId, boolean showAbilityPickerForced, public UserData(UserGroup userGroup, int avatarId, boolean showAbilityPickerForced,
boolean allowRequestShowHandCards, boolean confirmEmptyManaPool, UserSkipPrioritySteps userSkipPrioritySteps, boolean allowRequestShowHandCards, boolean confirmEmptyManaPool, UserSkipPrioritySteps userSkipPrioritySteps,
String flagName, boolean askMoveToGraveOrder, boolean manaPoolAutomatic, boolean manaPoolAutomaticRestricted, String flagName, boolean askMoveToGraveOrder, boolean manaPoolAutomatic, boolean manaPoolAutomaticRestricted,
boolean passPriorityCast, boolean passPriorityActivation, boolean autoOrderTrigger, boolean useFirstManaAbility) { boolean passPriorityCast, boolean passPriorityActivation, boolean autoOrderTrigger, boolean useFirstManaAbility, String userIdStr) {
this.groupId = userGroup.getGroupId(); this.groupId = userGroup.getGroupId();
this.avatarId = avatarId; this.avatarId = avatarId;
this.showAbilityPickerForced = showAbilityPickerForced; this.showAbilityPickerForced = showAbilityPickerForced;
@ -55,6 +56,7 @@ public class UserData implements Serializable {
this.matchQuitRatio = 0; this.matchQuitRatio = 0;
this.tourneyHistory = ""; this.tourneyHistory = "";
this.tourneyQuitRatio = 0; this.tourneyQuitRatio = 0;
this.userIdStr = userIdStr;
} }
public void update(UserData userData) { public void update(UserData userData) {
@ -72,11 +74,12 @@ public class UserData implements Serializable {
this.passPriorityActivation = userData.passPriorityActivation; this.passPriorityActivation = userData.passPriorityActivation;
this.autoOrderTrigger = userData.autoOrderTrigger; this.autoOrderTrigger = userData.autoOrderTrigger;
this.useFirstManaAbility = userData.useFirstManaAbility; this.useFirstManaAbility = userData.useFirstManaAbility;
this.userIdStr = userData.userIdStr;
// todo: why we don't copy user stats here? // todo: why we don't copy user stats here?
} }
public static UserData getDefaultUserDataView() { public static UserData getDefaultUserDataView() {
return new UserData(UserGroup.DEFAULT, 0, false, false, true, null, getDefaultFlagName(), false, true, true, false, false, false, false); return new UserData(UserGroup.DEFAULT, 0, false, false, true, null, getDefaultFlagName(), false, true, true, false, false, false, false, "");
} }
public void setGroupId(int groupId) { public void setGroupId(int groupId) {