From 01e402f292bf187dbc63c01bebbb37aad742e8e7 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 11 Jan 2017 18:38:41 +0000 Subject: [PATCH] - A little cleanup in ACEditorBase, made the code a little bit more readable and added some additional crash protection. --- .../deckeditor/controllers/ACEditorBase.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java index d829cb48719..4ac3fcc391a 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java @@ -196,10 +196,23 @@ public abstract class ACEditorBase getAllowedAdditions(final Iterable> itemsToAdd) { - final ItemPool additions = new ItemPool(getCatalogManager().getGenericType()); + final ItemPool additions = new ItemPool<>(getCatalogManager().getGenericType()); final CardLimit limit = getCardLimit(); final DeckController controller = getDeckController(); - final Deck deck = controller != null && controller.getModel() instanceof Deck ? (Deck)controller.getModel() : controller.getModel() instanceof DeckGroup ? ((DeckGroup)controller.getModel()).getHumanDeck() : null; + + Deck deck = null; + if (controller != null) { + if (controller.getModel() instanceof Deck) { + deck = (Deck)controller.getModel(); // constructed deck + } else if (controller.getModel() instanceof DeckGroup) { + deck = ((DeckGroup)controller.getModel()).getHumanDeck(); // limited deck + } + } + + if (deck == null) { + System.err.println("Warning: ACEditorBase#getAllowedAdditions could not properly process the deck in controller.getModel(), returning empty item pool."); + return additions; // returning empty additions + } final CardPool allCards = deck.getAllCardsInASinglePool(deck.has(DeckSection.Commander)); Iterable> cardsByName = Aggregates.groupSumBy(allCards, PaperCard.FN_GET_NAME); @@ -211,7 +224,7 @@ public abstract class ACEditorBase