forked from SteamWar/SteamWar
Add cache for GameModeConfig
This commit is contained in:
@@ -34,6 +34,16 @@ import java.util.stream.Collectors;
|
|||||||
@ToString
|
@ToString
|
||||||
public final class GameModeConfig<M, W> {
|
public final class GameModeConfig<M, W> {
|
||||||
|
|
||||||
|
public static final Function<String, String> ToString = Function.identity();
|
||||||
|
public static final Function<File, String> ToStaticWarGear = __ -> "WarGear";
|
||||||
|
public static final Function<File, String> ToInternalName = file -> file.getName().replace(".yml", "");
|
||||||
|
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm");
|
||||||
|
private static final Random random = new Random();
|
||||||
|
|
||||||
|
static {
|
||||||
|
SchematicType.values();
|
||||||
|
}
|
||||||
|
|
||||||
private static final Map<String, GameModeConfig<?, String>> byFileName = new HashMap<>();
|
private static final Map<String, GameModeConfig<?, String>> byFileName = new HashMap<>();
|
||||||
private static final Map<String, GameModeConfig<?, String>> byGameName = new HashMap<>();
|
private static final Map<String, GameModeConfig<?, String>> byGameName = new HashMap<>();
|
||||||
private static final Map<SchematicType, GameModeConfig<?, String>> bySchematicType = new HashMap<>();
|
private static final Map<SchematicType, GameModeConfig<?, String>> bySchematicType = new HashMap<>();
|
||||||
@@ -56,12 +66,6 @@ public final class GameModeConfig<M, W> {
|
|||||||
return (GameModeConfig<M, String>) DEFAULTS;
|
return (GameModeConfig<M, String>) DEFAULTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Function<String, String> ToString = Function.identity();
|
|
||||||
public static final Function<File, String> ToStaticWarGear = __ -> "WarGear";
|
|
||||||
public static final Function<File, String> ToInternalName = file -> file.getName().replace(".yml", "");
|
|
||||||
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm");
|
|
||||||
private static final Random random = new Random();
|
|
||||||
|
|
||||||
public final boolean loaded;
|
public final boolean loaded;
|
||||||
public final File configFile;
|
public final File configFile;
|
||||||
|
|
||||||
@@ -205,7 +209,9 @@ public final class GameModeConfig<M, W> {
|
|||||||
Arena = new ArenaConfig(loader.with("Arena"), Schematic.Size, EnterStages);
|
Arena = new ArenaConfig(loader.with("Arena"), Schematic.Size, EnterStages);
|
||||||
|
|
||||||
if (cacheInstance) {
|
if (cacheInstance) {
|
||||||
byFileName.put(configFile.getName(), (GameModeConfig) this);
|
if (configFile != null) {
|
||||||
|
byFileName.put(configFile.getName(), (GameModeConfig) this);
|
||||||
|
}
|
||||||
byGameName.put(GameName, (GameModeConfig) this);
|
byGameName.put(GameName, (GameModeConfig) this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user