All the NetDeckXX classes now traverse their corresponding download dir recursively to look for deck files to load.
So far, from what I can tell, this is only necessary to correctly (re)load Net Decks >> Pro Tour.

However, this opens up the possibility to enable Net Decks to be organised in subfolders that will still be loaded back into Forge.
This commit is contained in:
leriomaggio
2021-08-11 08:08:51 +01:00
parent 8f99123059
commit e71a44e76e
8 changed files with 41 additions and 76 deletions

View File

@@ -1,15 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -21,6 +11,11 @@ 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 NetDeckArchiveBlock extends StorageBase<Deck> {
public static final String PREFIX = "NET_ARCHIVE_BLOCK_DECK";
private static Map<String, NetDeckArchiveBlock> constructed, commander, brawl;
@@ -64,7 +59,7 @@ public class NetDeckArchiveBlock extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -1,15 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -21,6 +11,11 @@ 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 NetDeckArchiveLegacy extends StorageBase<Deck> {
public static final String PREFIX = "NET_ARCHIVE_LEGACY_DECK";
private static Map<String, NetDeckArchiveLegacy> constructed, commander, brawl;
@@ -64,7 +59,7 @@ public class NetDeckArchiveLegacy extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -1,15 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -21,6 +11,11 @@ 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 NetDeckArchiveModern extends StorageBase<Deck> {
public static final String PREFIX = "NET_ARCHIVE_MODERN_DECK";
private static Map<String, NetDeckArchiveModern> constructed, commander, brawl;
@@ -64,7 +59,7 @@ public class NetDeckArchiveModern extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -59,7 +59,7 @@ public class NetDeckArchivePauper extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -1,15 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -21,6 +11,11 @@ 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 NetDeckArchivePioneer extends StorageBase<Deck> {
public static final String PREFIX = "NET_ARCHIVE_PIONEER_DECK";
private static Map<String, NetDeckArchivePioneer> constructed, commander, brawl;
@@ -64,7 +59,7 @@ public class NetDeckArchivePioneer extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -1,15 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -21,6 +11,11 @@ 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 NetDeckArchiveStandard extends StorageBase<Deck> {
public static final String PREFIX = "NET_ARCHIVE_STANDARD_DECK";
private static Map<String, NetDeckArchiveStandard> constructed, commander, brawl;
@@ -64,7 +59,7 @@ public class NetDeckArchiveStandard extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -1,15 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -21,6 +11,11 @@ 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 NetDeckArchiveVintage extends StorageBase<Deck> {
public static final String PREFIX = "NET_ARCHIVE_VINTAGE_DECK";
private static Map<String, NetDeckArchiveVintage> constructed, commander, brawl;
@@ -64,7 +59,7 @@ public class NetDeckArchiveVintage extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);

View File

@@ -1,13 +1,5 @@
package forge.deck;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
import forge.game.GameType;
@@ -19,6 +11,9 @@ import forge.util.FileUtil;
import forge.util.WaitCallback;
import forge.util.storage.StorageBase;
import java.io.*;
import java.util.*;
public class NetDeckCategory extends StorageBase<Deck> {
public static final String PREFIX = "NET_DECK_";
private static Map<String, NetDeckCategory> constructed, commander, brawl, oathbreaker, tinyleaders;
@@ -86,7 +81,7 @@ public class NetDeckCategory extends StorageBase<Deck> {
//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)) {
for (File file : getAllFilesList(downloadDir, DeckStorage.DCK_FILE_FILTER)) {
Deck deck = DeckSerializer.fromFile(file);
if (deck != null) {
category.map.put(deck.getName(), deck);