1717import java .nio .file .Paths ;
1818import java .util .Arrays ;
1919import java .util .HashMap ;
20- import java .util .Iterator ;
2120import java .util .Map ;
2221import java .util .Set ;
2322import java .util .function .Consumer ;
3534
3635import org .objectweb .asm .ClassWriter ;
3736import org .objectweb .asm .Opcodes ;
38- import org .objectweb .asm .Type ;
3937import org .objectweb .asm .tree .ClassNode ;
40- import org .objectweb .asm .tree .MethodNode ;
4138import org .objectweb .asm .tree .RecordComponentNode ;
4239
4340import net .fabricmc .loader .api .FabricLoader ;
@@ -326,7 +323,7 @@ private static IMappingProvider createMappings(String from, String to, IMappingP
326323 };
327324 }
328325
329- //Gets the minecraft librarys
326+ //Gets the minecraft libraries
330327 private static Path [] getLibs (Path minecraftJar ) {
331328 Path [] libs = FabricLauncherBase .getLauncher ().getLoadTimeDependencies ().stream ().map (url -> {
332329 try {
@@ -355,7 +352,7 @@ private static Path[] getLibs(Path minecraftJar) {
355352 return libs ;
356353 }
357354
358- //Gets the offical minecraft jar
355+ //Gets the official minecraft jar
359356 private static Path getMinecraftJar () {
360357 String givenJar = System .getProperty ("optifabric.mc-jar" );
361358 if (givenJar != null ) {
@@ -371,29 +368,29 @@ private static Path getMinecraftJar() {
371368 Path minecraftJar = getLaunchMinecraftJar ();
372369
373370 if (FabricLoader .getInstance ().isDevelopmentEnvironment ()) {
374- Path officialNames = minecraftJar .resolveSibling (String .format ("minecraft-%s-client.jar" , OptifineVersion .minecraftVersion ));
371+ return getMinecraftDevJar (minecraftJar );
372+ }
375373
376- if ( Files . notExists ( officialNames )) {
377- Path parent = minecraftJar . getParent (). resolveSibling ( String . format ( "minecraft-%s-client.jar" , OptifineVersion . minecraftVersion ));
374+ return minecraftJar ;
375+ }
378376
379- if (Files .notExists (parent )) {
380- Path alternativeParent = parent .resolveSibling ("minecraft-client.jar" );
377+ private static Path getMinecraftDevJar (Path minecraftJar ) {
378+ Path officialNames = minecraftJar .resolveSibling (String .format ("minecraft-%s-client.jar" , OptifineVersion .minecraftVersion ));
379+ if (Files .exists (officialNames )) return officialNames ;
381380
382- if (Files .notExists (alternativeParent )) {
383- throw new AssertionError ("Unable to find Minecraft dev jar! Tried " + officialNames + ", " + parent + " and " + alternativeParent
384- + "\n Please supply it explicitly with -Doptifabric.mc-jar" );
385- }
381+ Path parent = minecraftJar .getParent ().resolveSibling (String .format ("minecraft-%s-client.jar" , OptifineVersion .minecraftVersion ));
382+ if (Files .exists (parent )) return parent ;
386383
387- parent = alternativeParent ;
388- }
384+ Path alternativeParent = parent . resolveSibling ( "minecraft-client.jar" ) ;
385+ if ( Files . exists ( alternativeParent )) return alternativeParent ;
389386
390- officialNames = parent ;
391- }
392-
393- minecraftJar = officialNames ;
394- }
387+ //user.home shouldn't be null (but it can be)
388+ String gradleUserHome = System .getProperty ("GRADLE_USER_HOME" , System .getProperty ("user.home" , "." ));
389+ Path newLoom = Paths .get (gradleUserHome , ".gradle/caches/fabric-loom" , OptifineVersion .minecraftVersion , "minecraft-client.jar" );
390+ if (Files .exists (newLoom )) return newLoom ;
395391
396- return minecraftJar ;
392+ throw new AssertionError (String .format ("Unable to find Minecraft dev jar! Tried %s, %s, %s and %s" , officialNames , parent , alternativeParent , newLoom )
393+ + "\n Please supply it explicitly with -Doptifabric.mc-jar" );
397394 }
398395
399396 private static Path getLaunchMinecraftJar () {
0 commit comments