Skip to content

Commit ac719f8

Browse files
committed
Prevent overriding core mods
1 parent 88eae9a commit ac719f8

1 file changed

Lines changed: 23 additions & 11 deletions

File tree

src/main/java/pojlib/InstanceHandler.java

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ public static MinecraftInstances.Instance create(Activity activity, MinecraftIns
6969
info.version = "1.0.0";
7070
info.download_link = file.downloads[0];
7171
info.type = "mod";
72+
if(isCoreMod(instance, info)) {
73+
continue;
74+
}
75+
7276
mods.add(info);
7377
}
7478
}
@@ -248,24 +252,32 @@ public static boolean hasExtraProject(MinecraftInstances.Instance instance, Stri
248252
return false;
249253
}
250254

255+
private static boolean isCoreMod(MinecraftInstances.Instance instance, ProjectInfo oldInfo) {
256+
// Check if its a coremod
257+
ModsJson oldMods = instance.parseModsJson(Constants.USER_HOME + "/mods.json");
258+
if(oldMods != null) {
259+
Optional<ModsJson.Version> ver = Arrays.stream(oldMods.versions).filter((v) -> !v.name.equals(instance.versionName)).findFirst();
260+
if(ver.isPresent()) {
261+
ModsJson.Version version = ver.get();
262+
Optional<ProjectInfo> info = Arrays.stream(version.coreMods).filter((mod) -> !mod.slug.equals(oldInfo.slug)).findFirst();
263+
if(info.isPresent()) {
264+
return true;
265+
}
266+
}
267+
}
268+
269+
return false;
270+
}
271+
251272
public static boolean removeExtraProject(MinecraftInstances instances, MinecraftInstances.Instance instance, String name) {
252273
ProjectInfo oldInfo = Arrays.stream(instance.extProjects).filter(info -> info.slug.equalsIgnoreCase(name)).findFirst().orElse(null);
253274

254275
if(oldInfo != null) {
255276
boolean isMod = oldInfo.type.equals("mod");
256277
boolean legacyMod = oldInfo.fileName == null;
257278

258-
// Check if its a coremod
259-
ModsJson oldMods = instance.parseModsJson(Constants.USER_HOME + "/mods.json");
260-
if(oldMods != null) {
261-
Optional<ModsJson.Version> ver = Arrays.stream(oldMods.versions).filter((v) -> !v.name.equals(instance.versionName)).findFirst();
262-
if(ver.isPresent()) {
263-
ModsJson.Version version = ver.get();
264-
Optional<ProjectInfo> info = Arrays.stream(version.coreMods).filter((mod) -> !mod.slug.equals(oldInfo.slug)).findFirst();
265-
if(info.isPresent()) {
266-
return false;
267-
}
268-
}
279+
if(isCoreMod(instance, oldInfo)) {
280+
return false;
269281
}
270282

271283
// Delete the mod

0 commit comments

Comments
 (0)