diff options
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.java | 55 |
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(); + } } } |
