This commit is contained in:
magenoxx 2014-07-30 19:36:35 +04:00
commit 05426f7dec
5 changed files with 38 additions and 12 deletions

View file

@ -712,7 +712,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
connection.setShowAbilityPickerForced(showAbilityPickerForced);
logger.debug("connecting (auto): " + proxyType + " " + proxyServer + " " + proxyPort + " " + proxyUsername);
if (MageFrame.connect(connection)) {
showGames();
showGames(false);
return true;
} else {
showMessage("Unable to connect to server");
@ -888,7 +888,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}//GEN-LAST:event_btnDeckEditorActionPerformed
private void btnGamesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGamesActionPerformed
this.showGames();
this.showGames(true);
}//GEN-LAST:event_btnGamesActionPerformed
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExitActionPerformed
@ -970,10 +970,14 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
this.tablesPane.hideTables();
}
public void showGames() {
public void showGames(boolean setActive) {
MagePane topPane = getTopMost(tablesPane);
this.tablesPane.setVisible(true);
this.tablesPane.showTables();
setActive(tablesPane);
if (!setActive && topPane != null) {
setActive(topPane);
}
}
public void hideGames() {

View file

@ -337,7 +337,7 @@ public class ConnectDialog extends MageDialog {
if (result) {
lblStatus.setText("");
connected();
MageFrame.getInstance().showGames();
MageFrame.getInstance().showGames(false);
} else {
lblStatus.setText("Could not connect");
}

View file

@ -42,6 +42,8 @@ import org.apache.log4j.Logger;
*/
public class ChatManager {
private static final Logger logger = Logger.getLogger(ChatManager.class);
private static final ChatManager INSTANCE = new ChatManager();
public static ChatManager getInstance() {
@ -59,19 +61,28 @@ public class ChatManager {
}
public void joinChat(UUID chatId, UUID userId) {
chatSessions.get(chatId).join(userId);
if (chatSessions.containsKey(chatId)) {
chatSessions.get(chatId).join(userId);
} else {
logger.debug("ChatManager:joinChat - chatId does not exist - chatId: " + chatId +" userId: " + userId);
}
}
public void leaveChat(UUID chatId, UUID userId) {
if (chatSessions.containsKey(chatId)) {
chatSessions.get(chatId).kill(userId, DisconnectReason.CleaningUp);
}
} else {
logger.debug("ChatManager:leaveChat - chatId does not exist - chatId: " + chatId +" userId: " + userId);
}
}
public void destroyChatSession(UUID chatId) {
if (chatId != null) {
if (chatId != null && chatSessions.containsKey(chatId)) {
chatSessions.remove(chatId);
}
} else {
logger.debug("ChatManager:destroy chat - chatId does not exist - chatId: " + chatId);
}
}
public void broadcast(UUID chatId, String userName, String message, MessageColor color) {

View file

@ -1004,6 +1004,9 @@ public class MageServerImpl implements MageServer {
protected void execute(final String actionName, final String sessionId, final Action action) throws MageException {
if (SessionManager.getInstance().isValidSession(sessionId)) {
try {
if (actionName.equals("joinChat")) {
logger.debug("MageServerImpl.execute sessionId: " + sessionId + " action: " + actionName);
}
callExecutor.execute(
new Runnable() {
@Override
@ -1021,7 +1024,7 @@ public class MageServerImpl implements MageServer {
}
);
}
catch (Exception ex) {
catch (Exception ex) {
handleException(ex);
}
} else {

View file

@ -28,7 +28,6 @@
package mage.server;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
@ -192,8 +191,17 @@ public class Session {
return sessionId;
}
public void userLostConnection() {
//synchronized public void userLostConnection() {
public void userLostConnection() {
User user = UserManager.getInstance().getUser(userId);
if (user == null) {
logger.error("Session.userLostConnection user for session not found sessionId: " + sessionId + " userId: " +userId);
return;
}
if (user.getSessionId().isEmpty()) {
logger.debug("Session.userLostConnection user was already disconnected sessionId: " + sessionId + " userId: " +userId);
return;
}
if (logger.isInfoEnabled()) {
StringBuilder sb = new StringBuilder("user ");
if (user == null) {
@ -218,7 +226,7 @@ public class Session {
call.setMessageId(messageId++);
callbackHandler.handleCallbackOneway(new Callback(call));
} catch (HandleCallbackException ex) {
logger.fatal(new StringBuilder("Session of userId ").append(userId).append(" fireCallback error: ").append(ex.getMessage()).toString(), ex);
logger.info(new StringBuilder("Session of userId ").append(userId).append(" callback exception: ").append(ex.getMessage()).toString());
userLostConnection();
}
}