Added Portal and Portal Second Age set

This commit is contained in:
Plopman 2014-05-23 15:31:22 +02:00
parent 90f4c2ea05
commit 9d8d1409b2
6 changed files with 747 additions and 613 deletions

View file

@ -1,481 +1,487 @@
package mage.client.util.sets; package mage.client.util.sets;
import mage.cards.repository.ExpansionInfo; import mage.cards.repository.ExpansionInfo;
import mage.cards.repository.ExpansionRepository; import mage.cards.repository.ExpansionRepository;
import mage.constants.SetType; import mage.constants.SetType;
import java.util.*; import java.util.*;
/** /**
* Utility class for constructed formats (expansions and other editions). * Utility class for constructed formats (expansions and other editions).
* *
* @author nantuko * @author nantuko
*/ */
public class ConstructedFormats { public class ConstructedFormats {
public static final String ALL = "- All Sets"; public static final String ALL = "- All Sets";
public static final String STANDARD = "- Standard"; public static final String STANDARD = "- Standard";
public static final String EXTENDED = "- Extended"; public static final String EXTENDED = "- Extended";
public static final String MODERN = "- Modern"; public static final String MODERN = "- Modern";
private static final String[] constructedFormats = { private static final String[] constructedFormats = {
ALL, STANDARD, EXTENDED, MODERN, ALL, STANDARD, EXTENDED, MODERN,
"Commander 2013 Edition", "Commander 2013 Edition",
"* Theros Block", "Journey into Nyx", "Born of the Gods", "Theros", "* Theros Block", "Journey into Nyx", "Born of the Gods", "Theros",
"Magic 2014", "Magic 2014",
"Modern Masters", "Modern Masters",
"* Return to Ravnica Block", "Dragon's Maze", "Gatecrash", "Return to Ravnica", "* Return to Ravnica Block", "Dragon's Maze", "Gatecrash", "Return to Ravnica",
"Magic 2013", "Planechase 2012", "Magic 2013", "Planechase 2012",
"* Innistrad Block", "Avacyn Restored", "Dark Ascension", "Innistrad", "* Innistrad Block", "Avacyn Restored", "Dark Ascension", "Innistrad",
"Magic 2012", "Commander", "Magic 2012", "Commander",
"* Scars of Mirrodin Block", "New Phyrexia", "Mirrodin Besieged", "Scars of Mirrodin", "Magic 2011", "* Scars of Mirrodin Block", "New Phyrexia", "Mirrodin Besieged", "Scars of Mirrodin", "Magic 2011",
"* Zendikar Block", "Rise of the Eldrazi", "Worldwake", "Zendikar", "* Zendikar Block", "Rise of the Eldrazi", "Worldwake", "Zendikar",
"Magic 2010", "Planechase", "Magic 2010", "Planechase",
"* Shards of Alara Block", "Alara Reborn", "Conflux", "Shards of Alara", "* Shards of Alara Block", "Alara Reborn", "Conflux", "Shards of Alara",
"* Shadowmoor Block", "Shadowmoor", "Eventide", "* Shadowmoor Block", "Shadowmoor", "Eventide",
"* Lorwyn Block", "Lorwyn", "Morningtide", "* Lorwyn Block", "Lorwyn", "Morningtide",
"* Time Spiral Block", "Future Sight", "Planar Chaos", "Time Spiral", "Tenth Edition", "* Time Spiral Block", "Future Sight", "Planar Chaos", "Time Spiral", "Tenth Edition",
"* Ravnica Block", "Dissension", "Guildpact", "Ravnica: City of Guilds", "* Ravnica Block", "Dissension", "Guildpact", "Ravnica: City of Guilds",
"* Kamigawa Block", "Saviors of Kamigawa", "Betrayers of Kamigawa", "Champions of Kamigawa", "Ninth Edition", "* Kamigawa Block", "Saviors of Kamigawa", "Betrayers of Kamigawa", "Champions of Kamigawa", "Ninth Edition",
"* Mirrodin Block", "Fifth Dawn", "Darksteel", "Mirrodin", "* Mirrodin Block", "Fifth Dawn", "Darksteel", "Mirrodin",
"* Onslaught Block", "Scourge", "Legions", "Onslaught", "Eighth Edition", "* Onslaught Block", "Scourge", "Legions", "Onslaught", "Eighth Edition",
"* Odyssey Block", "Judgment", "Torment", "Odyssey", "* Odyssey Block", "Judgment", "Torment", "Odyssey",
"* Invasion Block", "Apocalypse", "Planeshift", "Invasion", "Seventh Edition", "* Invasion Block", "Apocalypse", "Planeshift", "Invasion", "Seventh Edition",
"* Masquerade Block", "Prophecy", "Nemesis", "Mercadian Masques", "* Masquerade Block", "Prophecy", "Nemesis", "Mercadian Masques",
"* Urza Block", "Urza's Destiny", "Urza's Legacy", "Urza's Saga", "Sixth Edition", "* Urza Block", "Urza's Destiny", "Urza's Legacy", "Urza's Saga", "Sixth Edition",
"* Tempest Block", "Exodus", "Stronghold", "Tempest", "* Tempest Block", "Exodus", "Stronghold", "Tempest",
"* Mirage Block", "Weatherlight", "Visions", "Mirage", "Fifth Edition", "* Mirage Block", "Weatherlight", "Visions", "Mirage", "Fifth Edition",
"* Ice Age Block", "Coldsnap", "Alliances", "Ice Age", "Fourth Edition", "* Ice Age Block", "Coldsnap", "Alliances", "Ice Age", "Fourth Edition",
"Homelands", "Fallen Empires", "The Dark", "Legends", "Antiquities", "Arabian Nights", "Homelands", "Fallen Empires", "The Dark", "Legends", "Antiquities", "Arabian Nights",
"Revised Edition", "Unlimited Edition", "Limited Edition Beta", "Limited Edition Alpha", "Revised Edition", "Unlimited Edition", "Limited Edition Beta", "Limited Edition Alpha",
"Portal Three Kingdoms", "Portal", "Portal Second Age", "Portal Three Kingdoms",
"Guru", "Guru",
"Unhinged", "Unhinged",
"Duel Decks: Elves vs. Goblins", "Duel Decks: Elves vs. Goblins",
"Duel Decks: Jace vs. Chandra", "Duel Decks: Jace vs. Chandra",
"Duel Decks: Divine vs. Demonic", "Duel Decks: Divine vs. Demonic",
"Duel Decks: Garruk vs. Liliana", "Duel Decks: Garruk vs. Liliana",
"Duel Decks: Elspeth vs. Tezzeret", "Duel Decks: Elspeth vs. Tezzeret",
"Duel Decks: Knights vs. Dragons", "Duel Decks: Knights vs. Dragons",
"Duel Decks: Ajani vs. Nicol Bolas", "Duel Decks: Ajani vs. Nicol Bolas",
"Duel Decks: Venser vs. Koth", "Duel Decks: Venser vs. Koth",
"Duel Decks: Heroes vs. Monsters", "Duel Decks: Heroes vs. Monsters",
"Duel Decks: Jace vs. Vraska" "Duel Decks: Jace vs. Vraska"
}; };
private ConstructedFormats() { private ConstructedFormats() {
} }
public static String[] getTypes() { public static String[] getTypes() {
return constructedFormats; return constructedFormats;
} }
public static String getDefault() { public static String getDefault() {
return constructedFormats[1]; return constructedFormats[1];
} }
public static List<String> getSetsByFormat(String format) { public static List<String> getSetsByFormat(String format) {
if (format.equals("* Theros Block")) { if (format.equals("* Theros Block")) {
return Arrays.asList("THS", "BNG","JOU"); return Arrays.asList("THS", "BNG","JOU");
} }
if (format.equals("Journey into Nyx")) { if (format.equals("Journey into Nyx")) {
return Arrays.asList("JOU"); return Arrays.asList("JOU");
} }
if (format.equals("Born of the Gods")) { if (format.equals("Born of the Gods")) {
return Arrays.asList("BNG"); return Arrays.asList("BNG");
} }
if (format.equals("Theros")) { if (format.equals("Theros")) {
return Arrays.asList("THS"); return Arrays.asList("THS");
} }
if (format.equals("Arabian Nights")) { if (format.equals("Arabian Nights")) {
return Arrays.asList("ARN"); return Arrays.asList("ARN");
} }
if (format.equals("Antiquities")) { if (format.equals("Antiquities")) {
return Arrays.asList("ATQ"); return Arrays.asList("ATQ");
} }
if (format.equals("Legends")) { if (format.equals("Legends")) {
return Arrays.asList("LEG"); return Arrays.asList("LEG");
} }
if (format.equals("The Dark")) { if (format.equals("The Dark")) {
return Arrays.asList("DRK"); return Arrays.asList("DRK");
} }
if (format.equals("Fallen Empires")) { if (format.equals("Fallen Empires")) {
return Arrays.asList("FEM"); return Arrays.asList("FEM");
} }
if (format.equals("Homelands")) { if (format.equals("Homelands")) {
return Arrays.asList("HML"); return Arrays.asList("HML");
} }
if (format.equals("* Ice Age Block")) { if (format.equals("* Ice Age Block")) {
return Arrays.asList("ICE", "ALL", "CSP"); return Arrays.asList("ICE", "ALL", "CSP");
} }
if (format.equals("Ice Age")) { if (format.equals("Ice Age")) {
return Arrays.asList("ICE"); return Arrays.asList("ICE");
} }
if (format.equals("Alliances")) { if (format.equals("Alliances")) {
return Arrays.asList("ALL"); return Arrays.asList("ALL");
} }
if (format.equals("Coldsnap")) { if (format.equals("Coldsnap")) {
return Arrays.asList("CSP"); return Arrays.asList("CSP");
} }
if (format.equals("* Mirage Block")) { if (format.equals("* Mirage Block")) {
return Arrays.asList("MIR", "VIS", "WTH"); return Arrays.asList("MIR", "VIS", "WTH");
} }
if (format.equals("Mirage")) { if (format.equals("Mirage")) {
return Arrays.asList("MIR"); return Arrays.asList("MIR");
} }
if (format.equals("Visions")) { if (format.equals("Visions")) {
return Arrays.asList("VIS"); return Arrays.asList("VIS");
} }
if (format.equals("Weatherlight")) { if (format.equals("Weatherlight")) {
return Arrays.asList("WTH"); return Arrays.asList("WTH");
} }
if (format.equals("* Tempest Block")) { if (format.equals("* Tempest Block")) {
return Arrays.asList("TMP", "STH", "EXO"); return Arrays.asList("TMP", "STH", "EXO");
} }
if (format.equals("Tempest")) { if (format.equals("Tempest")) {
return Arrays.asList("TMP"); return Arrays.asList("TMP");
} }
if (format.equals("Stronghold")) { if (format.equals("Stronghold")) {
return Arrays.asList("STH"); return Arrays.asList("STH");
} }
if (format.equals("Exodus")) { if (format.equals("Exodus")) {
return Arrays.asList("EXO"); return Arrays.asList("EXO");
} }
if (format.equals("* Urza Block")) { if (format.equals("* Urza Block")) {
return Arrays.asList("USG", "ULG", "UDS"); return Arrays.asList("USG", "ULG", "UDS");
} }
if (format.equals("Urza's Saga")) { if (format.equals("Urza's Saga")) {
return Arrays.asList("USG"); return Arrays.asList("USG");
} }
if (format.equals("Urza's Legacy")) { if (format.equals("Urza's Legacy")) {
return Arrays.asList("ULG"); return Arrays.asList("ULG");
} }
if (format.equals("Urza's Destiny")) { if (format.equals("Urza's Destiny")) {
return Arrays.asList("UDS"); return Arrays.asList("UDS");
} }
if (format.equals("* Masquerade Block")) { if (format.equals("* Masquerade Block")) {
return Arrays.asList("MMQ", "NMS", "PCY"); return Arrays.asList("MMQ", "NMS", "PCY");
} }
if (format.equals("Mercadian Masques")) { if (format.equals("Mercadian Masques")) {
return Arrays.asList("MMQ"); return Arrays.asList("MMQ");
} }
if (format.equals("Nemesis")) { if (format.equals("Nemesis")) {
return Arrays.asList("NMS"); return Arrays.asList("NMS");
} }
if (format.equals("Prophecy")) { if (format.equals("Prophecy")) {
return Arrays.asList("PCY"); return Arrays.asList("PCY");
} }
if (format.equals("* Invasion Block")) { if (format.equals("* Invasion Block")) {
return Arrays.asList("INV", "PLS", "APC"); return Arrays.asList("INV", "PLS", "APC");
} }
if (format.equals("Invasion")) { if (format.equals("Invasion")) {
return Arrays.asList("INV"); return Arrays.asList("INV");
} }
if (format.equals("Planeshift")) { if (format.equals("Planeshift")) {
return Arrays.asList("PLS"); return Arrays.asList("PLS");
} }
if (format.equals("Apocalypse")) { if (format.equals("Apocalypse")) {
return Arrays.asList("APC"); return Arrays.asList("APC");
} }
if (format.equals("* Odyssey Block")) { if (format.equals("* Odyssey Block")) {
return Arrays.asList("ODY", "TOR", "JUD"); return Arrays.asList("ODY", "TOR", "JUD");
} }
if (format.equals("Odyssey")) { if (format.equals("Odyssey")) {
return Arrays.asList("ODY"); return Arrays.asList("ODY");
} }
if (format.equals("Torment")) { if (format.equals("Torment")) {
return Arrays.asList("TOR"); return Arrays.asList("TOR");
} }
if (format.equals("Judgment")) { if (format.equals("Judgment")) {
return Arrays.asList("JUD"); return Arrays.asList("JUD");
} }
if (format.equals("* Onslaught Block")) { if (format.equals("* Onslaught Block")) {
return Arrays.asList("ONS", "LGN", "SCG"); return Arrays.asList("ONS", "LGN", "SCG");
} }
if (format.equals("Onslaught")) { if (format.equals("Onslaught")) {
return Arrays.asList("ONS"); return Arrays.asList("ONS");
} }
if (format.equals("Legions")) { if (format.equals("Legions")) {
return Arrays.asList("LGN"); return Arrays.asList("LGN");
} }
if (format.equals("Scourge")) { if (format.equals("Scourge")) {
return Arrays.asList("SCG"); return Arrays.asList("SCG");
} }
if (format.equals("* Mirrodin Block")) { if (format.equals("* Mirrodin Block")) {
return Arrays.asList("MRD", "DST", "5DN"); return Arrays.asList("MRD", "DST", "5DN");
} }
if (format.equals("Mirrodin")) { if (format.equals("Mirrodin")) {
return Arrays.asList("MRD"); return Arrays.asList("MRD");
} }
if (format.equals("Darksteel")) { if (format.equals("Darksteel")) {
return Arrays.asList("DST"); return Arrays.asList("DST");
} }
if (format.equals("Fifth Dawn")) { if (format.equals("Fifth Dawn")) {
return Arrays.asList("5DN"); return Arrays.asList("5DN");
} }
if (format.equals("* Kamigawa Block")) { if (format.equals("* Kamigawa Block")) {
return Arrays.asList("CHK", "BOK", "SOK"); return Arrays.asList("CHK", "BOK", "SOK");
} }
if (format.equals("Champions of Kamigawa")) { if (format.equals("Champions of Kamigawa")) {
return Arrays.asList("CHK"); return Arrays.asList("CHK");
} }
if (format.equals("Betrayers of Kamigawa")) { if (format.equals("Betrayers of Kamigawa")) {
return Arrays.asList("BOK"); return Arrays.asList("BOK");
} }
if (format.equals("Saviors of Kamigawa")) { if (format.equals("Saviors of Kamigawa")) {
return Arrays.asList("SOK"); return Arrays.asList("SOK");
} }
if (format.equals("* Ravnica Block")) { if (format.equals("* Ravnica Block")) {
return Arrays.asList("RAV", "GPT", "DIS"); return Arrays.asList("RAV", "GPT", "DIS");
} }
if (format.equals("Ravnica: City of Guilds")) { if (format.equals("Ravnica: City of Guilds")) {
return Arrays.asList("RAV"); return Arrays.asList("RAV");
} }
if (format.equals("Guildpact")) { if (format.equals("Guildpact")) {
return Arrays.asList("GPT"); return Arrays.asList("GPT");
} }
if (format.equals("Dissension")) { if (format.equals("Dissension")) {
return Arrays.asList("DIS"); return Arrays.asList("DIS");
} }
if (format.equals("* Time Spiral Block")) { if (format.equals("* Time Spiral Block")) {
return Arrays.asList("TSP", "TSB", "PLC", "FUT"); return Arrays.asList("TSP", "TSB", "PLC", "FUT");
} }
if (format.equals("Time Spiral")) { if (format.equals("Time Spiral")) {
return Arrays.asList("TSP", "TSB"); return Arrays.asList("TSP", "TSB");
} }
if (format.equals("Planar Chaos")) { if (format.equals("Planar Chaos")) {
return Arrays.asList("PLC"); return Arrays.asList("PLC");
} }
if (format.equals("Future Sight")) { if (format.equals("Future Sight")) {
return Arrays.asList("FUT"); return Arrays.asList("FUT");
} }
if (format.equals("* Lorwyn Block")) { if (format.equals("* Lorwyn Block")) {
return Arrays.asList("LRW", "MOR"); return Arrays.asList("LRW", "MOR");
} }
if (format.equals("Lorwyn")) { if (format.equals("Lorwyn")) {
return Arrays.asList("LRW"); return Arrays.asList("LRW");
} }
if (format.equals("Morningtide")) { if (format.equals("Morningtide")) {
return Arrays.asList("MOR"); return Arrays.asList("MOR");
} }
if (format.equals("* Shadowmoor Block")) { if (format.equals("* Shadowmoor Block")) {
return Arrays.asList("SHM", "EVE"); return Arrays.asList("SHM", "EVE");
} }
if (format.equals("Shadowmoor")) { if (format.equals("Shadowmoor")) {
return Arrays.asList("SHM"); return Arrays.asList("SHM");
} }
if (format.equals("Eventide")) { if (format.equals("Eventide")) {
return Arrays.asList("EVE"); return Arrays.asList("EVE");
} }
if (format.equals("* Shards of Alara Block")) { if (format.equals("* Shards of Alara Block")) {
return Arrays.asList("ALA", "CON", "ARB"); return Arrays.asList("ALA", "CON", "ARB");
} }
if (format.equals("Alara Reborn")) { if (format.equals("Alara Reborn")) {
return Arrays.asList("ARB"); return Arrays.asList("ARB");
} }
if (format.equals("Conflux")) { if (format.equals("Conflux")) {
return Arrays.asList("CON"); return Arrays.asList("CON");
} }
if (format.equals("Shards of Alara")) { if (format.equals("Shards of Alara")) {
return Arrays.asList("ALA"); return Arrays.asList("ALA");
} }
if (format.equals("* Zendikar Block")) { if (format.equals("* Zendikar Block")) {
return Arrays.asList("ZEN", "WWK", "ROE"); return Arrays.asList("ZEN", "WWK", "ROE");
} }
if (format.equals("Zendikar")) { if (format.equals("Zendikar")) {
return Arrays.asList("ZEN"); return Arrays.asList("ZEN");
} }
if (format.equals("Worldwake")) { if (format.equals("Worldwake")) {
return Arrays.asList("WWK"); return Arrays.asList("WWK");
} }
if (format.equals("Rise of the Eldrazi")) { if (format.equals("Rise of the Eldrazi")) {
return Arrays.asList("ROE"); return Arrays.asList("ROE");
} }
if (format.equals("* Scars of Mirrodin Block")) { if (format.equals("* Scars of Mirrodin Block")) {
return Arrays.asList("SOM", "MBS", "NPH"); return Arrays.asList("SOM", "MBS", "NPH");
} }
if (format.equals("Scars of Mirrodin")) { if (format.equals("Scars of Mirrodin")) {
return Arrays.asList("SOM"); return Arrays.asList("SOM");
} }
if (format.equals("Mirrodin Besieged")) { if (format.equals("Mirrodin Besieged")) {
return Arrays.asList("MBS"); return Arrays.asList("MBS");
} }
if (format.equals("New Phyrexia")) { if (format.equals("New Phyrexia")) {
return Arrays.asList("NPH"); return Arrays.asList("NPH");
} }
if (format.equals("* Innistrad Block")) { if (format.equals("* Innistrad Block")) {
return Arrays.asList("ISD", "DKA", "AVR"); return Arrays.asList("ISD", "DKA", "AVR");
} }
if (format.equals("Innistrad")) { if (format.equals("Innistrad")) {
return Arrays.asList("ISD"); return Arrays.asList("ISD");
} }
if (format.equals("Dark Ascension")) { if (format.equals("Dark Ascension")) {
return Arrays.asList("DKA"); return Arrays.asList("DKA");
} }
if (format.equals("Avacyn Restored")) { if (format.equals("Avacyn Restored")) {
return Arrays.asList("AVR"); return Arrays.asList("AVR");
} }
if (format.equals("* Return to Ravnica Block")) { if (format.equals("* Return to Ravnica Block")) {
return Arrays.asList("RTR", "GTC", "DGM"); return Arrays.asList("RTR", "GTC", "DGM");
} }
if (format.equals("Return to Ravnica")) { if (format.equals("Return to Ravnica")) {
return Arrays.asList("RTR"); return Arrays.asList("RTR");
} }
if (format.equals("Gatecrash")) { if (format.equals("Gatecrash")) {
return Arrays.asList("GTC"); return Arrays.asList("GTC");
} }
if (format.equals("Dragon's Maze")) { if (format.equals("Dragon's Maze")) {
return Arrays.asList("DGM"); return Arrays.asList("DGM");
} }
if (format.equals("Limited Edition Alpha")) { if (format.equals("Limited Edition Alpha")) {
return Arrays.asList("LEA"); return Arrays.asList("LEA");
} }
if (format.equals("Limited Edition Beta")) { if (format.equals("Limited Edition Beta")) {
return Arrays.asList("LEB"); return Arrays.asList("LEB");
} }
if (format.equals("Unlimited Edition")) { if (format.equals("Unlimited Edition")) {
return Arrays.asList("2ED"); return Arrays.asList("2ED");
} }
if (format.equals("Revised Edition")) { if (format.equals("Revised Edition")) {
return Arrays.asList("3ED"); return Arrays.asList("3ED");
} }
if (format.equals("Fourth Edition")) { if (format.equals("Fourth Edition")) {
return Arrays.asList("4ED"); return Arrays.asList("4ED");
} }
if (format.equals("Fifth Edition")) { if (format.equals("Fifth Edition")) {
return Arrays.asList("5ED"); return Arrays.asList("5ED");
} }
if (format.equals("Sixth Edition")) { if (format.equals("Sixth Edition")) {
return Arrays.asList("6ED"); return Arrays.asList("6ED");
} }
if (format.equals("Seventh Edition")) { if (format.equals("Seventh Edition")) {
return Arrays.asList("7ED"); return Arrays.asList("7ED");
} }
if (format.equals("Eighth Edition")) { if (format.equals("Eighth Edition")) {
return Arrays.asList("8ED"); return Arrays.asList("8ED");
} }
if (format.equals("Ninth Edition")) { if (format.equals("Ninth Edition")) {
return Arrays.asList("9ED"); return Arrays.asList("9ED");
} }
if (format.equals("Tenth Edition")) { if (format.equals("Tenth Edition")) {
return Arrays.asList("10E"); return Arrays.asList("10E");
} }
if (format.equals("Magic 2010")) { if (format.equals("Magic 2010")) {
return Arrays.asList("M10"); return Arrays.asList("M10");
} }
if (format.equals("Magic 2011")) { if (format.equals("Magic 2011")) {
return Arrays.asList("M11"); return Arrays.asList("M11");
} }
if (format.equals("Magic 2012")) { if (format.equals("Magic 2012")) {
return Arrays.asList("M12"); return Arrays.asList("M12");
} }
if (format.equals("Magic 2013")) { if (format.equals("Magic 2013")) {
return Arrays.asList("M13"); return Arrays.asList("M13");
} }
if (format.equals("Magic 2014")) { if (format.equals("Magic 2014")) {
return Arrays.asList("M14"); return Arrays.asList("M14");
} }
if (format.equals("Planechase")) { if (format.equals("Planechase")) {
return Arrays.asList("HOP"); return Arrays.asList("HOP");
} }
if (format.equals("Commander")) { if (format.equals("Commander")) {
return Arrays.asList("CMD"); return Arrays.asList("CMD");
} }
if (format.equals("Commander 2013 Edition")) { if (format.equals("Commander 2013 Edition")) {
return Arrays.asList("C13"); return Arrays.asList("C13");
} }
if (format.equals("Planechase 2012")) { if (format.equals("Planechase 2012")) {
return Arrays.asList("PC2"); return Arrays.asList("PC2");
} }
if (format.equals("Modern Masters")) { if (format.equals("Modern Masters")) {
return Arrays.asList("MMA"); return Arrays.asList("MMA");
} }
if (format.equals("Guru")) { if (format.equals("Guru")) {
return Arrays.asList("GUR"); return Arrays.asList("GUR");
} }
if (format.equals("Unhinged")) { if (format.equals("Unhinged")) {
return Arrays.asList("UNH"); return Arrays.asList("UNH");
} }
if (format.equals("Portal Three Kingdoms")) { if (format.equals("Portal")) {
return Arrays.asList("PTK"); return Arrays.asList("POR");
} }
if (format.equals("Duel Decks: Elves vs. Goblins")) { if (format.equals("Portal Second Age")) {
return Arrays.asList("EVG"); return Arrays.asList("PO2");
} }
if (format.equals("Duel Decks: Jace vs. Chandra")) { if (format.equals("Portal Three Kingdoms")) {
return Arrays.asList("DD2"); return Arrays.asList("PTK");
} }
if (format.equals("Duel Decks: Divine vs. Demonic")) { if (format.equals("Duel Decks: Elves vs. Goblins")) {
return Arrays.asList("DDC"); return Arrays.asList("EVG");
} }
if (format.equals("Duel Decks: Garruk vs. Liliana")) { if (format.equals("Duel Decks: Jace vs. Chandra")) {
return Arrays.asList("DDD"); return Arrays.asList("DD2");
} }
if (format.equals("Duel Decks: Elspeth vs. Tezzeret")) { if (format.equals("Duel Decks: Divine vs. Demonic")) {
return Arrays.asList("DDF"); return Arrays.asList("DDC");
} }
if (format.equals("Duel Decks: Knights vs. Dragons")) { if (format.equals("Duel Decks: Garruk vs. Liliana")) {
return Arrays.asList("DDG"); return Arrays.asList("DDD");
} }
if (format.equals("Duel Decks: Ajani vs. Nicol Bolas")) { if (format.equals("Duel Decks: Elspeth vs. Tezzeret")) {
return Arrays.asList("DDH"); return Arrays.asList("DDF");
} }
if (format.equals("Duel Decks: Venser vs. Koth")) { if (format.equals("Duel Decks: Knights vs. Dragons")) {
return Arrays.asList("DDI"); return Arrays.asList("DDG");
} }
if (format.equals("Duel Decks: Heroes vs. Monsters")) { if (format.equals("Duel Decks: Ajani vs. Nicol Bolas")) {
return Arrays.asList("DDL"); return Arrays.asList("DDH");
} }
if (format.equals("Duel Decks: Jace vs. Vraska")) { if (format.equals("Duel Decks: Venser vs. Koth")) {
return Arrays.asList("DDM"); return Arrays.asList("DDI");
} }
if (format.equals("Duel Decks: Heroes vs. Monsters")) {
return Arrays.asList("DDL");
}
if (format.equals(STANDARD)) { if (format.equals("Duel Decks: Jace vs. Vraska")) {
return standard; return Arrays.asList("DDM");
} }
if (format.equals(EXTENDED)) {
return extended;
}
if (format.equals(MODERN)) { if (format.equals(STANDARD)) {
return modern; return standard;
} }
return all; if (format.equals(EXTENDED)) {
} return extended;
}
private static void buildLists() { if (format.equals(MODERN)) {
for (ExpansionInfo set : ExpansionRepository.instance.getAll()) { return modern;
if (!set.getType().equals(SetType.REPRINT) && !set.getType().equals(SetType.JOKESET)) { }
if (set.getReleaseDate().after(standardDate)) { return all;
standard.add(set.getCode()); }
}
if (set.getReleaseDate().after(extendedDate)) { private static void buildLists() {
extended.add(set.getCode()); for (ExpansionInfo set : ExpansionRepository.instance.getAll()) {
} if (!set.getType().equals(SetType.REPRINT) && !set.getType().equals(SetType.JOKESET)) {
if (set.getReleaseDate().after(modernDate)) { if (set.getReleaseDate().after(standardDate)) {
modern.add(set.getCode()); standard.add(set.getCode());
} }
} if (set.getReleaseDate().after(extendedDate)) {
} extended.add(set.getCode());
} }
if (set.getReleaseDate().after(modernDate)) {
private static final List<String> standard = new ArrayList<>(); modern.add(set.getCode());
private static final Date standardDate = new GregorianCalendar(2012, 9, 28).getTime(); }
}
private static final List<String> extended = new ArrayList<>(); }
private static final Date extendedDate = new GregorianCalendar(2009, 8, 20).getTime(); }
private static final List<String> modern = new ArrayList<>(); private static final List<String> standard = new ArrayList<>();
private static final Date modernDate = new GregorianCalendar(2003, 7, 20).getTime(); private static final Date standardDate = new GregorianCalendar(2012, 9, 28).getTime();
// for all sets just return empty list private static final List<String> extended = new ArrayList<>();
private static final List<String> all = new ArrayList<>(); private static final Date extendedDate = new GregorianCalendar(2009, 8, 20).getTime();
static { private static final List<String> modern = new ArrayList<>();
buildLists(); private static final Date modernDate = new GregorianCalendar(2003, 7, 20).getTime();
}
} // for all sets just return empty list
private static final List<String> all = new ArrayList<>();
static {
buildLists();
}
}

