@@ -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