From 5d8ae4d4116fe42faf1aa37b67261bd52048cb66 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sat, 8 Oct 2016 19:03:09 +0200 Subject: [PATCH] * Workaround to fix problem with deck layout. --- .../client/deckeditor/table/TableModel.java | 3 +-- Mage.Common/src/mage/remote/SessionImpl.java | 11 ++++++++++ .../main/java/mage/cards/CardGraphicInfo.java | 13 ++++++++--- .../java/mage/cards/decks/DeckCardLayout.java | 5 +++-- .../cards/decks/importer/DckDeckImporter.java | 22 +++++++++++-------- 5 files changed, 38 insertions(+), 16 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java index 65c5ebd0276..8407881d40c 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java @@ -54,7 +54,6 @@ import mage.client.deckeditor.SortSetting; import mage.client.plugins.impl.Plugins; import mage.client.util.Config; import mage.client.util.Event; -import mage.client.util.ImageHelper; import mage.client.util.Listener; import mage.client.util.gui.GuiDisplayUtil; import mage.constants.CardType; @@ -409,7 +408,7 @@ public class TableModel extends AbstractTableModel implements ICardGrid { Image image = Plugins.getInstance().getOriginalImage(card); if (image != null && image instanceof BufferedImage) { // XXX: scaled to fit width - bigCard.setCard(card.getId(), EnlargeMode.NORMAL, image, new ArrayList(), false); + bigCard.setCard(card.getId(), EnlargeMode.NORMAL, image, new ArrayList<>(), false); } else { drawCardText(card); } diff --git a/Mage.Common/src/mage/remote/SessionImpl.java b/Mage.Common/src/mage/remote/SessionImpl.java index f73b4f215f3..3107855de32 100644 --- a/Mage.Common/src/mage/remote/SessionImpl.java +++ b/Mage.Common/src/mage/remote/SessionImpl.java @@ -675,6 +675,9 @@ public class SessionImpl implements Session { public boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password) { try { if (isConnected()) { + // Workaround to fix Can't join table problem + deckList.setCardLayout(null); + deckList.setSideboardLayout(null); return server.joinTable(sessionId, roomId, tableId, playerName, playerType, skill, deckList, password); } } catch (InvalidDeckException iex) { @@ -693,6 +696,9 @@ public class SessionImpl implements Session { public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password) { try { if (isConnected()) { + // Workaround to fix Can't join table problem + deckList.setCardLayout(null); + deckList.setSideboardLayout(null); return server.joinTournamentTable(sessionId, roomId, tableId, playerName, playerType, skill, deckList, password); } } catch (GameException ex) { @@ -1175,6 +1181,9 @@ public class SessionImpl implements Session { public boolean submitDeck(UUID tableId, DeckCardLists deck) { try { if (isConnected()) { + // Workaround to fix Can't join table problem + deck.setCardLayout(null); + deck.setSideboardLayout(null); return server.submitDeck(sessionId, tableId, deck); } } catch (GameException ex) { @@ -1191,6 +1200,8 @@ public class SessionImpl implements Session { public boolean updateDeck(UUID tableId, DeckCardLists deck) { try { if (isConnected()) { + deck.setCardLayout(null); + deck.setSideboardLayout(null); server.updateDeck(sessionId, tableId, deck); return true; } diff --git a/Mage/src/main/java/mage/cards/CardGraphicInfo.java b/Mage/src/main/java/mage/cards/CardGraphicInfo.java index 2d693973064..40d67a23c29 100644 --- a/Mage/src/main/java/mage/cards/CardGraphicInfo.java +++ b/Mage/src/main/java/mage/cards/CardGraphicInfo.java @@ -3,6 +3,7 @@ package mage.cards; import mage.ObjectColor; public final class CardGraphicInfo { + private final ObjectColor frameColor; private final FrameStyle frameStyle; private final boolean useVariousArt; @@ -17,9 +18,15 @@ public final class CardGraphicInfo { this.useVariousArt = useVariousArt; } - public ObjectColor getFrameColor() { return this.frameColor != null ? this.frameColor.copy() : null; } + public ObjectColor getFrameColor() { + return this.frameColor != null ? this.frameColor.copy() : null; + } - public FrameStyle getFrameStyle() { return this.frameStyle; } + public FrameStyle getFrameStyle() { + return this.frameStyle; + } - public boolean getUsesVariousArt() { return this.useVariousArt; } + public boolean getUsesVariousArt() { + return this.useVariousArt; + } } diff --git a/Mage/src/main/java/mage/cards/decks/DeckCardLayout.java b/Mage/src/main/java/mage/cards/decks/DeckCardLayout.java index 2cbab4ac286..eaf6dc4da95 100644 --- a/Mage/src/main/java/mage/cards/decks/DeckCardLayout.java +++ b/Mage/src/main/java/mage/cards/decks/DeckCardLayout.java @@ -6,8 +6,9 @@ import java.util.List; * Created by stravant@gmail.com on 2016-10-03. */ public class DeckCardLayout { - private List>> cards; - private String settings; + + private final List>> cards; + private final String settings; public DeckCardLayout(List>> cards, String settings) { this.cards = cards; diff --git a/Mage/src/main/java/mage/cards/decks/importer/DckDeckImporter.java b/Mage/src/main/java/mage/cards/decks/importer/DckDeckImporter.java index 38ebb24e46a..e2b454155e1 100644 --- a/Mage/src/main/java/mage/cards/decks/importer/DckDeckImporter.java +++ b/Mage/src/main/java/mage/cards/decks/importer/DckDeckImporter.java @@ -121,18 +121,22 @@ public class DckDeckImporter extends DeckImporter { // DeckCardLayout layout = new DeckCardLayout(grid, settings); int expectedCount = 0; - if (target.equals("MAIN")) { - deckList.setCardLayout(layout); - expectedCount = deckList.getCards().size(); - } else if (target.equals("SIDEBOARD")) { - deckList.setSideboardLayout(layout); - expectedCount = deckList.getSideboard().size(); - } else { - sbMessage.append("Bad target `" + target + "` for layout.\n"); + switch (target) { + case "MAIN": + deckList.setCardLayout(layout); + expectedCount = deckList.getCards().size(); + break; + case "SIDEBOARD": + deckList.setSideboardLayout(layout); + expectedCount = deckList.getSideboard().size(); + break; + default: + sbMessage.append("Bad target `").append(target).append("` for layout.\n"); + break; } // if (totalCardCount != expectedCount) { - sbMessage.append("Layout mismatch: Expected " + expectedCount + " cards, but got " + totalCardCount + " in layout `" + target + "`\n."); + sbMessage.append("Layout mismatch: Expected ").append(expectedCount).append(" cards, but got ").append(totalCardCount).append(" in layout `").append(target).append("`\n."); } } else {