View file

@ -1,132 +1,132 @@
package org.mage.plugins.card.dl.sources; package org.mage.plugins.card.dl.sources;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import org.mage.plugins.card.dl.DownloadJob; import org.mage.plugins.card.dl.DownloadJob;
import static org.mage.plugins.card.dl.DownloadJob.fromURL; import static org.mage.plugins.card.dl.DownloadJob.fromURL;
import static org.mage.plugins.card.dl.DownloadJob.toFile; import static org.mage.plugins.card.dl.DownloadJob.toFile;
public class GathererSets implements Iterable<DownloadJob> { public class GathererSets implements Iterable<DownloadJob> {
private static final String SETS_PATH = File.separator + "sets"; private static final String SETS_PATH = File.separator + "sets";
private static final File DEFAULT_OUT_DIR = new File("plugins" + File.separator + "images" + SETS_PATH); private static final File DEFAULT_OUT_DIR = new File("plugins" + File.separator + "images" + SETS_PATH);
private static File outDir = DEFAULT_OUT_DIR; private static File outDir = DEFAULT_OUT_DIR;
private static final String[] symbols = {"10E", "9ED", "8ED", "7ED", "6ED", "5ED", "4ED", "3ED", "2ED", "LEB", "LEA", private static final String[] symbols = {"10E", "9ED", "8ED", "7ED", "6ED", "5ED", "4ED", "3ED", "2ED", "LEB", "LEA",
"HOP", "HOP",
"ARN", "ATQ", "LEG", "DRK", "FEM", "HML", "ARN", "ATQ", "LEG", "DRK", "FEM", "HML",
"ICE", "ALL", "CSP", "ICE", "ALL", "CSP",
"MIR", "VIS", "WTH", "MIR", "VIS", "WTH",
"TMP", "STH", "EXO", "TMP", "STH", "EXO",
"USG", "ULG", "UDS", "USG", "ULG", "UDS",
"MMQ", "NMS", "PCY", "MMQ", "NMS", "PCY",
"INV", "PLS", "APC", "INV", "PLS", "APC",
"ODY", "TOR", "JUD", "ODY", "TOR", "JUD",
"ONS", "LGN", "SCG", "ONS", "LGN", "SCG",
"MRD", "DST", "5DN", "MRD", "DST", "5DN",
"CHK", "BOK", "SOK", "CHK", "BOK", "SOK",
"RAV", "GPT", "DIS", "RAV", "GPT", "DIS",
"TSP", "TSB", "PLC", "FUT", "TSP", "TSB", "PLC", "FUT",
"LRW", "MOR", "LRW", "MOR",
"SHM", "EVE", "SHM", "EVE",
"PTK"}; "POR", "PO2", "PTK"};
private static final String[] withMythics = {"M10", "M11", "M12", "M13", "M14", private static final String[] withMythics = {"M10", "M11", "M12", "M13", "M14",
"DDF", "DDL", "DDF", "DDL",
"ALA", "CON", "ARB", "ALA", "CON", "ARB",
"ZEN", "WWK", "ROE", "ZEN", "WWK", "ROE",
"SOM", "MBS", "NPH", "SOM", "MBS", "NPH",
"CMD", "PC2", "CMD", "PC2",
"ISD", "DKA", "AVR", "ISD", "DKA", "AVR",
"RTR", "GTC", "DGM", "RTR", "GTC", "DGM",
"MMA", "MMA",
"THS", "BNG", "JOU"}; "THS", "BNG", "JOU"};
private static final HashMap<String, String> symbolsReplacements = new HashMap<>(); private static final HashMap<String, String> symbolsReplacements = new HashMap<>();
static { static {
symbolsReplacements.put("ARN", "AN"); symbolsReplacements.put("ARN", "AN");
symbolsReplacements.put("ATQ", "AQ"); symbolsReplacements.put("ATQ", "AQ");
symbolsReplacements.put("LEG", "LE"); symbolsReplacements.put("LEG", "LE");
symbolsReplacements.put("DRK", "DK"); symbolsReplacements.put("DRK", "DK");
symbolsReplacements.put("FEM", "FE"); symbolsReplacements.put("FEM", "FE");
symbolsReplacements.put("HML", "HM"); symbolsReplacements.put("HML", "HM");
symbolsReplacements.put("ICE", "IA"); symbolsReplacements.put("ICE", "IA");
symbolsReplacements.put("ALL", "AL"); symbolsReplacements.put("ALL", "AL");
symbolsReplacements.put("APC", "AP"); symbolsReplacements.put("APC", "AP");
symbolsReplacements.put("TMP", "TE"); symbolsReplacements.put("TMP", "TE");
symbolsReplacements.put("INV", "IN"); symbolsReplacements.put("INV", "IN");
symbolsReplacements.put("PLS", "PS"); symbolsReplacements.put("PLS", "PS");
symbolsReplacements.put("WTH", "WL"); symbolsReplacements.put("WTH", "WL");
symbolsReplacements.put("ULG", "GU"); symbolsReplacements.put("ULG", "GU");
symbolsReplacements.put("USG", "UZ"); symbolsReplacements.put("USG", "UZ");
symbolsReplacements.put("UDS", "CG"); symbolsReplacements.put("UDS", "CG");
symbolsReplacements.put("ODY", "OD"); symbolsReplacements.put("ODY", "OD");
symbolsReplacements.put("MMQ", "MM"); symbolsReplacements.put("MMQ", "MM");
symbolsReplacements.put("NMS", "NE"); symbolsReplacements.put("NMS", "NE");
symbolsReplacements.put("PCY", "PR"); symbolsReplacements.put("PCY", "PR");
symbolsReplacements.put("STH", "ST"); symbolsReplacements.put("STH", "ST");
symbolsReplacements.put("EXO", "EX"); symbolsReplacements.put("EXO", "EX");
symbolsReplacements.put("VIS", "VI"); symbolsReplacements.put("VIS", "VI");
symbolsReplacements.put("MIR", "MI"); symbolsReplacements.put("MIR", "MI");
symbolsReplacements.put("7ED", "7E"); symbolsReplacements.put("7ED", "7E");
symbolsReplacements.put("6ED", "6E"); symbolsReplacements.put("6ED", "6E");
symbolsReplacements.put("5ED", "5E"); symbolsReplacements.put("5ED", "5E");
symbolsReplacements.put("4ED", "4E"); symbolsReplacements.put("4ED", "4E");
symbolsReplacements.put("3ED", "3E"); symbolsReplacements.put("3ED", "3E");
symbolsReplacements.put("2ED", "2U"); symbolsReplacements.put("2ED", "2U");
symbolsReplacements.put("LEB", "2E"); symbolsReplacements.put("LEB", "2E");
symbolsReplacements.put("LEA", "1E"); symbolsReplacements.put("LEA", "1E");
} }
public GathererSets(String path) { public GathererSets(String path) {
if (path == null) { if (path == null) {
useDefaultDir(); useDefaultDir();
} else { } else {
changeOutDir(path); changeOutDir(path);
} }
} }
@Override @Override
public Iterator<DownloadJob> iterator() { public Iterator<DownloadJob> iterator() {
ArrayList<DownloadJob> jobs = new ArrayList<>(); ArrayList<DownloadJob> jobs = new ArrayList<>();
for (String symbol : symbols) { for (String symbol : symbols) {
jobs.add(generateDownloadJob(symbol, "C")); jobs.add(generateDownloadJob(symbol, "C"));
jobs.add(generateDownloadJob(symbol, "U")); jobs.add(generateDownloadJob(symbol, "U"));
jobs.add(generateDownloadJob(symbol, "R")); jobs.add(generateDownloadJob(symbol, "R"));
} }
for (String symbol : withMythics) { for (String symbol : withMythics) {
jobs.add(generateDownloadJob(symbol, "C")); jobs.add(generateDownloadJob(symbol, "C"));
jobs.add(generateDownloadJob(symbol, "U")); jobs.add(generateDownloadJob(symbol, "U"));
jobs.add(generateDownloadJob(symbol, "R")); jobs.add(generateDownloadJob(symbol, "R"));
jobs.add(generateDownloadJob(symbol, "M")); jobs.add(generateDownloadJob(symbol, "M"));
} }
return jobs.iterator(); return jobs.iterator();
} }
private DownloadJob generateDownloadJob(String set, String rarity) { private DownloadJob generateDownloadJob(String set, String rarity) {
File dst = new File(outDir, set + "-" + rarity + ".jpg"); File dst = new File(outDir, set + "-" + rarity + ".jpg");
if (symbolsReplacements.containsKey(set)) { if (symbolsReplacements.containsKey(set)) {
set = symbolsReplacements.get(set); set = symbolsReplacements.get(set);
} }
String url = "http://gatherer.wizards.com/Handlers/Image.ashx?type=symbol&set=" + set + "&size=small&rarity=" + rarity; String url = "http://gatherer.wizards.com/Handlers/Image.ashx?type=symbol&set=" + set + "&size=small&rarity=" + rarity;
return new DownloadJob(set + "-" + rarity, fromURL(url), toFile(dst)); return new DownloadJob(set + "-" + rarity, fromURL(url), toFile(dst));
} }
private void changeOutDir(String path) { private void changeOutDir(String path) {
File file = new File(path + SETS_PATH); File file = new File(path + SETS_PATH);
if (file.exists()) { if (file.exists()) {
outDir = file; outDir = file;
} else { } else {
file.mkdirs(); file.mkdirs();
if (file.exists()) { if (file.exists()) {
outDir = file; outDir = file;
} }
} }
} }
private void useDefaultDir() { private void useDefaultDir() {
outDir = DEFAULT_OUT_DIR; outDir = DEFAULT_OUT_DIR;
} }
} }

