Skip to content

Commit e4929f1

Browse files
committed
Fixed achievements file not getting created if missing.
1 parent f240be8 commit e4929f1

File tree

7 files changed

+16
-10
lines changed

7 files changed

+16
-10
lines changed

CHANGELOGS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Version 1.5.5
2+
**MagicAchievements**
3+
- sorry
4+
- Fixed achievements file not getting created if missing.
5+
- This prevented achievements from loading, crashing mods e.g. AotD: VoK.
6+
17
Version 1.5.4
28

39
**MagicAchievements**

jars/MagicLib-Kotlin.jar

0 Bytes
Binary file not shown.

jars/MagicLib.jar

64 Bytes
Binary file not shown.

magiclib.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
{
99
"major": "1",
1010
"minor": "5",
11-
"patch": "4-RC01"
11+
"patch": "5"
1212
}
1313
}

mod_info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"author": "Modding Community: Dark.Revenant, LazyWizard, Nicke, Originem, Rubi, Schaf-Unschaf, Snrasha, Tartiflette, Wisp, Wyvern...",
55
"utility": "false",
66
# Using the long version format lets the game correctly compare major/minor/patch versions.
7-
"version": { "major": '1', "minor": '5', "patch": '4' },
7+
"version": { "major": '1', "minor": '5', "patch": '5' },
88
"description": "A collection of classes to aid modding. Not a mod in itself, but required by other mods.",
99
"gameVersion": "0.98a-RC7",
1010
"dependencies": [

src/org/magiclib/achievements/MagicAchievement.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,11 +215,11 @@ public void advanceInCombat(float amount, List<InputEventAPI> events, boolean is
215215
*/
216216
public void saveChanges() {
217217
getLogger().info("Saving achievements triggered by '" + spec.getId() + "' from mod '" + spec.getModName() + "'.");
218-
MagicAchievementManager.getInstance().saveAchievements(true);
218+
MagicAchievementManager.getInstance().saveAchievements(true, false);
219219
}
220220

221221
private void saveChangesWithoutLogging() {
222-
MagicAchievementManager.getInstance().saveAchievements(false);
222+
MagicAchievementManager.getInstance().saveAchievements(false, false);
223223
}
224224

225225
/**

src/org/magiclib/achievements/MagicAchievementManager.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)