diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java index 446b0aed61f..f948a91c1a3 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java @@ -398,7 +398,8 @@ public class NewTableDialog extends MageDialog { private void handleError(Exception ex) { logger.fatal("Error loading deck", ex); - JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Error loading deck.", "Error", JOptionPane.ERROR_MESSAGE); + //JOptionPane.showMessageDialog(MageFrame.getDesktop(), "Error loading deck.", "Error", JOptionPane.ERROR_MESSAGE); + MageFrame.getInstance().showErrorDialog("Error loading deck.", ex.getMessage()); } public void showDialog(UUID roomId) { diff --git a/Mage.Common/src/mage/remote/SessionImpl.java b/Mage.Common/src/mage/remote/SessionImpl.java index fd46cdc21ec..d4d8065943b 100644 --- a/Mage.Common/src/mage/remote/SessionImpl.java +++ b/Mage.Common/src/mage/remote/SessionImpl.java @@ -30,6 +30,7 @@ package mage.remote; import mage.MageException; import mage.cards.decks.DeckCardLists; +import mage.cards.decks.InvalidDeckException; import mage.constants.Constants.SessionState; import mage.game.GameException; import mage.game.match.MatchOptions; @@ -404,6 +405,8 @@ public class SessionImpl implements Session { try { if (isConnected()) return server.joinTable(sessionId, roomId, tableId, playerName, playerType, skill, deckList); + } catch (InvalidDeckException iex) { + handleInvalidDeckException(iex); } catch (GameException ex) { handleGameException(ex); } catch (MageException ex) { @@ -1057,6 +1060,12 @@ public class SessionImpl implements Session { private void handleMageException(MageException ex) { logger.fatal("Server error", ex); + client.showError(ex.getMessage()); + } + + private void handleInvalidDeckException(InvalidDeckException iex) { + logger.warn(iex.getMessage() + "\n" + iex.getInvalid()); + client.showError(iex.getMessage() + "\n" + iex.getInvalid()); } private void handleGameException(GameException ex) {