From df8de75a28cc029974ff750f410938292edaeef2 Mon Sep 17 00:00:00 2001 From: paul_snoops Date: Wed, 21 Jul 2021 13:32:26 +0100 Subject: [PATCH 1/3] Net Deck Archive Pauper (Desktop & Android) --- .../java/forge/deckchooser/FDeckChooser.java | 86 ++++++++---- .../src/forge/deck/FDeckChooser.java | 70 +++++++--- forge-gui/res/languages/de-DE.properties | 1 + forge-gui/res/languages/en-US.properties | 1 + forge-gui/res/languages/es-ES.properties | 1 + forge-gui/res/languages/it-IT.properties | 1 + forge-gui/res/languages/ja-JP.properties | 1 + forge-gui/res/languages/zh-CN.properties | 1 + .../res/lists/net-decks-archive-block.txt | 3 + .../res/lists/net-decks-archive-legacy.txt | 34 +++++ .../res/lists/net-decks-archive-modern.txt | 59 ++++++++ .../res/lists/net-decks-archive-pauper.txt | 87 ++++++++++++ .../res/lists/net-decks-archive-pioneer.txt | 31 +++++ .../res/lists/net-decks-archive-standard.txt | 127 ++++++++++++++++++ .../res/lists/net-decks-archive-vintage.txt | 107 +++++++++++++++ .../src/main/java/forge/deck/DeckProxy.java | 27 ++-- .../src/main/java/forge/deck/DeckType.java | 10 +- .../java/forge/deck/NetDeckArchivePauper.java | 122 +++++++++++++++++ .../forge/itemmanager/ItemManagerConfig.java | 22 +-- .../properties/ForgeConstants.java | 7 +- 20 files changed, 719 insertions(+), 79 deletions(-) create mode 100644 forge-gui/res/lists/net-decks-archive-pauper.txt create mode 100644 forge-gui/src/main/java/forge/deck/NetDeckArchivePauper.java diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java index c530b52a171..43df1dc83ff 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -1,34 +1,8 @@ package forge.deckchooser; -import java.awt.Dimension; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javax.swing.JOptionPane; -import javax.swing.JPanel; - -import org.apache.commons.lang3.StringUtils; - import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; - -import forge.deck.ArchetypeDeckGenerator; -import forge.deck.ColorDeckGenerator; -import forge.deck.CommanderDeckGenerator; -import forge.deck.Deck; -import forge.deck.DeckFormat; -import forge.deck.DeckProxy; -import forge.deck.DeckType; -import forge.deck.DeckgenUtil; -import forge.deck.NetDeckArchiveBlock; -import forge.deck.NetDeckArchiveLegacy; -import forge.deck.NetDeckArchiveModern; -import forge.deck.NetDeckArchivePioneer; -import forge.deck.NetDeckArchiveStandard; -import forge.deck.NetDeckArchiveVintage; -import forge.deck.NetDeckCategory; -import forge.deck.RandomDeckGenerator; +import forge.deck.*; import forge.game.GameFormat; import forge.game.GameType; import forge.game.player.RegisteredPlayer; @@ -50,6 +24,13 @@ import forge.toolbox.FLabel; import forge.toolbox.FOptionPane; import forge.util.Localizer; import net.miginfocom.swing.MigLayout; +import org.apache.commons.lang3.StringUtils; + +import javax.swing.*; +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; @SuppressWarnings("serial") public class FDeckChooser extends JPanel implements IDecksComboBoxListener { @@ -63,6 +44,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { private NetDeckArchiveLegacy NetDeckArchiveLegacy; private NetDeckArchiveVintage NetDeckArchiveVintage; private NetDeckArchiveBlock NetDeckArchiveBlock; + private NetDeckArchivePauper NetDeckArchivePauper; private boolean refreshingDeckType; private boolean isForCommander; @@ -322,7 +304,14 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { if (NetDeckArchiveBlock != null) { decksComboBox.setText(NetDeckArchiveBlock.getDeckType()); } - updateDecks(DeckProxy.getNetArchiveBlockecks(NetDeckArchiveBlock), ItemManagerConfig.NET_DECKS); + updateDecks(DeckProxy.getNetArchiveBlockDecks(NetDeckArchiveBlock), ItemManagerConfig.NET_DECKS); + } + + private void updateNetArchivePauperDecks() { + if (NetDeckArchivePauper != null) { + decksComboBox.setText(NetDeckArchivePauper.getDeckType()); + } + updateDecks(DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper), ItemManagerConfig.NET_DECKS); } public Deck getDeck() { final DeckProxy proxy = lstDecks.getSelectedItem(); @@ -525,7 +514,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { if (category == null) { decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels if (selectedDeckType == DeckType.NET_ARCHIVE_BLOCK_DECK && NetDeckArchiveBlock != null) { - decksComboBox.setText(NetDeckArchiveVintage.getDeckType()); + decksComboBox.setText(NetDeckArchiveBlock.getDeckType()); } return; } @@ -539,6 +528,33 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { return; + } else if (ev.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK&& !refreshingDeckType) { + if(lstDecks.getGameType() != GameType.Constructed) + return; + FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks + @Override + public void run() { + final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType()); + FThreads.invokeInEdtLater(new Runnable() { + @Override + public void run() { + if (category == null) { + decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels + if (selectedDeckType == DeckType.NET_ARCHIVE_PAUPER_DECK && NetDeckArchivePauper != null) { + decksComboBox.setText(NetDeckArchivePauper.getDeckType()); + } + return; + } + + NetDeckArchivePauper = category; + refreshDecksList(ev.getDeckType(), true, ev); + } + }); + } + }); + return; + + } else if ((ev.getDeckType() == DeckType.NET_DECK || ev.getDeckType() == DeckType.NET_COMMANDER_DECK) && !refreshingDeckType) { FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks @Override @@ -680,6 +696,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { case NET_ARCHIVE_BLOCK_DECK: updateNetArchiveBlockDecks(); break; + case NET_ARCHIVE_PAUPER_DECK: + updateNetArchivePauperDecks(); + break; default: break; //other deck types not currently supported here } @@ -711,9 +730,14 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { if (NetDeckArchiveLegacy == null) { return ""; } state.append(NetDeckArchiveLegacy.PREFIX).append(NetDeckArchiveLegacy.getName()); } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_VINTAGE_DECK) { + if (NetDeckArchiveVintage == null) { return ""; } state.append(NetDeckArchiveVintage.PREFIX).append(NetDeckArchiveVintage.getName()); } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_BLOCK_DECK) { + if (NetDeckArchiveBlock == null) { return ""; } state.append(NetDeckArchiveBlock.PREFIX).append(NetDeckArchiveBlock.getName()); + } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK) { + if (NetDeckArchivePauper == null) { return ""; } + state.append(NetDeckArchivePauper.PREFIX).append(NetDeckArchivePauper.getName()); } else if (decksComboBox.getDeckType() == null || decksComboBox.getDeckType() == DeckType.NET_DECK) { //handle special case of net decks if (netDeckCategory == null) { return ""; } @@ -796,6 +820,10 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { NetDeckArchiveBlock = NetDeckArchiveBlock.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveBlock.PREFIX.length())); return DeckType.NET_ARCHIVE_BLOCK_DECK; } + if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) { + NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length())); + return DeckType.NET_ARCHIVE_PAUPER_DECK; + } return DeckType.valueOf(deckType); } } catch (final IllegalArgumentException ex) { diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 6dd9d9f0b2e..6e4ad10d596 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -1,18 +1,7 @@ package forge.deck; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; - import forge.Forge; import forge.assets.ImageCache; import forge.deck.FDeckEditor.EditorType; @@ -41,18 +30,15 @@ import forge.screens.FScreen; import forge.screens.LoadingOverlay; import forge.screens.home.NewGameMenu.NewGameScreen; import forge.screens.match.MatchController; -import forge.toolbox.FButton; -import forge.toolbox.FComboBox; -import forge.toolbox.FContainer; -import forge.toolbox.FEvent; +import forge.toolbox.*; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FOptionPane; -import forge.toolbox.GuiChoose; -import forge.toolbox.ListChooser; import forge.util.Callback; import forge.util.Localizer; import forge.util.Utils; import forge.util.storage.IStorage; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; public class FDeckChooser extends FScreen { public static final float PADDING = Utils.scale(5); @@ -68,6 +54,7 @@ public class FDeckChooser extends FScreen { private NetDeckArchiveLegacy NetDeckArchiveLegacy; private NetDeckArchiveVintage NetDeckArchiveVintage; private NetDeckArchiveBlock NetDeckArchiveBlock; + private NetDeckArchivePauper NetDeckArchivePauper; private boolean refreshingDeckType; private boolean firstActivation = true; @@ -545,6 +532,7 @@ public class FDeckChooser extends FScreen { cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_LEGACY_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_VINTAGE_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_BLOCK_DECK); + cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK); break; case Commander: @@ -581,6 +569,7 @@ public class FDeckChooser extends FScreen { cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_LEGACY_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_VINTAGE_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_BLOCK_DECK); + cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK); break; default: cmbDeckTypes.addItem(DeckType.CUSTOM_DECK); @@ -787,6 +776,34 @@ public class FDeckChooser extends FScreen { + if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_PAUPER_DECK)) { + FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks + @Override + public void run() { + GameType gameType = lstDecks.getGameType(); + final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(gameType); + + FThreads.invokeInEdtLater(new Runnable() { + @Override + public void run() { + if (category == null) { + cmbDeckTypes.setSelectedItem(selectedDeckType); //restore old selection if user cancels + if (selectedDeckType == deckType && NetDeckArchivePauper != null) { + cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType()); + } + return; + } + + NetDeckArchivePauper = category; + refreshDecksList(deckType, true, e); + } + }); + } + }); + return; + } + + refreshDecksList(deckType, false, e); } @@ -1028,9 +1045,16 @@ public class FDeckChooser extends FScreen { if (NetDeckArchiveBlock!= null) { cmbDeckTypes.setText(NetDeckArchiveBlock.getDeckType()); } - pool = DeckProxy.getNetArchiveBlockecks(NetDeckArchiveBlock); + pool = DeckProxy.getNetArchiveBlockDecks(NetDeckArchiveBlock); config = ItemManagerConfig.NET_ARCHIVE_BLOCK_DECKS; break; + case NET_ARCHIVE_PAUPER_DECK: + if (NetDeckArchivePauper!= null) { + cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType()); + } + pool = DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper); + config = ItemManagerConfig.NET_ARCHIVE_PAUPER_DECKS; + break; case NET_DECK: case NET_COMMANDER_DECK: if (netDeckCategory != null) { @@ -1318,6 +1342,10 @@ public class FDeckChooser extends FScreen { NetDeckArchiveBlock = NetDeckArchiveBlock.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveBlock.PREFIX.length())); return DeckType.NET_ARCHIVE_BLOCK_DECK; } + if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) { + NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length())); + return DeckType.NET_ARCHIVE_PAUPER_DECK; + } return DeckType.valueOf(deckType); } } @@ -1400,7 +1428,9 @@ public class FDeckChooser extends FScreen { DeckType.NET_ARCHIVE_PIONEER_DECK, DeckType.NET_ARCHIVE_MODERN_DECK, DeckType.NET_ARCHIVE_VINTAGE_DECK, - DeckType.NET_ARCHIVE_LEGACY_DECK + DeckType.NET_ARCHIVE_LEGACY_DECK, + DeckType.NET_ARCHIVE_BLOCK_DECK, + DeckType.NET_ARCHIVE_PAUPER_DECK ); if (!FModel.isdeckGenMatrixLoaded()) { diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index d4c8e95c0f7..bf6410201e3 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -609,6 +609,7 @@ lblNetArchivePioneerDecks=Netz-Archiv Pioneer-Decks lblNetArchiveLegacyDecks=Netz-Archiv Legacy-Decks lblNetArchiveVintageDecks=Netz-Archiv Vintage-Decks lblNetArchiveBlockDecks=Netz-Archiv Block-Decks +lblNetArchivePauperDecks=Netz-Archiv Pauper-Decks #VSubmenuTutorial lblTutorial=Tutorial lblTutorialMode=Tutorial-Mode diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index f66bd7b7cd4..a7a9ed67137 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -609,6 +609,7 @@ lblNetArchiveModernDecks=Net Archive Modern Decks lblNetArchiveLegacyDecks=Net Archive Legacy Decks lblNetArchiveVintageDecks=Net Archive Vintage Decks lblNetArchiveBlockDecks=Net Archive Block Decks +lblNetArchivePauperDecks=Net Archive Pauper Decks #VSubmenuTutorial lblTutorial=Tutorial lblTutorialMode=Tutorial Mode diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index fbc8c2ee7bd..81bef6f8f13 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -609,6 +609,7 @@ lblNetArchiveModernDecks=Archivo online de mazos Modern lblNetArchiveLegacyDecks=Archivo online de mazos Legacy lblNetArchiveVintageDecks=Archivo online de mazos Vintage lblNetArchiveBlockDecks=Archivo online de mazos de Bloque +lblNetArchivePauperDecks=Archivo online de mazos Pauper #VSubmenuTutorial lblTutorial=Tutorial lblTutorialMode=Modo Tutorial diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 705c55d8a55..7bc9d4bf260 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -609,6 +609,7 @@ lblNetArchiveModernDecks=Mazzi Modern dalla rete lblNetArchiveLegacyDecks=Mazzi Legacy dalla rete lblNetArchiveVintageDecks=Mazzi Vintage dalla rete lblNetArchiveBlockDecks=Mazzi per Blocco dalla rete +lblNetArchivePauperDecks=Mazzi per Pauper dalla rete #VSubmenuTutorial lblTutorial=Tutorial lblTutorialMode=Modalità Tutorial diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 5792fd342ac..ebc39e2b6a2 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -609,6 +609,7 @@ lblNetArchiveModernDecks=ネットアーカイブデッキ モダン lblNetArchiveLegacyDecks=ネットアーカイブデッキ レガシー lblNetArchiveVintageDecks=ネットアーカイブデッキ ビンテージ lblNetArchiveBlockDecks=ネットアーカイブデッキ ブロック +lblNetArchiveBlockDecks=Net Archive Pauper Decks #VSubmenuTutorial lblTutorial=チュートリアル lblTutorialMode=チュートリアルモード diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 1f0cc199f83..2a6e69e5738 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -609,6 +609,7 @@ lblNetArchivePioneerDecks=网络先驱套牌存档 lblNetArchiveLegacyDecks=网络薪传套牌存档 lblNetArchiveVintageDecks=网络特选套牌存档 lblNetArchiveBlockDecks=网络环境构筑套牌存档 +lblNetArchiveBlockDecks=Net Archive Pauper Decks #VSubmenuTutorial lblTutorial=教程 lblTutorialMode=教程模式 diff --git a/forge-gui/res/lists/net-decks-archive-block.txt b/forge-gui/res/lists/net-decks-archive-block.txt index 29fd266735d..19164a3b2e8 100644 --- a/forge-gui/res/lists/net-decks-archive-block.txt +++ b/forge-gui/res/lists/net-decks-archive-block.txt @@ -971,3 +971,6 @@ 2021-05-10 Sealed Stx Block Mocs (8 decks) | https://downloads.cardforge.org/decks/archive/block/2021-05-10-sealed-stx-block-mocs.zip 2021-05-16 Sealed Stx Block Champ Qual (8 decks) | https://downloads.cardforge.org/decks/archive/block/2021-05-16-sealed-stx-block-champ-qual.zip 2021-05-17 Sealed Stx Block Champ Qual (7 decks) | https://downloads.cardforge.org/decks/archive/block/2021-05-17-sealed-stx-block-champ-qual.zip +2021-05-02 Sealed Stx Block Champ Qual (8 decks) | https://downloads.cardforge.org/decks/archive/block/2021-05-02-sealed-stx-block-champ-qual.zip +2021-05-17 Sealed Stx Block Champ Qual (8 decks) | https://downloads.cardforge.org/decks/archive/block/2021-05-17-sealed-stx-block-champ-qual.zip +2021-06-27 Sealed Mh2 Block Champs (4 decks) | https://downloads.cardforge.org/decks/archive/block/2021-06-27-sealed-mh2-block-champs.zip diff --git a/forge-gui/res/lists/net-decks-archive-legacy.txt b/forge-gui/res/lists/net-decks-archive-legacy.txt index d2f43d8aa9d..63abf214b85 100644 --- a/forge-gui/res/lists/net-decks-archive-legacy.txt +++ b/forge-gui/res/lists/net-decks-archive-legacy.txt @@ -2030,3 +2030,37 @@ 2021-06-19 Legacy Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-19-legacy-preliminary.zip 2021-06-20 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-20-legacy-challenge.zip 2021-06-21 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-21-legacy-challenge.zip +2021-05-20 Legacy Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-20-legacy-preliminary.zip +2021-05-21 Legacy Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-21-legacy-preliminary.zip +2021-05-22 Legacy League (55 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-22-legacy-league.zip +2021-05-25 Legacy Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-25-legacy-preliminary.zip +2021-05-26 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-26-legacy-challenge.zip +2021-05-26 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-26-legacy-preliminary.zip +2021-05-27 Legacy Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-27-legacy-preliminary.zip +2021-05-28 Legacy Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-28-legacy-preliminary.zip +2021-05-29 Legacy League (58 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-29-legacy-league.zip +2021-05-29 Legacy Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-05-29-legacy-preliminary.zip +2021-06-05 Legacy Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-05-legacy-preliminary.zip +2021-06-06 Legacy Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-06-legacy-challenge.zip +2021-06-07 Legacy Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-07-legacy-showcase-challenge.zip +2021-06-09 Legacy Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-09-legacy-preliminary.zip +2021-06-10 Legacy Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-10-legacy-preliminary.zip +2021-06-26 Legacy League (60 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-26-legacy-league.zip +2021-06-26 Legacy Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-26-legacy-preliminary.zip +2021-06-27 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-27-legacy-challenge.zip +2021-06-28 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-06-28-legacy-challenge.zip +2021-07-03 Legacy League (54 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-03-legacy-league.zip +2021-07-03 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-03-legacy-preliminary.zip +2021-07-04 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-04-legacy-challenge.zip +2021-07-05 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-05-legacy-challenge.zip +2021-07-06 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-06-legacy-preliminary.zip +2021-07-07 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-07-legacy-preliminary.zip +2021-07-10 Legacy League (23 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-10-legacy-league.zip +2021-07-11 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-11-legacy-challenge.zip +2021-07-12 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-12-legacy-challenge.zip +2021-07-13 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-13-legacy-preliminary.zip +2021-07-14 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-14-legacy-preliminary.zip +2021-07-16 Legacy Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-16-legacy-preliminary.zip +2021-07-17 Legacy League (48 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-17-legacy-league.zip +2021-07-17 Legacy Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-17-legacy-preliminary.zip +2021-07-18 Legacy Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/legacy/2021-07-18-legacy-challenge.zip diff --git a/forge-gui/res/lists/net-decks-archive-modern.txt b/forge-gui/res/lists/net-decks-archive-modern.txt index 01252d998f7..5d032cef399 100644 --- a/forge-gui/res/lists/net-decks-archive-modern.txt +++ b/forge-gui/res/lists/net-decks-archive-modern.txt @@ -2630,3 +2630,62 @@ 2021-06-21 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-21-modern-challenge.zip 2021-06-22 Modern League (113 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-22-modern-league.zip 2021-06-22 Modern Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-22-modern-preliminary.zip +2021-01-19 Modern Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-01-19-modern-super-qualifier.zip +2021-04-25 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-04-25-modern-challenge.zip +2021-05-20 Modern Preliminary (11 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-20-modern-preliminary.zip +2021-05-21 Modern League (48 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-21-modern-league.zip +2021-05-21 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-21-modern-preliminary.zip +2021-05-22 Modern Preliminary (13 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-22-modern-preliminary.zip +2021-05-25 Modern League (54 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-25-modern-league.zip +2021-05-25 Modern Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-25-modern-preliminary.zip +2021-05-26 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-26-modern-challenge.zip +2021-05-26 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-26-modern-preliminary.zip +2021-05-27 Modern Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-27-modern-preliminary.zip +2021-05-28 Modern League (47 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-28-modern-league.zip +2021-05-28 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-28-modern-preliminary.zip +2021-05-29 Modern Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-05-29-modern-preliminary.zip +2021-06-06 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-06-modern-challenge.zip +2021-06-07 Modern Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-07-modern-challenge.zip +2021-06-08 Modern League (116 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-08-modern-league.zip +2021-06-08 Modern Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-08-modern-preliminary.zip +2021-06-09 Modern Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-09-modern-preliminary.zip +2021-06-10 Modern Preliminary (13 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-10-modern-preliminary.zip +2021-06-11 Modern League (97 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-11-modern-league.zip +2021-06-14 Modern Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-14-modern-challenge.zip +2021-06-15 Modern League (120 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-15-modern-league.zip +2021-06-18 Modern League (93 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-18-modern-league.zip +2021-06-20 Modern Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-20-modern-challenge.zip +2021-06-22 Modern League (112 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-22-modern-league.zip +2021-06-23 Modern Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-23-modern-preliminary.zip +2021-06-24 Modern Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-24-modern-preliminary.zip +2021-06-25 Modern League (78 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-25-modern-league.zip +2021-06-25 Modern Preliminary (10 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-25-modern-preliminary.zip +2021-06-26 Modern Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-26-modern-preliminary.zip +2021-06-27 Modern Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-27-modern-challenge.zip +2021-06-28 Modern Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-28-modern-challenge.zip +2021-06-29 Modern League (90 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-29-modern-league.zip +2021-06-29 Modern Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-29-modern-preliminary.zip +2021-06-30 Modern Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-06-30-modern-preliminary.zip +2021-07-01 Modern Preliminary (10 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-01-modern-preliminary.zip +2021-07-02 Modern League (76 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-02-modern-league.zip +2021-07-02 Modern Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-02-modern-preliminary.zip +2021-07-03 Modern Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-03-modern-preliminary.zip +2021-07-04 Modern Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-04-modern-showcase-challenge.zip +2021-07-05 Modern Challenge (31 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-05-modern-challenge.zip +2021-07-06 Modern League (76 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-06-modern-league.zip +2021-07-06 Modern Preliminary (9 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-06-modern-preliminary.zip +2021-07-07 Modern Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-07-modern-preliminary.zip +2021-07-08 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-08-modern-preliminary.zip +2021-07-09 Modern League (26 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-09-modern-league.zip +2021-07-09 Modern Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-09-modern-preliminary.zip +2021-07-10 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-10-modern-preliminary.zip +2021-07-11 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-11-modern-challenge.zip +2021-07-12 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-12-modern-challenge.zip +2021-07-13 Modern League (84 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-13-modern-league.zip +2021-07-13 Modern Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-13-modern-preliminary.zip +2021-07-14 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-14-modern-preliminary.zip +2021-07-15 Modern Preliminary (10 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-15-modern-preliminary.zip +2021-07-16 Modern League (69 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-16-modern-league.zip +2021-07-16 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-16-modern-preliminary.zip +2021-07-17 Modern Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-17-modern-preliminary.zip +2021-07-18 Modern Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/modern/2021-07-18-modern-challenge.zip diff --git a/forge-gui/res/lists/net-decks-archive-pauper.txt b/forge-gui/res/lists/net-decks-archive-pauper.txt new file mode 100644 index 00000000000..cede42a587a --- /dev/null +++ b/forge-gui/res/lists/net-decks-archive-pauper.txt @@ -0,0 +1,87 @@ +2021-01-03 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-03-pauper-challenge.zip +2021-01-04 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-04-pauper-challenge.zip +2021-01-06 Pauper League (26 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-06-pauper-league.zip +2021-01-10 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-10-pauper-challenge.zip +2021-01-13 Pauper League (26 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-13-pauper-league.zip +2021-01-15 Pauper Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-15-pauper-preliminary.zip +2021-01-17 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-17-pauper-challenge.zip +2021-01-18 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-18-pauper-challenge.zip +2021-01-20 Pauper League (27 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-20-pauper-league.zip +2021-01-21 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-21-pauper-challenge.zip +2021-01-24 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-24-pauper-challenge.zip +2021-01-24 Pauper Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-24-pauper-super-qualifier.zip +2021-01-25 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-25-pauper-challenge.zip +2021-01-27 Pauper League (34 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-27-pauper-league.zip +2021-01-31 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-01-31-pauper-challenge.zip +2021-02-01 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-01-pauper-challenge.zip +2021-02-03 Pauper League (30 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-03-pauper-league.zip +2021-02-07 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-07-pauper-challenge.zip +2021-02-08 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-08-pauper-challenge.zip +2021-02-10 Pauper League (29 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-10-pauper-league.zip +2021-02-14 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-14-pauper-challenge.zip +2021-02-15 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-15-pauper-challenge.zip +2021-02-17 Pauper League (21 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-17-pauper-league.zip +2021-02-21 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-21-pauper-challenge.zip +2021-02-22 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-22-pauper-challenge.zip +2021-02-24 Pauper League (27 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-24-pauper-league.zip +2021-02-28 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-02-28-pauper-challenge.zip +2021-03-01 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-01-pauper-challenge.zip +2021-03-03 Pauper League (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-03-pauper-league.zip +2021-03-07 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-07-pauper-challenge.zip +2021-03-08 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-08-pauper-challenge.zip +2021-03-10 Pauper League (27 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-10-pauper-league.zip +2021-03-10 Pauper Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-10-pauper-preliminary.zip +2021-03-24 Pauper League (27 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-24-pauper-league.zip +2021-03-28 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-28-pauper-challenge.zip +2021-03-29 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-29-pauper-challenge.zip +2021-03-31 Pauper League (25 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-03-31-pauper-league.zip +2021-04-04 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-04-pauper-challenge.zip +2021-04-04 Pauper Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-04-pauper-super-qualifier.zip +2021-04-05 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-05-pauper-challenge.zip +2021-04-07 Pauper League (26 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-07-pauper-league.zip +2021-04-07 Pauper Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-07-pauper-preliminary.zip +2021-04-11 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-11-pauper-challenge.zip +2021-04-12 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-12-pauper-challenge.zip +2021-04-14 Pauper League (26 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-14-pauper-league.zip +2021-04-14 Pauper Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-14-pauper-preliminary.zip +2021-04-18 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-18-pauper-challenge.zip +2021-04-19 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-19-pauper-challenge.zip +2021-04-21 Pauper League (24 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-21-pauper-league.zip +2021-04-21 Pauper Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-21-pauper-preliminary.zip +2021-04-25 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-25-pauper-challenge.zip +2021-04-26 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-26-pauper-challenge.zip +2021-04-28 Pauper League (26 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-28-pauper-league.zip +2021-04-28 Pauper Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-04-28-pauper-preliminary.zip +2021-05-02 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-02-pauper-challenge.zip +2021-05-03 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-03-pauper-challenge.zip +2021-05-05 Pauper League (26 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-05-pauper-league.zip +2021-05-09 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-09-pauper-challenge.zip +2021-05-10 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-10-pauper-challenge.zip +2021-05-12 Pauper League (23 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-12-pauper-league.zip +2021-05-16 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-16-pauper-challenge.zip +2021-05-17 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-17-pauper-challenge.zip +2021-05-19 Pauper League (24 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-19-pauper-league.zip +2021-05-26 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-26-pauper-challenge.zip +2021-05-26 Pauper League (24 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-26-pauper-league.zip +2021-05-30 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-30-pauper-challenge.zip +2021-05-31 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-05-31-pauper-challenge.zip +2021-06-02 Pauper League (25 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-02-pauper-league.zip +2021-06-06 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-06-pauper-challenge.zip +2021-06-07 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-07-pauper-challenge.zip +2021-06-09 Pauper League (25 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-09-pauper-league.zip +2021-06-13 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-13-pauper-challenge.zip +2021-06-14 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-14-pauper-challenge.zip +2021-06-16 Pauper League (24 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-16-pauper-league.zip +2021-06-20 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-20-pauper-challenge.zip +2021-06-21 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-21-pauper-challenge.zip +2021-06-23 Pauper League (25 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-23-pauper-league.zip +2021-06-27 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-27-pauper-challenge.zip +2021-06-28 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-28-pauper-challenge.zip +2021-06-30 Pauper League (23 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-06-30-pauper-league.zip +2021-07-04 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-04-pauper-challenge.zip +2021-07-05 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-05-pauper-challenge.zip +2021-07-07 Pauper League (19 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-07-pauper-league.zip +2021-07-11 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-11-pauper-challenge.zip +2021-07-12 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-12-pauper-challenge.zip +2021-07-14 Pauper League (18 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-14-pauper-league.zip +2021-07-18 Pauper Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pauper/2021-07-18-pauper-challenge.zip diff --git a/forge-gui/res/lists/net-decks-archive-pioneer.txt b/forge-gui/res/lists/net-decks-archive-pioneer.txt index 51de66b3ff8..443fc7c7101 100644 --- a/forge-gui/res/lists/net-decks-archive-pioneer.txt +++ b/forge-gui/res/lists/net-decks-archive-pioneer.txt @@ -638,3 +638,34 @@ 2021-06-21 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-21-pioneer-challenge.zip 2021-06-21 Pioneer League (14 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-21-pioneer-league.zip 2021-06-22 Pioneer Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-22-pioneer-preliminary.zip +2021-04-25 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-04-25-pioneer-challenge.zip +2021-05-20 Pioneer League (18 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-20-pioneer-league.zip +2021-05-20 Pioneer Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-20-pioneer-preliminary.zip +2021-05-21 Pioneer Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-21-pioneer-preliminary.zip +2021-05-24 Pioneer League (11 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-24-pioneer-league.zip +2021-05-25 Pioneer Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-25-pioneer-preliminary.zip +2021-05-26 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-26-pioneer-challenge.zip +2021-05-27 Pioneer League (13 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-27-pioneer-league.zip +2021-05-28 Pioneer Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-28-pioneer-preliminary.zip +2021-05-29 Pioneer Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-05-29-pioneer-preliminary.zip +2021-06-07 Pioneer League (17 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-07-pioneer-league.zip +2021-06-08 Pioneer Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-08-pioneer-preliminary.zip +2021-06-10 Pioneer League (13 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-10-pioneer-league.zip +2021-06-24 Pioneer League (14 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-24-pioneer-league.zip +2021-06-27 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-27-pioneer-challenge.zip +2021-06-28 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-28-pioneer-challenge.zip +2021-06-28 Pioneer League (21 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-28-pioneer-league.zip +2021-06-29 Pioneer Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-06-29-pioneer-preliminary.zip +2021-07-01 Pioneer League (19 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-01-pioneer-league.zip +2021-07-01 Pioneer Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-01-pioneer-preliminary.zip +2021-07-03 Pioneer Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-03-pioneer-preliminary.zip +2021-07-04 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-04-pioneer-challenge.zip +2021-07-05 Pioneer League (19 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-05-pioneer-league.zip +2021-07-05 Pioneer Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-05-pioneer-showcase-challenge.zip +2021-07-08 Pioneer League (14 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-08-pioneer-league.zip +2021-07-11 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-11-pioneer-challenge.zip +2021-07-12 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-12-pioneer-challenge.zip +2021-07-12 Pioneer League (14 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-12-pioneer-league.zip +2021-07-13 Pioneer Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-13-pioneer-preliminary.zip +2021-07-15 Pioneer League (15 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-15-pioneer-league.zip +2021-07-18 Pioneer Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/pioneer/2021-07-18-pioneer-challenge.zip diff --git a/forge-gui/res/lists/net-decks-archive-standard.txt b/forge-gui/res/lists/net-decks-archive-standard.txt index 8083746db11..1251110269a 100644 --- a/forge-gui/res/lists/net-decks-archive-standard.txt +++ b/forge-gui/res/lists/net-decks-archive-standard.txt @@ -2435,3 +2435,130 @@ 2021-06-20 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-20-standard-challenge.zip 2021-06-21 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-21-standard-challenge.zip 2021-06-21 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-21-standard-league.zip +2021-01-03 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-03-standard-challenge.zip +2021-01-04 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-04-standard-challenge.zip +2021-01-04 Standard League (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-04-standard-league.zip +2021-01-07 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-07-standard-league.zip +2021-01-10 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-10-standard-challenge.zip +2021-01-13 Standard Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-13-standard-preliminary.zip +2021-01-14 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-14-standard-league.zip +2021-01-14 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-14-standard-preliminary.zip +2021-01-15 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-15-standard-preliminary.zip +2021-01-17 Standard Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-17-standard-showcase-challenge.zip +2021-01-18 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-18-standard-challenge.zip +2021-01-18 Standard League (9 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-18-standard-league.zip +2021-01-21 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-21-standard-challenge.zip +2021-01-21 Standard League (7 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-21-standard-league.zip +2021-01-21 Standard Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-21-standard-super-qualifier.zip +2021-01-24 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-24-standard-challenge.zip +2021-01-25 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-25-standard-challenge.zip +2021-01-25 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-25-standard-league.zip +2021-01-28 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-28-standard-league.zip +2021-01-31 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-01-31-standard-challenge.zip +2021-02-01 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-01-standard-challenge.zip +2021-02-01 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-01-standard-league.zip +2021-02-04 Standard League (12 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-04-standard-league.zip +2021-02-07 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-07-standard-challenge.zip +2021-02-08 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-08-standard-challenge.zip +2021-02-08 Standard League (15 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-08-standard-league.zip +2021-02-11 Standard League (12 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-11-standard-league.zip +2021-02-14 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-14-standard-challenge.zip +2021-02-15 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-15-standard-challenge.zip +2021-02-15 Standard League (16 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-15-standard-league.zip +2021-02-17 Standard Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-17-standard-preliminary.zip +2021-02-18 Standard League (13 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-18-standard-league.zip +2021-02-21 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-21-standard-challenge.zip +2021-02-22 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-22-standard-challenge.zip +2021-02-22 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-22-standard-league.zip +2021-02-25 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-25-standard-league.zip +2021-02-28 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-02-28-standard-challenge.zip +2021-03-01 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-01-standard-challenge.zip +2021-03-01 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-01-standard-league.zip +2021-03-04 Standard League (13 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-04-standard-league.zip +2021-03-05 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-05-standard-preliminary.zip +2021-03-07 Standard Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-07-standard-showcase-challenge.zip +2021-03-08 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-08-standard-challenge.zip +2021-03-08 Standard League (14 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-08-standard-league.zip +2021-03-24 Standard Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-24-standard-preliminary.zip +2021-03-25 Standard League (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-25-standard-league.zip +2021-03-26 Standard Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-26-standard-preliminary.zip +2021-03-28 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-28-standard-challenge.zip +2021-03-29 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-29-standard-challenge.zip +2021-03-29 Standard Champ Qual (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-29-standard-champ-qual.zip +2021-03-29 Standard League (10 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-29-standard-league.zip +2021-03-31 Standard Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-03-31-standard-preliminary.zip +2021-04-01 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-01-standard-league.zip +2021-04-01 Standard Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-01-standard-preliminary.zip +2021-04-02 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-02-standard-preliminary.zip +2021-04-04 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-04-standard-challenge.zip +2021-04-05 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-05-standard-challenge.zip +2021-04-05 Standard League (9 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-05-standard-league.zip +2021-04-08 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-08-standard-league.zip +2021-04-08 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-08-standard-preliminary.zip +2021-04-08 Standard Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-08-standard-super-qualifier.zip +2021-04-11 Standard Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-11-standard-showcase-challenge.zip +2021-04-12 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-12-standard-challenge.zip +2021-04-12 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-12-standard-league.zip +2021-04-15 Standard League (7 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-15-standard-league.zip +2021-04-18 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-18-standard-challenge.zip +2021-04-19 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-19-standard-challenge.zip +2021-04-19 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-19-standard-league.zip +2021-04-22 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-22-standard-league.zip +2021-04-25 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-25-standard-challenge.zip +2021-04-26 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-26-standard-challenge.zip +2021-04-26 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-26-standard-league.zip +2021-04-29 Standard League (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-04-29-standard-league.zip +2021-05-02 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-02-standard-challenge.zip +2021-05-03 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-03-standard-challenge.zip +2021-05-03 Standard League (10 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-03-standard-league.zip +2021-05-05 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-05-standard-preliminary.zip +2021-05-06 Standard League (12 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-06-standard-league.zip +2021-05-06 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-06-standard-preliminary.zip +2021-05-07 Standard Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-07-standard-preliminary.zip +2021-05-09 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-09-standard-challenge.zip +2021-05-10 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-10-standard-challenge.zip +2021-05-10 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-10-standard-league.zip +2021-05-12 Standard Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-12-standard-preliminary.zip +2021-05-13 Standard League (10 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-13-standard-league.zip +2021-05-13 Standard Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-13-standard-preliminary.zip +2021-05-16 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-16-standard-challenge.zip +2021-05-17 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-17-standard-challenge.zip +2021-05-17 Standard League (13 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-17-standard-league.zip +2021-05-19 Standard Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-19-standard-preliminary.zip +2021-05-20 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-20-standard-league.zip +2021-05-20 Standard Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-20-standard-preliminary.zip +2021-05-21 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-21-standard-preliminary.zip +2021-05-24 Standard League (9 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-24-standard-league.zip +2021-05-26 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-26-standard-challenge.zip +2021-05-26 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-26-standard-preliminary.zip +2021-05-27 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-27-standard-league.zip +2021-05-30 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-30-standard-challenge.zip +2021-05-31 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-31-standard-challenge.zip +2021-05-31 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-05-31-standard-league.zip +2021-06-02 Standard Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-02-standard-preliminary.zip +2021-06-03 Standard League (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-03-standard-league.zip +2021-06-06 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-06-standard-challenge.zip +2021-06-07 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-07-standard-challenge.zip +2021-06-07 Standard League (7 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-07-standard-league.zip +2021-06-10 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-10-standard-league.zip +2021-06-13 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-13-standard-challenge.zip +2021-06-14 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-14-standard-challenge.zip +2021-06-14 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-14-standard-league.zip +2021-06-17 Standard League (6 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-17-standard-league.zip +2021-06-20 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-20-standard-challenge.zip +2021-06-21 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-21-standard-challenge.zip +2021-06-21 Standard League (8 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-21-standard-league.zip +2021-06-24 Standard League (7 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-24-standard-league.zip +2021-06-27 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-27-standard-challenge.zip +2021-06-28 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-28-standard-challenge.zip +2021-06-28 Standard League (3 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-06-28-standard-league.zip +2021-07-01 Standard League (7 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-01-standard-league.zip +2021-07-04 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-04-standard-challenge.zip +2021-07-05 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-05-standard-challenge.zip +2021-07-05 Standard League (10 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-05-standard-league.zip +2021-07-08 Standard League (5 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-08-standard-league.zip +2021-07-11 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-11-standard-challenge.zip +2021-07-12 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-12-standard-challenge.zip +2021-07-12 Standard League (12 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-12-standard-league.zip +2021-07-15 Standard League (9 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-15-standard-league.zip +2021-07-18 Standard Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/standard/2021-07-18-standard-challenge.zip diff --git a/forge-gui/res/lists/net-decks-archive-vintage.txt b/forge-gui/res/lists/net-decks-archive-vintage.txt index fc690e202a5..bf51df21f30 100644 --- a/forge-gui/res/lists/net-decks-archive-vintage.txt +++ b/forge-gui/res/lists/net-decks-archive-vintage.txt @@ -1371,3 +1371,110 @@ 2021-06-20 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-20-vintage-challenge.zip 2021-06-20 Vintage League (15 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-20-vintage-league.zip 2021-06-21 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-21-vintage-challenge.zip +2021-01-02 Vintage Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-02-vintage-preliminary.zip +2021-01-03 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-03-vintage-challenge.zip +2021-01-03 Vintage League (14 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-03-vintage-league.zip +2021-01-04 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-04-vintage-challenge.zip +2021-01-04 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-04-vintage-preliminary.zip +2021-01-07 Vintage Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-07-vintage-preliminary.zip +2021-01-09 Vintage Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-09-vintage-preliminary.zip +2021-01-10 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-10-vintage-challenge.zip +2021-01-10 Vintage League (16 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-10-vintage-league.zip +2021-01-13 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-13-vintage-preliminary.zip +2021-01-14 Vintage Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-14-vintage-preliminary.zip +2021-01-16 Vintage Preliminary (13 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-16-vintage-preliminary.zip +2021-01-17 Vintage League (17 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-17-vintage-league.zip +2021-01-17 Vintage Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-17-vintage-showcase-challenge.zip +2021-01-18 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-18-vintage-challenge.zip +2021-01-18 Vintage Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-18-vintage-preliminary.zip +2021-01-19 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-19-vintage-preliminary.zip +2021-01-21 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-21-vintage-challenge.zip +2021-01-21 Vintage Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-21-vintage-preliminary.zip +2021-01-23 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-23-vintage-preliminary.zip +2021-01-24 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-24-vintage-challenge.zip +2021-01-24 Vintage League (25 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-24-vintage-league.zip +2021-01-25 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-25-vintage-challenge.zip +2021-01-25 Vintage Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-25-vintage-super-qualifier.zip +2021-01-26 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-26-vintage-preliminary.zip +2021-01-28 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-28-vintage-preliminary.zip +2021-01-30 Vintage Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-30-vintage-preliminary.zip +2021-01-31 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-31-vintage-challenge.zip +2021-01-31 Vintage League (11 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-01-31-vintage-league.zip +2021-02-01 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-01-vintage-challenge.zip +2021-02-02 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-02-vintage-preliminary.zip +2021-02-04 Vintage Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-04-vintage-preliminary.zip +2021-02-06 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-06-vintage-preliminary.zip +2021-02-07 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-07-vintage-challenge.zip +2021-02-07 Vintage League (21 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-07-vintage-league.zip +2021-02-08 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-08-vintage-challenge.zip +2021-02-13 Vintage Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-13-vintage-preliminary.zip +2021-02-14 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-14-vintage-challenge.zip +2021-02-14 Vintage League (14 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-14-vintage-league.zip +2021-02-15 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-15-vintage-challenge.zip +2021-02-18 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-18-vintage-preliminary.zip +2021-02-21 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-21-vintage-challenge.zip +2021-02-21 Vintage League (15 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-21-vintage-league.zip +2021-02-22 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-22-vintage-challenge.zip +2021-02-27 Vintage Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-27-vintage-preliminary.zip +2021-02-28 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-28-vintage-challenge.zip +2021-02-28 Vintage League (16 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-02-28-vintage-league.zip +2021-03-01 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-01-vintage-challenge.zip +2021-03-04 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-04-vintage-preliminary.zip +2021-03-06 Vintage Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-06-vintage-preliminary.zip +2021-03-07 Vintage League (18 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-07-vintage-league.zip +2021-03-07 Vintage Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-07-vintage-showcase-challenge.zip +2021-03-08 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-08-vintage-challenge.zip +2021-03-23 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-23-vintage-preliminary.zip +2021-03-25 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-25-vintage-preliminary.zip +2021-03-27 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-27-vintage-preliminary.zip +2021-03-28 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-28-vintage-challenge.zip +2021-03-28 Vintage League (19 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-28-vintage-league.zip +2021-03-29 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-29-vintage-challenge.zip +2021-03-29 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-03-29-vintage-preliminary.zip +2021-04-01 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-01-vintage-preliminary.zip +2021-04-03 Vintage Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-03-vintage-preliminary.zip +2021-04-04 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-04-vintage-challenge.zip +2021-04-04 Vintage League (13 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-04-vintage-league.zip +2021-04-05 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-05-vintage-challenge.zip +2021-04-05 Vintage Super Qualifier (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-05-vintage-super-qualifier.zip +2021-04-08 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-08-vintage-preliminary.zip +2021-04-10 Vintage Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-10-vintage-preliminary.zip +2021-04-11 Vintage League (16 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-11-vintage-league.zip +2021-04-11 Vintage Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-11-vintage-showcase-challenge.zip +2021-04-12 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-12-vintage-challenge.zip +2021-04-12 Vintage Preliminary (8 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-12-vintage-preliminary.zip +2021-04-15 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-15-vintage-preliminary.zip +2021-04-17 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-04-17-vintage-preliminary.zip +2021-05-20 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-05-20-vintage-preliminary.zip +2021-05-23 Vintage League (12 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-05-23-vintage-league.zip +2021-05-25 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-05-25-vintage-preliminary.zip +2021-05-26 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-05-26-vintage-challenge.zip +2021-05-27 Vintage Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-05-27-vintage-preliminary.zip +2021-05-29 Vintage Preliminary (7 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-05-29-vintage-preliminary.zip +2021-06-06 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-06-vintage-challenge.zip +2021-06-06 Vintage League (9 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-06-vintage-league.zip +2021-06-07 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-07-vintage-challenge.zip +2021-06-08 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-08-vintage-preliminary.zip +2021-06-10 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-10-vintage-preliminary.zip +2021-06-24 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-24-vintage-preliminary.zip +2021-06-26 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-26-vintage-preliminary.zip +2021-06-27 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-27-vintage-challenge.zip +2021-06-27 Vintage League (14 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-27-vintage-league.zip +2021-06-28 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-28-vintage-challenge.zip +2021-06-29 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-06-29-vintage-preliminary.zip +2021-07-01 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-01-vintage-preliminary.zip +2021-07-03 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-03-vintage-preliminary.zip +2021-07-04 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-04-vintage-challenge.zip +2021-07-04 Vintage League (12 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-04-vintage-league.zip +2021-07-05 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-05-vintage-challenge.zip +2021-07-06 Vintage Preliminary (4 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-06-vintage-preliminary.zip +2021-07-08 Vintage Preliminary (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-08-vintage-preliminary.zip +2021-07-10 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-10-vintage-preliminary.zip +2021-07-11 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-11-vintage-challenge.zip +2021-07-11 Vintage League (6 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-11-vintage-league.zip +2021-07-12 Vintage Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-12-vintage-challenge.zip +2021-07-13 Vintage Preliminary (3 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-13-vintage-preliminary.zip +2021-07-15 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-15-vintage-preliminary.zip +2021-07-17 Vintage Preliminary (5 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-17-vintage-preliminary.zip +2021-07-18 Vintage League (20 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-18-vintage-league.zip +2021-07-18 Vintage Showcase Challenge (32 decks) | https://downloads.cardforge.org/decks/archive/vintage/2021-07-18-vintage-showcase-challenge.zip diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index ac529dc34c8..55a5bf65037 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -1,22 +1,11 @@ package forge.deck; -import java.util.*; -import java.util.Map.Entry; -import org.apache.commons.lang3.StringUtils; - import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; - import forge.StaticData; -import forge.card.CardEdition; -import forge.card.CardRarity; -import forge.card.CardRules; -import forge.card.CardSplitType; -import forge.card.CardType; -import forge.card.ColorSet; -import forge.card.MagicColor; +import forge.card.*; import forge.card.mana.ManaCostShard; import forge.deck.io.DeckPreferences; import forge.game.GameFormat; @@ -32,6 +21,10 @@ import forge.model.FModel; import forge.util.BinaryUtil; import forge.util.IHasName; import forge.util.storage.IStorage; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; +import java.util.Map.Entry; // Adding a generic to this class creates compile problems in ItemManager (that I can not fix) public class DeckProxy implements InventoryItem { @@ -677,7 +670,15 @@ public class DeckProxy implements InventoryItem { return decks; } - public static List getNetArchiveBlockecks(final NetDeckArchiveBlock category) { + public static List getNetArchiveBlockDecks(final NetDeckArchiveBlock category) { + final List decks = new ArrayList<>(); + if (category != null) { + addDecksRecursivelly("Constructed", GameType.Constructed, decks, "", category, null); + } + return decks; + } + + public static List getNetArchivePauperDecks(final NetDeckArchivePauper category) { final List decks = new ArrayList<>(); if (category != null) { addDecksRecursivelly("Constructed", GameType.Constructed, decks, "", category, null); diff --git a/forge-gui/src/main/java/forge/deck/DeckType.java b/forge-gui/src/main/java/forge/deck/DeckType.java index 77e8ada131a..b5cdc1b40ee 100644 --- a/forge-gui/src/main/java/forge/deck/DeckType.java +++ b/forge-gui/src/main/java/forge/deck/DeckType.java @@ -37,7 +37,8 @@ public enum DeckType { NET_ARCHIVE_MODERN_DECK("lblNetArchiveModernDecks"), NET_ARCHIVE_LEGACY_DECK("lblNetArchiveLegacyDecks"), NET_ARCHIVE_VINTAGE_DECK("lblNetArchiveVintageDecks"), - NET_ARCHIVE_BLOCK_DECK("lblNetArchiveBlockDecks"); + NET_ARCHIVE_BLOCK_DECK("lblNetArchiveBlockDecks"), + NET_ARCHIVE_PAUPER_DECK("lblNetArchivePauperDecks"); public static DeckType[] ConstructedOptions; public static DeckType[] CommanderOptions; @@ -65,7 +66,8 @@ public enum DeckType { DeckType.NET_ARCHIVE_MODERN_DECK, DeckType.NET_ARCHIVE_LEGACY_DECK, DeckType.NET_ARCHIVE_VINTAGE_DECK, - DeckType.NET_ARCHIVE_BLOCK_DECK + DeckType.NET_ARCHIVE_BLOCK_DECK, + DeckType.NET_ARCHIVE_PAUPER_DECK }; } else { ConstructedOptions = new DeckType[]{ @@ -82,7 +84,9 @@ public enum DeckType { DeckType.NET_ARCHIVE_PIONEER_DECK, DeckType.NET_ARCHIVE_MODERN_DECK, DeckType.NET_ARCHIVE_LEGACY_DECK, - DeckType.NET_ARCHIVE_VINTAGE_DECK + DeckType.NET_ARCHIVE_VINTAGE_DECK, + DeckType.NET_ARCHIVE_BLOCK_DECK, + DeckType.NET_ARCHIVE_PAUPER_DECK }; } } diff --git a/forge-gui/src/main/java/forge/deck/NetDeckArchivePauper.java b/forge-gui/src/main/java/forge/deck/NetDeckArchivePauper.java new file mode 100644 index 00000000000..419096a69da --- /dev/null +++ b/forge-gui/src/main/java/forge/deck/NetDeckArchivePauper.java @@ -0,0 +1,122 @@ +package forge.deck; + +import forge.deck.io.DeckSerializer; +import forge.deck.io.DeckStorage; +import forge.game.GameType; +import forge.gui.GuiBase; +import forge.gui.download.GuiDownloadZipService; +import forge.gui.util.SGuiChoose; +import forge.localinstance.properties.ForgeConstants; +import forge.util.FileUtil; +import forge.util.WaitCallback; +import forge.util.storage.StorageBase; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; + +public class NetDeckArchivePauper extends StorageBase { + public static final String PREFIX = "NET_ARCHIVE_PAUPER_DECK"; + private static Map constructed, commander, brawl; + + private static Map loadCategories(String filename) { + Map categories = new TreeMap<>(); + if (FileUtil.doesFileExist(filename)) { + List lines = FileUtil.readFile(filename); + for (String line : lines) { + int idx = line.indexOf('|'); + if (idx != -1) { + String name = line.substring(0, idx).trim(); + String url = line.substring(idx + 1).trim(); + categories.put(name, new NetDeckArchivePauper(name, url)); + } + } + } + return categories; + } + + public static NetDeckArchivePauper selectAndLoad(GameType gameType) { + return selectAndLoad(gameType, null); + } + public static NetDeckArchivePauper selectAndLoad(GameType gameType, String name) { + Map categories; + switch (gameType) { + case Constructed: + case Gauntlet: + if (constructed == null) { + constructed = loadCategories(ForgeConstants.NET_ARCHIVE_PAUPER_DECKS_LIST_FILE); + } + categories = constructed; + break; + default: + return null; + } + + if (name != null) { + NetDeckArchivePauper category = categories.get(name); + if (category != null && category.map.isEmpty()) { + //if name passed in, try to load decks from current cached files + File downloadDir = new File(category.getFullPath()); + if (downloadDir.exists()) { + for (File file : downloadDir.listFiles(DeckStorage.DCK_FILE_FILTER)) { + Deck deck = DeckSerializer.fromFile(file); + if (deck != null) { + category.map.put(deck.getName(), deck); + } + } + } + } + return category; + } + + List category = new ArrayList<>(categories.values()); + Collections.reverse(category); + + final NetDeckArchivePauper c = SGuiChoose.oneOrNone("Select a Net Deck Archive Pauper category", category); + if (c == null) { return null; } + + if (c.map.isEmpty()) { //only download decks once per session + WaitCallback callback = new WaitCallback() { + @Override + public void run() { + String downloadLoc = c.getFullPath(); + GuiBase.getInterface().download(new GuiDownloadZipService(c.getName(), "decks", c.getUrl(), downloadLoc, downloadLoc, null) { + @Override + protected void copyInputStream(InputStream in, String outPath) throws IOException { + super.copyInputStream(in, outPath); + + Deck deck = DeckSerializer.fromFile(new File(outPath)); + if (deck != null) { + c.map.put(deck.getName(), deck); + } + } + }, this); + } + }; + if (!callback.invokeAndWait()) { return null; } //wait for download to finish + } + return c; + } + + private final String url; + + private NetDeckArchivePauper(String name0, String url0) { + super(name0, ForgeConstants.DECK_NET_ARCHIVE_DIR + name0, new HashMap<>()); + url = url0; + } + + + public String getUrl() { + return url; + } + + public String getDeckType() { + return "Net Archive Pauper Decks - " + name; + } + + @Override + public String toString() { + return name; + } +} diff --git a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java index 5c4a4784148..6cfed22348b 100644 --- a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java +++ b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java @@ -1,21 +1,19 @@ package forge.itemmanager; -import java.io.File; -import java.io.FileNotFoundException; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - import forge.itemmanager.ItemColumnConfig.SortState; import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; import forge.util.XmlUtil; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.Map; /** * Preferences associated with individual cards @@ -112,6 +110,8 @@ public enum ItemManagerConfig { null, null, 3, 0), NET_ARCHIVE_BLOCK_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, null, null, 3, 0), + NET_ARCHIVE_PAUPER_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, + null, null, 3, 0), SIDEBOARD(SColumnUtil.getDeckEditorDefaultColumns(), false, false, true, GroupDef.DEFAULT, ColumnDef.CMC, 3, 0); diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java index 1781cf91081..68410a188e0 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java @@ -17,13 +17,13 @@ */ package forge.localinstance.properties; +import forge.gui.GuiBase; +import forge.util.FileUtil; + import java.io.File; import java.util.Collections; import java.util.Map; -import forge.gui.GuiBase; -import forge.util.FileUtil; - public final class ForgeConstants { public static final String PATH_SEPARATOR = File.separator; public static final String ASSETS_DIR = GuiBase.getInterface().getAssetsDir(); @@ -59,6 +59,7 @@ public final class ForgeConstants { public static final String NET_ARCHIVE_LEGACY_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-legacy.txt"; public static final String NET_ARCHIVE_VINTAGE_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-vintage.txt"; public static final String NET_ARCHIVE_BLOCK_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-block.txt"; + public static final String NET_ARCHIVE_PAUPER_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-pauper.txt"; public static final String CHANGES_FILE = ASSETS_DIR + "README.txt"; From 512bf18381ece4281136eeb73b726146c17c6ee2 Mon Sep 17 00:00:00 2001 From: paul_snoops Date: Wed, 21 Jul 2021 14:46:31 +0100 Subject: [PATCH 2/3] Net Deck Archive Pauper (Desktop & Android) --- .../java/forge/deckchooser/FDeckChooser.java | 35 ++++++++++++++----- .../src/forge/deck/FDeckChooser.java | 22 +++++++++--- .../src/main/java/forge/deck/DeckProxy.java | 17 ++++++--- .../forge/itemmanager/ItemManagerConfig.java | 20 ++++++----- .../properties/ForgeConstants.java | 6 ++-- 5 files changed, 71 insertions(+), 29 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java index 43df1dc83ff..9aae27b1a36 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -1,8 +1,34 @@ package forge.deckchooser; +import java.awt.Dimension; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import javax.swing.JOptionPane; +import javax.swing.JPanel; + +import org.apache.commons.lang3.StringUtils; + import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; -import forge.deck.*; + +import forge.deck.ArchetypeDeckGenerator; +import forge.deck.ColorDeckGenerator; +import forge.deck.CommanderDeckGenerator; +import forge.deck.Deck; +import forge.deck.DeckFormat; +import forge.deck.DeckProxy; +import forge.deck.DeckType; +import forge.deck.DeckgenUtil; +import forge.deck.NetDeckArchiveBlock; +import forge.deck.NetDeckArchiveLegacy; +import forge.deck.NetDeckArchiveModern; +import forge.deck.NetDeckArchivePioneer; +import forge.deck.NetDeckArchiveStandard; +import forge.deck.NetDeckArchiveVintage; +import forge.deck.NetDeckCategory; +import forge.deck.RandomDeckGenerator; import forge.game.GameFormat; import forge.game.GameType; import forge.game.player.RegisteredPlayer; @@ -24,13 +50,6 @@ import forge.toolbox.FLabel; import forge.toolbox.FOptionPane; import forge.util.Localizer; import net.miginfocom.swing.MigLayout; -import org.apache.commons.lang3.StringUtils; - -import javax.swing.*; -import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; @SuppressWarnings("serial") public class FDeckChooser extends JPanel implements IDecksComboBoxListener { diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 6e4ad10d596..9603beafdb8 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -1,7 +1,18 @@ package forge.deck; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; + import com.badlogic.gdx.utils.Align; import com.google.common.collect.ImmutableList; + import forge.Forge; import forge.assets.ImageCache; import forge.deck.FDeckEditor.EditorType; @@ -30,15 +41,18 @@ import forge.screens.FScreen; import forge.screens.LoadingOverlay; import forge.screens.home.NewGameMenu.NewGameScreen; import forge.screens.match.MatchController; -import forge.toolbox.*; +import forge.toolbox.FButton; +import forge.toolbox.FComboBox; +import forge.toolbox.FContainer; +import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; +import forge.toolbox.FOptionPane; +import forge.toolbox.GuiChoose; +import forge.toolbox.ListChooser; import forge.util.Callback; import forge.util.Localizer; import forge.util.Utils; import forge.util.storage.IStorage; -import org.apache.commons.lang3.StringUtils; - -import java.util.*; public class FDeckChooser extends FScreen { public static final float PADDING = Utils.scale(5); diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index 55a5bf65037..b4eb4e2e109 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -1,11 +1,22 @@ package forge.deck; +import java.util.*; +import java.util.Map.Entry; +import org.apache.commons.lang3.StringUtils; + import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; + import forge.StaticData; -import forge.card.*; +import forge.card.CardEdition; +import forge.card.CardRarity; +import forge.card.CardRules; +import forge.card.CardSplitType; +import forge.card.CardType; +import forge.card.ColorSet; +import forge.card.MagicColor; import forge.card.mana.ManaCostShard; import forge.deck.io.DeckPreferences; import forge.game.GameFormat; @@ -21,10 +32,6 @@ import forge.model.FModel; import forge.util.BinaryUtil; import forge.util.IHasName; import forge.util.storage.IStorage; -import org.apache.commons.lang3.StringUtils; - -import java.util.*; -import java.util.Map.Entry; // Adding a generic to this class creates compile problems in ItemManager (that I can not fix) public class DeckProxy implements InventoryItem { diff --git a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java index 6cfed22348b..6b296f72ca1 100644 --- a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java +++ b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java @@ -1,19 +1,21 @@ package forge.itemmanager; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + import forge.itemmanager.ItemColumnConfig.SortState; import forge.localinstance.properties.ForgeConstants; import forge.localinstance.properties.ForgePreferences.FPref; import forge.model.FModel; import forge.util.XmlUtil; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import java.io.File; -import java.io.FileNotFoundException; -import java.util.Map; /** * Preferences associated with individual cards diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java index 68410a188e0..ddb3bffae67 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java @@ -17,13 +17,13 @@ */ package forge.localinstance.properties; -import forge.gui.GuiBase; -import forge.util.FileUtil; - import java.io.File; import java.util.Collections; import java.util.Map; +import forge.gui.GuiBase; +import forge.util.FileUtil; + public final class ForgeConstants { public static final String PATH_SEPARATOR = File.separator; public static final String ASSETS_DIR = GuiBase.getInterface().getAssetsDir(); From e64655280c534deeb3fccd803a6f60452140fa4e Mon Sep 17 00:00:00 2001 From: paul_snoops Date: Wed, 21 Jul 2021 15:19:46 +0100 Subject: [PATCH 3/3] Net Deck Archive Pauper (Desktop & Android) --- .../java/forge/deckchooser/FDeckChooser.java | 91 +++++++++---------- .../src/forge/deck/FDeckChooser.java | 90 +++++++++--------- .../src/main/java/forge/deck/DeckProxy.java | 16 ++-- .../src/main/java/forge/deck/DeckType.java | 12 +-- .../forge/itemmanager/ItemManagerConfig.java | 4 +- .../properties/ForgeConstants.java | 2 +- 6 files changed, 104 insertions(+), 111 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java index 9aae27b1a36..57a8e908b03 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -21,6 +21,7 @@ import forge.deck.DeckFormat; import forge.deck.DeckProxy; import forge.deck.DeckType; import forge.deck.DeckgenUtil; +import forge.deck.NetDeckArchivePauper; import forge.deck.NetDeckArchiveBlock; import forge.deck.NetDeckArchiveLegacy; import forge.deck.NetDeckArchiveModern; @@ -60,10 +61,10 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { private NetDeckArchiveStandard NetDeckArchiveStandard; private NetDeckArchivePioneer NetDeckArchivePioneer; private NetDeckArchiveModern NetDeckArchiveModern; + private NetDeckArchivePauper NetDeckArchivePauper; private NetDeckArchiveLegacy NetDeckArchiveLegacy; private NetDeckArchiveVintage NetDeckArchiveVintage; private NetDeckArchiveBlock NetDeckArchiveBlock; - private NetDeckArchivePauper NetDeckArchivePauper; private boolean refreshingDeckType; private boolean isForCommander; @@ -298,6 +299,13 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { updateDecks(DeckProxy.getNetArchiveModernDecks(NetDeckArchiveModern), ItemManagerConfig.NET_DECKS); } + private void updateNetArchivePauperDecks() { + if (NetDeckArchivePauper != null) { + decksComboBox.setText(NetDeckArchivePauper.getDeckType()); + } + updateDecks(DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper), ItemManagerConfig.NET_DECKS); + } + private void updateNetArchivePioneerDecks() { if (NetDeckArchivePioneer != null) { decksComboBox.setText(NetDeckArchivePioneer.getDeckType()); @@ -326,12 +334,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { updateDecks(DeckProxy.getNetArchiveBlockDecks(NetDeckArchiveBlock), ItemManagerConfig.NET_DECKS); } - private void updateNetArchivePauperDecks() { - if (NetDeckArchivePauper != null) { - decksComboBox.setText(NetDeckArchivePauper.getDeckType()); - } - updateDecks(DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper), ItemManagerConfig.NET_DECKS); - } public Deck getDeck() { final DeckProxy proxy = lstDecks.getSelectedItem(); if (proxy == null) { @@ -467,6 +469,32 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { }); return; + } else if (ev.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK&& !refreshingDeckType) { + if(lstDecks.getGameType() != GameType.Constructed) + return; + FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks + @Override + public void run() { + final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType()); + FThreads.invokeInEdtLater(new Runnable() { + @Override + public void run() { + if (category == null) { + decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels + if (selectedDeckType == DeckType.NET_ARCHIVE_PAUPER_DECK && NetDeckArchivePauper != null) { + decksComboBox.setText(NetDeckArchivePauper.getDeckType()); + } + return; + } + + NetDeckArchivePauper = category; + refreshDecksList(ev.getDeckType(), true, ev); + } + }); + } + }); + return; + } else if (ev.getDeckType() == DeckType.NET_ARCHIVE_LEGACY_DECK&& !refreshingDeckType) { if(lstDecks.getGameType() != GameType.Constructed) return; @@ -519,7 +547,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { }); return; - } else if (ev.getDeckType() == DeckType.NET_ARCHIVE_BLOCK_DECK&& !refreshingDeckType) { if(lstDecks.getGameType() != GameType.Constructed) return; @@ -546,34 +573,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { }); return; - - } else if (ev.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK&& !refreshingDeckType) { - if(lstDecks.getGameType() != GameType.Constructed) - return; - FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks - @Override - public void run() { - final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType()); - FThreads.invokeInEdtLater(new Runnable() { - @Override - public void run() { - if (category == null) { - decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels - if (selectedDeckType == DeckType.NET_ARCHIVE_PAUPER_DECK && NetDeckArchivePauper != null) { - decksComboBox.setText(NetDeckArchivePauper.getDeckType()); - } - return; - } - - NetDeckArchivePauper = category; - refreshDecksList(ev.getDeckType(), true, ev); - } - }); - } - }); - return; - - } else if ((ev.getDeckType() == DeckType.NET_DECK || ev.getDeckType() == DeckType.NET_COMMANDER_DECK) && !refreshingDeckType) { FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks @Override @@ -703,6 +702,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { case NET_ARCHIVE_MODERN_DECK: updateNetArchiveModernDecks(); break; + case NET_ARCHIVE_PAUPER_DECK: + updateNetArchivePauperDecks(); + break; case NET_ARCHIVE_PIONEER_DECK: updateNetArchivePioneerDecks(); break; @@ -715,9 +717,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { case NET_ARCHIVE_BLOCK_DECK: updateNetArchiveBlockDecks(); break; - case NET_ARCHIVE_PAUPER_DECK: - updateNetArchivePauperDecks(); - break; default: break; //other deck types not currently supported here } @@ -745,6 +744,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_MODERN_DECK) { if (NetDeckArchiveModern == null) { return ""; } state.append(NetDeckArchiveModern.PREFIX).append(NetDeckArchiveModern.getName()); + } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK) { + if (NetDeckArchivePauper == null) { return ""; } + state.append(NetDeckArchivePauper.PREFIX).append(NetDeckArchivePauper.getName()); } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_LEGACY_DECK) { if (NetDeckArchiveLegacy == null) { return ""; } state.append(NetDeckArchiveLegacy.PREFIX).append(NetDeckArchiveLegacy.getName()); @@ -754,9 +756,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_BLOCK_DECK) { if (NetDeckArchiveBlock == null) { return ""; } state.append(NetDeckArchiveBlock.PREFIX).append(NetDeckArchiveBlock.getName()); - } else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK) { - if (NetDeckArchivePauper == null) { return ""; } - state.append(NetDeckArchivePauper.PREFIX).append(NetDeckArchivePauper.getName()); } else if (decksComboBox.getDeckType() == null || decksComboBox.getDeckType() == DeckType.NET_DECK) { //handle special case of net decks if (netDeckCategory == null) { return ""; } @@ -827,6 +826,10 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { NetDeckArchiveModern = NetDeckArchiveModern.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveModern.PREFIX.length())); return DeckType.NET_ARCHIVE_MODERN_DECK; } + if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) { + NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length())); + return DeckType.NET_ARCHIVE_PAUPER_DECK; + } if (deckType.startsWith(NetDeckArchiveLegacy.PREFIX)) { NetDeckArchiveLegacy = NetDeckArchiveLegacy.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveLegacy.PREFIX.length())); return DeckType.NET_ARCHIVE_LEGACY_DECK; @@ -839,10 +842,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { NetDeckArchiveBlock = NetDeckArchiveBlock.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveBlock.PREFIX.length())); return DeckType.NET_ARCHIVE_BLOCK_DECK; } - if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) { - NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length())); - return DeckType.NET_ARCHIVE_PAUPER_DECK; - } return DeckType.valueOf(deckType); } } catch (final IllegalArgumentException ex) { diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 9603beafdb8..d79d4bc7cbd 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -65,10 +65,10 @@ public class FDeckChooser extends FScreen { private NetDeckArchiveStandard NetDeckArchiveStandard; private NetDeckArchivePioneer NetDeckArchivePioneer; private NetDeckArchiveModern NetDeckArchiveModern; + private NetDeckArchivePauper NetDeckArchivePauper; private NetDeckArchiveLegacy NetDeckArchiveLegacy; private NetDeckArchiveVintage NetDeckArchiveVintage; private NetDeckArchiveBlock NetDeckArchiveBlock; - private NetDeckArchivePauper NetDeckArchivePauper; private boolean refreshingDeckType; private boolean firstActivation = true; @@ -543,10 +543,10 @@ public class FDeckChooser extends FScreen { cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_STANDARD_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PIONEER_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_MODERN_DECK); + cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_LEGACY_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_VINTAGE_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_BLOCK_DECK); - cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK); break; case Commander: @@ -580,10 +580,10 @@ public class FDeckChooser extends FScreen { cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_STANDARD_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PIONEER_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_MODERN_DECK); + cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_LEGACY_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_VINTAGE_DECK); cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_BLOCK_DECK); - cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK); break; default: cmbDeckTypes.addItem(DeckType.CUSTOM_DECK); @@ -706,6 +706,32 @@ public class FDeckChooser extends FScreen { }); return; } + if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_PAUPER_DECK)) { + FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks + @Override + public void run() { + GameType gameType = lstDecks.getGameType(); + final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(gameType); + + FThreads.invokeInEdtLater(new Runnable() { + @Override + public void run() { + if (category == null) { + cmbDeckTypes.setSelectedItem(selectedDeckType); //restore old selection if user cancels + if (selectedDeckType == deckType && NetDeckArchivePauper != null) { + cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType()); + } + return; + } + + NetDeckArchivePauper = category; + refreshDecksList(deckType, true, e); + } + }); + } + }); + return; + } if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_LEGACY_DECK)) { FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks @Override @@ -758,9 +784,6 @@ public class FDeckChooser extends FScreen { }); return; } - - - if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_BLOCK_DECK)) { FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks @Override @@ -790,35 +813,6 @@ public class FDeckChooser extends FScreen { - if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_PAUPER_DECK)) { - FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks - @Override - public void run() { - GameType gameType = lstDecks.getGameType(); - final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(gameType); - - FThreads.invokeInEdtLater(new Runnable() { - @Override - public void run() { - if (category == null) { - cmbDeckTypes.setSelectedItem(selectedDeckType); //restore old selection if user cancels - if (selectedDeckType == deckType && NetDeckArchivePauper != null) { - cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType()); - } - return; - } - - NetDeckArchivePauper = category; - refreshDecksList(deckType, true, e); - } - }); - } - }); - return; - } - - - refreshDecksList(deckType, false, e); } }); @@ -1041,6 +1035,13 @@ public class FDeckChooser extends FScreen { pool = DeckProxy.getNetArchiveModernDecks(NetDeckArchiveModern); config = ItemManagerConfig.NET_ARCHIVE_MODERN_DECKS; break; + case NET_ARCHIVE_PAUPER_DECK: + if (NetDeckArchivePauper!= null) { + cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType()); + } + pool = DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper); + config = ItemManagerConfig.NET_ARCHIVE_PAUPER_DECKS; + break; case NET_ARCHIVE_LEGACY_DECK: if (NetDeckArchiveLegacy != null) { cmbDeckTypes.setText(NetDeckArchiveLegacy.getDeckType()); @@ -1062,13 +1063,6 @@ public class FDeckChooser extends FScreen { pool = DeckProxy.getNetArchiveBlockDecks(NetDeckArchiveBlock); config = ItemManagerConfig.NET_ARCHIVE_BLOCK_DECKS; break; - case NET_ARCHIVE_PAUPER_DECK: - if (NetDeckArchivePauper!= null) { - cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType()); - } - pool = DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper); - config = ItemManagerConfig.NET_ARCHIVE_PAUPER_DECKS; - break; case NET_DECK: case NET_COMMANDER_DECK: if (netDeckCategory != null) { @@ -1344,6 +1338,10 @@ public class FDeckChooser extends FScreen { NetDeckArchiveModern = NetDeckArchiveModern.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveModern.PREFIX.length())); return DeckType.NET_ARCHIVE_MODERN_DECK; } + if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) { + NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length())); + return DeckType.NET_ARCHIVE_PAUPER_DECK; + } if (deckType.startsWith(NetDeckArchiveLegacy.PREFIX)) { NetDeckArchiveLegacy = NetDeckArchiveLegacy.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveLegacy.PREFIX.length())); return DeckType.NET_ARCHIVE_LEGACY_DECK; @@ -1356,10 +1354,6 @@ public class FDeckChooser extends FScreen { NetDeckArchiveBlock = NetDeckArchiveBlock.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveBlock.PREFIX.length())); return DeckType.NET_ARCHIVE_BLOCK_DECK; } - if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) { - NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length())); - return DeckType.NET_ARCHIVE_PAUPER_DECK; - } return DeckType.valueOf(deckType); } } @@ -1441,10 +1435,10 @@ public class FDeckChooser extends FScreen { DeckType.NET_ARCHIVE_STANDARD_DECK, DeckType.NET_ARCHIVE_PIONEER_DECK, DeckType.NET_ARCHIVE_MODERN_DECK, + DeckType.NET_ARCHIVE_PAUPER_DECK, DeckType.NET_ARCHIVE_VINTAGE_DECK, DeckType.NET_ARCHIVE_LEGACY_DECK, - DeckType.NET_ARCHIVE_BLOCK_DECK, - DeckType.NET_ARCHIVE_PAUPER_DECK + DeckType.NET_ARCHIVE_BLOCK_DECK ); if (!FModel.isdeckGenMatrixLoaded()) { diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index b4eb4e2e109..233570fed06 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -661,6 +661,14 @@ public class DeckProxy implements InventoryItem { return decks; } + public static List getNetArchivePauperDecks(final NetDeckArchivePauper category) { + final List decks = new ArrayList<>(); + if (category != null) { + addDecksRecursivelly("Constructed", GameType.Constructed, decks, "", category, null); + } + return decks; + } + public static List getNetArchiveLegacyDecks(final NetDeckArchiveLegacy category) { final List decks = new ArrayList<>(); if (category != null) { @@ -685,14 +693,6 @@ public class DeckProxy implements InventoryItem { return decks; } - public static List getNetArchivePauperDecks(final NetDeckArchivePauper category) { - final List decks = new ArrayList<>(); - if (category != null) { - addDecksRecursivelly("Constructed", GameType.Constructed, decks, "", category, null); - } - return decks; - } - public static CardEdition getDefaultLandSet(Deck deck) { List availableEditions = new ArrayList<>(); diff --git a/forge-gui/src/main/java/forge/deck/DeckType.java b/forge-gui/src/main/java/forge/deck/DeckType.java index b5cdc1b40ee..f236baccc8b 100644 --- a/forge-gui/src/main/java/forge/deck/DeckType.java +++ b/forge-gui/src/main/java/forge/deck/DeckType.java @@ -35,10 +35,10 @@ public enum DeckType { NET_ARCHIVE_STANDARD_DECK("lblNetArchiveStandardDecks"), NET_ARCHIVE_PIONEER_DECK("lblNetArchivePioneerDecks"), NET_ARCHIVE_MODERN_DECK("lblNetArchiveModernDecks"), + NET_ARCHIVE_PAUPER_DECK("lblNetArchivePauperDecks"), NET_ARCHIVE_LEGACY_DECK("lblNetArchiveLegacyDecks"), NET_ARCHIVE_VINTAGE_DECK("lblNetArchiveVintageDecks"), - NET_ARCHIVE_BLOCK_DECK("lblNetArchiveBlockDecks"), - NET_ARCHIVE_PAUPER_DECK("lblNetArchivePauperDecks"); + NET_ARCHIVE_BLOCK_DECK("lblNetArchiveBlockDecks"); public static DeckType[] ConstructedOptions; public static DeckType[] CommanderOptions; @@ -64,10 +64,10 @@ public enum DeckType { DeckType.NET_ARCHIVE_STANDARD_DECK, DeckType.NET_ARCHIVE_PIONEER_DECK, DeckType.NET_ARCHIVE_MODERN_DECK, + DeckType.NET_ARCHIVE_PAUPER_DECK, DeckType.NET_ARCHIVE_LEGACY_DECK, DeckType.NET_ARCHIVE_VINTAGE_DECK, - DeckType.NET_ARCHIVE_BLOCK_DECK, - DeckType.NET_ARCHIVE_PAUPER_DECK + DeckType.NET_ARCHIVE_BLOCK_DECK }; } else { ConstructedOptions = new DeckType[]{ @@ -83,10 +83,10 @@ public enum DeckType { DeckType.NET_ARCHIVE_STANDARD_DECK, DeckType.NET_ARCHIVE_PIONEER_DECK, DeckType.NET_ARCHIVE_MODERN_DECK, + DeckType.NET_ARCHIVE_PAUPER_DECK, DeckType.NET_ARCHIVE_LEGACY_DECK, DeckType.NET_ARCHIVE_VINTAGE_DECK, - DeckType.NET_ARCHIVE_BLOCK_DECK, - DeckType.NET_ARCHIVE_PAUPER_DECK + DeckType.NET_ARCHIVE_BLOCK_DECK }; } } diff --git a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java index 6b296f72ca1..16436493717 100644 --- a/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java +++ b/forge-gui/src/main/java/forge/itemmanager/ItemManagerConfig.java @@ -106,14 +106,14 @@ public enum ItemManagerConfig { null, null, 3, 0), NET_ARCHIVE_MODERN_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, null, null, 3, 0), + NET_ARCHIVE_PAUPER_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, + null, null, 3, 0), NET_ARCHIVE_LEGACY_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, null, null, 3, 0), NET_ARCHIVE_VINTAGE_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, null, null, 3, 0), NET_ARCHIVE_BLOCK_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, null, null, 3, 0), - NET_ARCHIVE_PAUPER_DECKS(SColumnUtil.getDecksDefaultColumns(false, false), false, false, false, - null, null, 3, 0), SIDEBOARD(SColumnUtil.getDeckEditorDefaultColumns(), false, false, true, GroupDef.DEFAULT, ColumnDef.CMC, 3, 0); diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java index ddb3bffae67..1d132e63076 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java @@ -56,10 +56,10 @@ public final class ForgeConstants { public static final String NET_ARCHIVE_STANDARD_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-standard.txt"; public static final String NET_ARCHIVE_PIONEER_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-pioneer.txt"; public static final String NET_ARCHIVE_MODERN_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-modern.txt"; + public static final String NET_ARCHIVE_PAUPER_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-pauper.txt"; public static final String NET_ARCHIVE_LEGACY_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-legacy.txt"; public static final String NET_ARCHIVE_VINTAGE_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-vintage.txt"; public static final String NET_ARCHIVE_BLOCK_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-block.txt"; - public static final String NET_ARCHIVE_PAUPER_DECKS_LIST_FILE = LISTS_DIR + "net-decks-archive-pauper.txt"; public static final String CHANGES_FILE = ASSETS_DIR + "README.txt";