diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java index 11315b09613..445986a626d 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -925,7 +925,7 @@ class ImportFilter extends FileFilter { ext = s.substring(i + 1).toLowerCase(); } if (ext != null) { - if (ext.toLowerCase().equals("dec") || ext.toLowerCase().equals("mwdeck") || ext.toLowerCase().equals("txt")) { + if (ext.toLowerCase().equals("dec") || ext.toLowerCase().equals("mwdeck") || ext.toLowerCase().equals("txt") || ext.toLowerCase().equals("dek")) { return true; } } @@ -934,7 +934,7 @@ class ImportFilter extends FileFilter { @Override public String getDescription() { - return "*.dec | *.mwDeck | *.txt"; + return "*.dec | *.mwDeck | *.txt | *.dek"; } } diff --git a/Mage/src/main/java/mage/cards/decks/importer/DeckImporterUtil.java b/Mage/src/main/java/mage/cards/decks/importer/DeckImporterUtil.java index 4ab86fac884..dd4d28e4055 100644 --- a/Mage/src/main/java/mage/cards/decks/importer/DeckImporterUtil.java +++ b/Mage/src/main/java/mage/cards/decks/importer/DeckImporterUtil.java @@ -43,7 +43,9 @@ public class DeckImporterUtil { } else if (file.toLowerCase().endsWith("txt")) { return new TxtDeckImporter(); } else if (file.toLowerCase().endsWith("dck")) { - return new DckDeckImporter(); + return new DekDeckImporter(); + } else if (file.toLowerCase().endsWith("dek")) { + return new DekDeckImporter(); } else { return null; } diff --git a/Mage/src/main/java/mage/cards/decks/importer/DekDeckImporter.java b/Mage/src/main/java/mage/cards/decks/importer/DekDeckImporter.java new file mode 100644 index 00000000000..885b569210a --- /dev/null +++ b/Mage/src/main/java/mage/cards/decks/importer/DekDeckImporter.java @@ -0,0 +1,50 @@ +package mage.cards.decks.importer; + +import mage.cards.decks.DeckCardInfo; +import mage.cards.decks.DeckCardLists; +import mage.cards.repository.CardInfo; +import mage.cards.repository.CardRepository; + +/** + * Created by royk on 11-Sep-16. + */ +public class DekDeckImporter extends DeckImporter { + + @Override + protected void readLine(String line, DeckCardLists deckList) { + + if (line.length() == 0 || line.startsWith("#") || !line.contains(" + Integer cardCount = Integer.parseInt(extractAttribute(line, "Quantity")); + String cardName = extractAttribute(line, "Name"); + Boolean isSideboard = "true".equals(extractAttribute(line, "Sideboard")); + CardInfo cardInfo = CardRepository.instance.findPreferedCoreExpansionCard(cardName, true); + if (cardInfo == null) { + sbMessage.append("Could not find card: '").append(cardName).append("' at line ").append(lineCount).append("\n"); + } else { + for (int i = 0; i < cardCount; i++) { + DeckCardInfo deckCardInfo = new DeckCardInfo(cardInfo.getName(), cardInfo.getCardNumber(), cardInfo.getSetCode()); + if(isSideboard) { + deckList.getSideboard().add(deckCardInfo); + } else { + deckList.getCards().add(deckCardInfo); + } + } + } + }catch (NumberFormatException nfe) { + sbMessage.append("Invalid number: ").append(extractAttribute(line, "Quantity")).append(" at line ").append(lineCount).append("\n"); + } + + } + + private String extractAttribute(String line, String name) { + String searchString = name+"=\""; + int startDelim = line.indexOf(searchString)+searchString.length(); + int endDelim = line.substring(startDelim).indexOf("\""); + return line.substring(startDelim, startDelim+endDelim); + } + +}