aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorBlueWeabo <ilia.iliev2005@gmail.com>2024-07-30 19:36:59 +0300
committerGitHub <noreply@github.com>2024-07-30 23:36:59 +0700
commitf5d68f370023ebcfadd6e58d946249e5b0f5a304 (patch)
tree3ea20cef45c89ab4e5d8f2035d1a93c5980af7db /src/main/java/gregtech/common
parentfa9a447bb8c583710a33a2f1531abc6c6d527a63 (diff)
downloadGT5-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.java57
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));
}
}