diff options
| author | BuildTools <james.jenour@protonmail.com> | 2021-06-04 01:18:28 +0800 |
|---|---|---|
| committer | BuildTools <james.jenour@protonmail.com> | 2021-06-04 01:18:28 +0800 |
| commit | a1fa5a67caebf754a0fcc43168672823ede0db93 (patch) | |
| tree | c0d7d78dfffaa659835a59952cac6edd2592be87 /src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java | |
| parent | 1b172089ce502803f7644611afd618ce00dcb860 (diff) | |
| download | notenoughupdates-a1fa5a67caebf754a0fcc43168672823ede0db93.tar.gz notenoughupdates-a1fa5a67caebf754a0fcc43168672823ede0db93.tar.bz2 notenoughupdates-a1fa5a67caebf754a0fcc43168672823ede0db93.zip | |
merge is pain
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(); + } } } |
