diff --git a/forge-core/src/main/java/forge/card/CardEdition.java b/forge-core/src/main/java/forge/card/CardEdition.java index 81329c740f9..c5879a88b3e 100644 --- a/forge-core/src/main/java/forge/card/CardEdition.java +++ b/forge-core/src/main/java/forge/card/CardEdition.java @@ -250,6 +250,7 @@ public final class CardEdition implements Comparable { // immutable private String[] chaosDraftThemes = new String[0]; private final ListMultimap cardMap; + private final List cardsInSet; private final Map tokenNormalized; // custom print sheets that will be loaded lazily private final Map> customPrintSheetsToParse; @@ -259,13 +260,18 @@ public final class CardEdition implements Comparable { // immutable private CardEdition(ListMultimap cardMap, Map tokens, Map> customPrintSheetsToParse) { this.cardMap = cardMap; + this.cardsInSet = new ArrayList<>(cardMap.values()); + Collections.sort(cardsInSet); this.tokenNormalized = tokens; this.customPrintSheetsToParse = customPrintSheetsToParse; } private CardEdition(CardInSet[] cards, Map tokens) { + List cardsList = Arrays.asList(cards); this.cardMap = ArrayListMultimap.create(); - this.cardMap.replaceValues("cards", Arrays.asList(cards)); + this.cardMap.replaceValues("cards", cardsList); + this.cardsInSet = new ArrayList<>(cardsList); + Collections.sort(cardsInSet); this.tokenNormalized = tokens; this.customPrintSheetsToParse = new HashMap<>(); } @@ -331,8 +337,6 @@ public final class CardEdition implements Comparable { // immutable public List getCards() { return cardMap.get("cards"); } public List getAllCardsInSet() { - ArrayList cardsInSet = Lists.newArrayList(cardMap.values()); - Collections.sort(cardsInSet); return cardsInSet; } @@ -389,7 +393,7 @@ public final class CardEdition implements Comparable { // immutable } public boolean isLargeSet() { - return getAllCardsInSet().size() > 200 && !smallSetOverride; + return this.cardsInSet.size() > 200 && !smallSetOverride; } public int getCntBoosterPictures() { diff --git a/forge-core/src/main/java/forge/item/PaperCard.java b/forge-core/src/main/java/forge/item/PaperCard.java index 16e5d0ea8cb..7879089856c 100644 --- a/forge-core/src/main/java/forge/item/PaperCard.java +++ b/forge-core/src/main/java/forge/item/PaperCard.java @@ -308,6 +308,8 @@ public final class PaperCard implements Comparable, InventoryItemFro private String retrieveCollectorNumber() { CardEdition.Collection editions = StaticData.instance().getEditions(); CardEdition edition = editions.get(this.edition); + if (edition == null) // don't bother continuing - non-existing card! + return NO_COLLECTOR_NUMBER; int artIndexCount = 0; String collectorNumberInEdition = ""; for (CardEdition.CardInSet card : edition.getAllCardsInSet()) {