- Fixed #4220 - card viewer raise error with alternative card numbers;

- Fixed potential error on getCardsByRarity;
- Added inner checks for wrong booster max card numbers settings;
This commit is contained in:
Oleg Agafonov 2017-12-07 06:05:04 +04:00
parent 6802ebc537
commit 66a70dd116
5 changed files with 62 additions and 5 deletions

View file

@ -464,7 +464,7 @@ public class MageBook extends JComponent {
// first run for numbers list
LinkedList<Integer> haveNumbers = new LinkedList<>();
for (ExpansionSet.SetCardInfo card: cards){
int cardNumber = Integer.parseInt(card.getCardNumber());
int cardNumber = card.getCardNumberAsInt();
startNumber = min(startNumber, cardNumber);
endNumber = Math.max(endNumber, cardNumber);
haveNumbers.add(cardNumber);

View file

@ -220,9 +220,10 @@ public class GathererSets implements Iterable<DownloadJob> {
continue; // can't do other checks
}
// 2. missing rarity icon:
// WARNING, need too much time (60+ secs), only for debug mode
if (logger.isDebugEnabled()) {
// 2. missing rarity icon:
// WARNING, need too much time (60+ secs), only for debug mode
///*
if ((set.getCardsByRarity(Rarity.COMMON).size() > 0) && !res.haveCommon) {
logger.error(String.format("Symbols: set have common cards, but don't download icon: %s (%s)", set.getCode(), set.getName()));
}
@ -235,6 +236,30 @@ public class GathererSets implements Iterable<DownloadJob> {
if ((set.getCardsByRarity(Rarity.MYTHIC).size() > 0) && !res.haveMyth) {
logger.error(String.format("Symbols: set have mythic cards, but don't download icon: %s (%s)", set.getCode(), set.getName()));
}
//*/
// 3. wrong sets config with alternative numbers
// TODO: some sets have cards above maxCardNumberInBooster, need to check it (search code for maxCardNumberInBooster), maybe delete at all after getCardNumberAsInt implement
if ((set.getMaxCardNumberInBooster() == 0) || (set.getMaxCardNumberInBooster() == Integer.MAX_VALUE))
{
for(ExpansionSet.SetCardInfo card: set.getSetCardInfo()){
if (String.valueOf(card.getCardNumberAsInt()).length() != card.getCardNumber().length()){
logger.error(String.format("Symbols: set have alternative card but do not config to it: %s (%s)", set.getCode(), set.getName()));
break;
}
}
}
// 4. have nonland card above maxboosternumber (info)
if (set.getMaxCardNumberInBooster() != Integer.MAX_VALUE)
{
for(ExpansionSet.SetCardInfo card: set.getSetCardInfo()){
if (card.getRarity() == Rarity.LAND) { continue; }
if (card.getCardNumberAsInt() > set.getMaxCardNumberInBooster()){
logger.error(String.format("Symbols: set setup to cut off cards for boosters, non land card will be missing: %s (%s), %s - %s", set.getCode(), set.getName(), card.getCardNumber(), card.getName()));
}
}
}
}
}