Skip to content

Commit 092c27e

Browse files
committed
Fix potential race condition and fix non-coremod deletion
1 parent 325a4b2 commit 092c27e

2 files changed

Lines changed: 14 additions & 15 deletions

File tree

src/main/java/pojlib/API.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -240,19 +240,20 @@ public static void login(Activity activity, @Nullable String accountUUID)
240240

241241
MinecraftAccount acc = MinecraftAccount.load(activity.getFilesDir() + "/accounts", accountUUID);
242242
if(acc != null && (acc.expiresOn >= System.currentTimeMillis() || !hasConnection(activity) || acc.isDemoMode)) {
243+
API.profileImage = MinecraftAccount.getSkinFaceUrl(acc);
244+
API.profileName = acc.username;
245+
API.profileUUID = acc.uuid;
246+
API.isDemoMode = acc.isDemoMode;
243247
currentAcc = acc;
244-
API.profileImage = MinecraftAccount.getSkinFaceUrl(API.currentAcc);
245-
API.profileName = API.currentAcc.username;
246-
API.profileUUID = API.currentAcc.uuid;
247-
API.isDemoMode = API.currentAcc.isDemoMode;
248248
return;
249249
} else if(acc != null && acc.expiresOn < System.currentTimeMillis()) {
250-
currentAcc = LoginHelper.refreshAccount(activity, accountUUID);
251-
if(currentAcc != null) {
252-
API.profileImage = MinecraftAccount.getSkinFaceUrl(API.currentAcc);
253-
API.profileName = API.currentAcc.username;
254-
API.profileUUID = API.currentAcc.uuid;
255-
API.isDemoMode = API.currentAcc.isDemoMode;
250+
MinecraftAccount refreshed = LoginHelper.refreshAccount(activity, accountUUID);
251+
if(refreshed != null) {
252+
API.profileImage = MinecraftAccount.getSkinFaceUrl(refreshed);
253+
API.profileName = refreshed.username;
254+
API.profileUUID = refreshed.uuid;
255+
API.isDemoMode = refreshed.isDemoMode;
256+
currentAcc = refreshed;
256257
return;
257258
}
258259
}

src/main/java/pojlib/InstanceHandler.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,13 +262,11 @@ private static boolean isCoreMod(MinecraftInstances.Instance instance, ProjectIn
262262
// Check if its a coremod
263263
ModsJson oldMods = instance.parseModsJson(Constants.USER_HOME + "/mods.json");
264264
if(oldMods != null) {
265-
Optional<ModsJson.Version> ver = Arrays.stream(oldMods.versions).filter((v) -> !v.name.equals(instance.versionName)).findFirst();
265+
Optional<ModsJson.Version> ver = Arrays.stream(oldMods.versions).filter((v) -> v.name.equals(instance.versionName)).findFirst();
266266
if(ver.isPresent()) {
267267
ModsJson.Version version = ver.get();
268-
Optional<ProjectInfo> info = Arrays.stream(version.coreMods).filter((mod) -> !mod.slug.equals(oldInfo.slug)).findFirst();
269-
if(info.isPresent()) {
270-
return true;
271-
}
268+
Optional<ProjectInfo> info = Arrays.stream(version.coreMods).filter((mod) -> mod.slug.equals(oldInfo.slug)).findFirst();
269+
return info.isPresent();
272270
}
273271
}
274272

0 commit comments

Comments
 (0)