diff options
author | kuba6000 <kuba.123123.6000@gmail.com> | 2022-08-23 00:18:07 +0200 |
---|---|---|
committer | kuba6000 <kuba.123123.6000@gmail.com> | 2022-08-23 00:18:07 +0200 |
commit | b89c1fbff7d44ddca4101a191b5ed554a890b7d4 (patch) | |
tree | 3c667863749bd5d9be38c830b19f6b3fff78be63 /src/main/java/kubatech/api/utils | |
parent | cf53d79d84bc5c4ebe5dab856f7cb94f7bd43820 (diff) | |
parent | 5d1286092eac1545f819babbee27244504a212f0 (diff) | |
download | GT5-Unofficial-b89c1fbff7d44ddca4101a191b5ed554a890b7d4.tar.gz GT5-Unofficial-b89c1fbff7d44ddca4101a191b5ed554a890b7d4.tar.bz2 GT5-Unofficial-b89c1fbff7d44ddca4101a191b5ed554a890b7d4.zip |
Merge branch 'master' into buf
Diffstat (limited to 'src/main/java/kubatech/api/utils')
-rw-r--r-- | src/main/java/kubatech/api/utils/GSONUtils.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/main/java/kubatech/api/utils/GSONUtils.java b/src/main/java/kubatech/api/utils/GSONUtils.java index 1c0e7ec3f4..90f777000c 100644 --- a/src/main/java/kubatech/api/utils/GSONUtils.java +++ b/src/main/java/kubatech/api/utils/GSONUtils.java @@ -1,12 +1,16 @@ package kubatech.api.utils; import com.google.gson.*; +import java.io.File; import java.io.IOException; +import java.io.Reader; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.reflect.Type; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTSizeTracker; import net.minecraft.nbt.NBTTagCompound; @@ -66,5 +70,32 @@ public class GSONUtils { .addSerializationExclusionStrategy(GSONStrategy) .addDeserializationExclusionStrategy(GSONStrategy) .registerTypeAdapter(NBTTagCompound.class, NBTTagCompoundDeserializer) - .registerTypeAdapter(NBTTagCompound.class, NBTTagCompoundSerializer); + .registerTypeAdapter(NBTTagCompound.class, NBTTagCompoundSerializer) + .serializeNulls(); + public static final GsonBuilder GSON_BUILDER_PRETTY = new GsonBuilder() + .addSerializationExclusionStrategy(GSONStrategy) + .addDeserializationExclusionStrategy(GSONStrategy) + .registerTypeAdapter(NBTTagCompound.class, NBTTagCompoundDeserializer) + .registerTypeAdapter(NBTTagCompound.class, NBTTagCompoundSerializer) + .serializeNulls() + .setPrettyPrinting(); + + public static <T> T readFile(Gson gson, File file, Class<T> tClass) { + if (!file.exists()) return null; + if (!file.isFile()) return null; + T t = null; + Reader reader = null; + try { + reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8); + t = gson.fromJson(reader, tClass); + } catch (Exception ignored) { + } finally { + if (reader != null) + try { + reader.close(); + } catch (Exception ignored) { + } + } + return t; + } } |