@@ -150,7 +150,7 @@ public void setAchievementsEnabled(boolean areAchievementsEnabled, boolean isSav
150150 } else {
151151 logger .info ("MagicLib achievements are disabled." );
152152 removeIntel ();
153- saveAchievements (true );
153+ saveAchievements (true , false );
154154
155155 if (isSaveLoaded ) {
156156 Global .getSector ().removeTransientScriptsOfClass (MagicAchievementRunner .class );
@@ -221,13 +221,13 @@ public Map<String, MagicAchievement> getAchievements() {
221221 /**
222222 * This writes to disk.
223223 */
224- protected void saveAchievements (boolean printUnchangedResultToLog ) {
224+ protected void saveAchievements (boolean printUnchangedResultToLog , boolean forceSave ) {
225225 JSONObject commonJson ;
226226 JSONArray savedAchievements = new JSONArray ();
227227
228228 // Prevents accidentally wiping achievements if the feature is disabled on game load.
229229 // Also, no reason to save nothing anyway.
230- if (achievements .isEmpty ()) {
230+ if (! forceSave && achievements .isEmpty ()) {
231231 return ;
232232 }
233233
@@ -246,7 +246,7 @@ protected void saveAchievements(boolean printUnchangedResultToLog) {
246246 try {
247247 newAchievementsJsonString = savedAchievements .toString (indent );
248248
249- if (newAchievementsJsonString .equals (lastSavedJson )) {
249+ if (! forceSave && newAchievementsJsonString .equals (lastSavedJson )) {
250250 if (printUnchangedResultToLog ) {
251251 logger .info ("Not saving achievements because they haven't changed." );
252252 }
@@ -303,7 +303,7 @@ public void reloadAchievements(boolean isSaveGameLoaded) {
303303 try {
304304 // Create file if it doesn't exist.
305305 if (!Global .getSettings ().fileExistsInCommon (commonFilename )) {
306- saveAchievements (true );
306+ saveAchievements (true , true );
307307 }
308308
309309 try {
@@ -314,7 +314,7 @@ public void reloadAchievements(boolean isSaveGameLoaded) {
314314 logger .warn ("Unable to load achievements from " + commonFilename + ", making a backup and remaking it." , ex );
315315 Global .getSettings ().writeTextFileToCommon (commonFilename + ".backup" , Global .getSettings ().readTextFileFromCommon (commonFilename ));
316316 Global .getSettings ().deleteTextFileFromCommon (commonFilename );
317- saveAchievements (true );
317+ saveAchievements (true , true );
318318 commonJson = JSONUtils .loadCommonJSON (commonFilename );
319319 savedAchievementsJson = commonJson .getJSONArray (achievementsJsonObjectKey );
320320 }
0 commit comments