mirror of
https://github.com/magefree/mage.git
synced 2025-12-21 19:11:59 -08:00
Increased performance function for finding a card in DB with a specific set. Cube from deck (custom cube) now respects chosen set for a given card.
This commit is contained in:
parent
d55c82adf4
commit
8c46f23e02
3 changed files with 20 additions and 6 deletions
|
|
@ -49,7 +49,7 @@ public class CubeFromDeck extends DraftCube {
|
||||||
|
|
||||||
if (cards != null) {
|
if (cards != null) {
|
||||||
for (DeckCardInfo card : cards.getCards()) {
|
for (DeckCardInfo card : cards.getCards()) {
|
||||||
cubeCards.add(new CardIdentity(card.getCardName(), ""));
|
cubeCards.add(new CardIdentity(card.getCardName(), card.getSetCode()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -420,6 +420,24 @@ public enum CardRepository {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CardInfo findCardWPreferredSet(String name, String expansion, boolean caseInsensitive) {
|
||||||
|
List<CardInfo> cards;
|
||||||
|
if (caseInsensitive) {
|
||||||
|
cards = findCardsCaseInsensitive(name);
|
||||||
|
} else {
|
||||||
|
cards = findCards(name);
|
||||||
|
}
|
||||||
|
if (!cards.isEmpty()) {
|
||||||
|
CardInfo cardToUse = null;
|
||||||
|
for (CardInfo cardinfo : cards) {
|
||||||
|
if (cardinfo.getSetCode() != null && expansion != null && expansion.equalsIgnoreCase(cardinfo.getSetCode())) {
|
||||||
|
return cardinfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return findPreferedCoreExpansionCard(name, true);
|
||||||
|
}
|
||||||
|
|
||||||
public List<CardInfo> findCards(String name) {
|
public List<CardInfo> findCards(String name) {
|
||||||
try {
|
try {
|
||||||
QueryBuilder<CardInfo, Object> queryBuilder = cardDao.queryBuilder();
|
QueryBuilder<CardInfo, Object> queryBuilder = cardDao.queryBuilder();
|
||||||
|
|
|
||||||
|
|
@ -107,11 +107,7 @@ public abstract class DraftCube {
|
||||||
if (!cardId.getName().isEmpty()) {
|
if (!cardId.getName().isEmpty()) {
|
||||||
CardInfo cardInfo = null;
|
CardInfo cardInfo = null;
|
||||||
if (!cardId.getExtension().isEmpty()) {
|
if (!cardId.getExtension().isEmpty()) {
|
||||||
CardCriteria criteria = new CardCriteria().name(cardId.getName()).setCodes(cardId.extension);
|
cardInfo = CardRepository.instance.findCardWPreferredSet(cardId.getName(), cardId.getExtension(), false);
|
||||||
List<CardInfo> cardList = CardRepository.instance.findCards(criteria);
|
|
||||||
if (cardList != null && !cardList.isEmpty()) {
|
|
||||||
cardInfo = cardList.get(0);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cardInfo = CardRepository.instance.findPreferedCoreExpansionCard(cardId.getName(), false);
|
cardInfo = CardRepository.instance.findPreferedCoreExpansionCard(cardId.getName(), false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue