aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java55
1 files changed, 40 insertions, 15 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java
index 485ca19c..f095fc64 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java
@@ -1,9 +1,28 @@
package io.github.moulberry.notenoughupdates.util;
-import com.google.gson.JsonObject;
+import com.google.gson.*;
+import io.github.moulberry.notenoughupdates.collectionlog.CollectionConstant;
+
+import java.lang.reflect.Type;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.regex.Pattern;
public class Constants {
+ private static class PatternSerializer implements JsonDeserializer<Pattern>, JsonSerializer<Pattern> {
+ @Override
+ public Pattern deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ return Pattern.compile(json.getAsString());
+ }
+ @Override
+ public JsonElement serialize(Pattern src, Type typeOfSrc, JsonSerializationContext context) {
+ return new JsonPrimitive(src.pattern());
+ }
+ }
+
+ private static final Gson gson = new GsonBuilder().setPrettyPrinting()
+ .registerTypeAdapter(Pattern.class, new PatternSerializer()).create();
+
public static JsonObject BONUSES;
public static JsonObject DISABLE;
public static JsonObject ENCHANTS;
@@ -15,23 +34,29 @@ public class Constants {
public static JsonObject ESSENCECOSTS;
public static JsonObject FAIRYSOULS;
public static JsonObject REFORGESTONES;
+ public static CollectionConstant COLLECTIONLOG;
+
+ private static final ReentrantLock lock = new ReentrantLock();
public static void reload() {
- BONUSES = Utils.getConstant("bonuses");
- DISABLE = Utils.getConstant("disable");
- ENCHANTS = Utils.getConstant("enchants");
- LEVELING = Utils.getConstant("leveling");
- MISC = Utils.getConstant("misc");
- PETNUMS = Utils.getConstant("petnums");
- PETS = Utils.getConstant("pets");
- PARENTS = Utils.getConstant("parents");
- ESSENCECOSTS = Utils.getConstant("essencecosts");
- FAIRYSOULS = Utils.getConstant("fairy_souls");
- REFORGESTONES = Utils.getConstant("reforgestones");
- }
+ try {
+ lock.lock();
- static {
- reload();
+ BONUSES = Utils.getConstant("bonuses", gson);
+ DISABLE = Utils.getConstant("disable", gson);
+ ENCHANTS = Utils.getConstant("enchants", gson);
+ LEVELING = Utils.getConstant("leveling", gson);
+ MISC = Utils.getConstant("misc", gson);
+ PETNUMS = Utils.getConstant("petnums", gson);
+ PETS = Utils.getConstant("pets", gson);
+ PARENTS = Utils.getConstant("parents", gson);
+ ESSENCECOSTS = Utils.getConstant("essencecosts", gson);
+ FAIRYSOULS = Utils.getConstant("fairy_souls", gson);
+ REFORGESTONES = Utils.getConstant("reforgestones", gson);
+ //COLLECTIONLOG = Utils.getConstant("collectionlog", gson, CollectionConstant.class);
+ } finally {
+ lock.unlock();
+ }
}
}