diff --git a/Mage/src/main/java/mage/cards/CardImpl.java b/Mage/src/main/java/mage/cards/CardImpl.java index 5d04ad18801..750e46c14b9 100644 --- a/Mage/src/main/java/mage/cards/CardImpl.java +++ b/Mage/src/main/java/mage/cards/CardImpl.java @@ -10,8 +10,6 @@ import mage.abilities.hint.Hint; import mage.abilities.hint.HintUtils; import mage.abilities.keyword.FlashbackAbility; import mage.abilities.mana.ActivatedManaAbilityImpl; -import mage.cards.repository.CardInfo; -import mage.cards.repository.CardRepository; import mage.cards.repository.PluginClassloaderRegistery; import mage.constants.*; import mage.counters.Counter; @@ -695,10 +693,13 @@ public abstract class CardImpl extends MageObjectImpl implements Card { } // must be non strict search in any sets, not one set - // example: if set contains only one card side, e.g. dev forget to add it - // verify test checks missing side cards in test_checkMissingSecondSideCardsInSets - CardInfo cardInfo = CardRepository.instance.findPreferedCoreExpansionCardByClassName(secondSideCardClazz.getCanonicalName(), expansionSetCode); - secondSideCard = cardInfo.getCard(); + // example: if set contains only one card side + // method used in cards database creating, so can't use repository here + ExpansionSet.SetCardInfo info = Sets.findCardByClass(secondSideCardClazz, expansionSetCode); + if (info == null) { + return null; + } + secondSideCard = createCard(secondSideCardClazz, new CardSetInfo(info.getName(), expansionSetCode, info.getCardNumber(), info.getRarity(), info.getGraphicInfo())); return secondSideCard; } diff --git a/Mage/src/main/java/mage/cards/Sets.java b/Mage/src/main/java/mage/cards/Sets.java index 0725ec54b8e..18a94102ece 100644 --- a/Mage/src/main/java/mage/cards/Sets.java +++ b/Mage/src/main/java/mage/cards/Sets.java @@ -26,7 +26,7 @@ public class Sets extends HashMap { return instance; } - private Set customSets = new HashSet<>(); + private final Set customSets = new HashSet<>(); private Sets() { List packages = new ArrayList<>(); @@ -199,4 +199,21 @@ public class Sets extends HashMap { return null; } + public static ExpansionSet.SetCardInfo findCardByClass(Class clazz, String preferedSetCode) { + ExpansionSet.SetCardInfo info = null; + if (instance.containsKey(preferedSetCode)) { + info = instance.get(preferedSetCode).findCardInfoByClass(clazz).stream().findFirst().orElse(null); + } + + if (info == null) { + for (Map.Entry entry : instance.entrySet()) { + info = entry.getValue().findCardInfoByClass(clazz).stream().findFirst().orElse(null); + if (info != null) { + break; + } + } + } + + return info; + } }