diff options
author | BlueWeabo <ilia.iliev2005@gmail.com> | 2024-07-30 19:36:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-30 23:36:59 +0700 |
commit | f5d68f370023ebcfadd6e58d946249e5b0f5a304 (patch) | |
tree | 3ea20cef45c89ab4e5d8f2035d1a93c5980af7db /src/main/java/gregtech/common | |
parent | fa9a447bb8c583710a33a2f1531abc6c6d527a63 (diff) | |
download | GT5-Unofficial-f5d68f370023ebcfadd6e58d946249e5b0f5a304.tar.gz GT5-Unofficial-f5d68f370023ebcfadd6e58d946249e5b0f5a304.tar.bz2 GT5-Unofficial-f5d68f370023ebcfadd6e58d946249e5b0f5a304.zip |
Stop using Json files to save space project data and teams (#2700)
* Go away from saving to file for space teams
* apply spotless
* make an additional null check
* Add raven's suggestions
Co-authored-by: Raven Szewczyk <git@eigenraven.me>
---------
Co-authored-by: Raven Szewczyk <git@eigenraven.me>
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectWorldSavedData.java | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectWorldSavedData.java b/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectWorldSavedData.java index 12f0005aea..be0388daea 100644 --- a/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectWorldSavedData.java +++ b/src/main/java/gregtech/common/misc/spaceprojects/SpaceProjectWorldSavedData.java @@ -19,7 +19,6 @@ import static gregtech.common.misc.spaceprojects.enums.JsonVariables.UPGRADE_PRO import java.io.File; import java.io.FileReader; -import java.io.FileWriter; import java.lang.reflect.Type; import java.util.HashMap; import java.util.Map; @@ -45,7 +44,6 @@ import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import gregtech.common.misc.spaceprojects.enums.SolarSystem; @@ -99,21 +97,38 @@ public class SpaceProjectWorldSavedData extends WorldSavedData { @Override public void readFromNBT(NBTTagCompound aNBT) { - try (JsonReader reader = new JsonReader(new FileReader(teamProjectsFile))) { - spaceTeamProjects = GSON_SPACE_PROJECT.fromJson(reader, spaceTeamProjects.getClass()); - } catch (Exception e) { - System.out.print("FAILED TO LOAD: " + SPACE_TEAM_PROJECTS_JSON); - e.printStackTrace(); + if (!aNBT.hasKey("spaceTeamProjects")) { + // We don't have a key? Try to read from file + try (JsonReader reader = new JsonReader(new FileReader(teamProjectsFile))) { + spaceTeamProjects = GSON_SPACE_PROJECT.fromJson(reader, spaceTeamProjects.getClass()); + } catch (Exception e) { + spaceTeamProjects = null; + } + } + if (spaceTeamProjects == null) { + spaceTeamProjects = new HashMap<>(); + } + if (aNBT.hasKey("spaceTeamProjects")) { + spaceTeamProjects = GSON_SPACE_PROJECT + .fromJson(aNBT.getString("spaceTeamProjects"), spaceTeamProjects.getClass()); } - try (JsonReader reader = new JsonReader(new FileReader(spaceTeamsFile))) { - HashMap<UUID, UUID> jsonMap = GSON_TEAMS.fromJson(reader, spaceTeams.getClass()); - for (UUID member : jsonMap.keySet()) { - spaceTeams.put(member, jsonMap.get(member)); + if (!aNBT.hasKey("spaceTeams")) { + // We don't have a key? Try to read from file + try (JsonReader reader = new JsonReader(new FileReader(spaceTeamsFile))) { + HashMap<UUID, UUID> jsonMap = GSON_TEAMS.fromJson(reader, spaceTeams.getClass()); + for (UUID member : jsonMap.keySet()) { + spaceTeams.put(member, jsonMap.get(member)); + } + } catch (Exception e) { + spaceTeams = null; } - } catch (Exception e) { - System.out.print("FAILED TO LOAD: " + SPACE_TEAMS_JSON); - e.printStackTrace(); + } + if (spaceTeams == null) { + spaceTeams = new HashMap<>(); + } + if (aNBT.hasKey("spaceTeams")) { + spaceTeams = GSON_TEAMS.fromJson(aNBT.getString("spaceTeam"), spaceTeams.getClass()); } if (spaceTeamProjects == null) { @@ -128,21 +143,11 @@ public class SpaceProjectWorldSavedData extends WorldSavedData { @Override public void writeToNBT(NBTTagCompound aNBT) { if (spaceTeamProjects != null) { - try (JsonWriter writer = new JsonWriter(new FileWriter(teamProjectsFile))) { - GSON_SPACE_PROJECT.toJson(spaceTeamProjects, spaceTeamProjects.getClass(), writer); - } catch (Exception ex) { - System.out.print("FAILED TO SAVE: " + SPACE_TEAM_PROJECTS_JSON); - ex.printStackTrace(); - } + aNBT.setString("spaceTeamProjects", GSON_SPACE_PROJECT.toJson(spaceTeamProjects)); } if (spaceTeams != null) { - try (JsonWriter writer = new JsonWriter(new FileWriter(spaceTeamsFile))) { - GSON_TEAMS.toJson(spaceTeams, spaceTeams.getClass(), writer); - } catch (Exception ex) { - System.out.print("FAILED TO SAVE: " + SPACE_TEAMS_JSON); - ex.printStackTrace(); - } + aNBT.setString("spaceTeams", GSON_TEAMS.toJson(spaceTeams)); } } |