View file

@ -46,6 +46,8 @@ public class MagicCardsImageSource implements CardImageSource {
put("10E", "tenth-edition"); put("10E", "tenth-edition");
put("CSP", "coldsnap"); put("CSP", "coldsnap");
put("CHK", "player-rewards-2004"); put("CHK", "player-rewards-2004");
put("POR", "portal");
put("PO2", "portal-second-age");
put("PTK", "portal-three-kingdoms"); put("PTK", "portal-three-kingdoms");
put("M14", "magic-2014"); put("M14", "magic-2014");
put("M13", "magic-2013"); put("M13", "magic-2013");

View file

@ -0,0 +1,62 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets;
import java.util.GregorianCalendar;
import mage.cards.ExpansionSet;
import mage.constants.SetType;
/**
*
* @author Plopman
*/
public class Portal extends ExpansionSet {
private static final Portal fINSTANCE = new Portal();
/**
*
* @return
*/
public static Portal getInstance() {
return fINSTANCE;
}
private Portal() {
super("Portal", "POR", "mage.sets.portal", new GregorianCalendar(1997, 5, 1).getTime(), SetType.REPRINT);
this.hasBasicLands = true;
this.hasBoosters = true;
this.numBoosterLands = 0;
this.numBoosterCommon = 11;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 0;
}
}

View file

@ -0,0 +1,62 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets;
import java.util.GregorianCalendar;
import mage.cards.ExpansionSet;
import mage.constants.SetType;
/**
*
* @author Plopman
*/
public class PortalSecondAge extends ExpansionSet {
private static final PortalSecondAge fINSTANCE = new PortalSecondAge();
/**
*
* @return
*/
public static PortalSecondAge getInstance() {
return fINSTANCE;
}
private PortalSecondAge() {
super("Portal Second Age", "PO2", "mage.sets.portalsecondage", new GregorianCalendar(1998, 6, 24).getTime(), SetType.REPRINT);
this.hasBasicLands = true;
this.hasBoosters = true;
this.numBoosterLands = 0;
this.numBoosterCommon = 11;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 0;
}
}

View file

@ -94,4 +94,6 @@ Modern Masters|modernmasters|
Theros|theros| Theros|theros|
Born of the Gods|bornofthegods| Born of the Gods|bornofthegods|
Journey into Nyx|journeyintonyx| Journey into Nyx|journeyintonyx|
Portal|portal|
Portal Second Age|portalsecondage|
Portal Three Kingdoms|portalthreekingdoms Portal Three Kingdoms|portalthreekingdoms