Skip to content

Commit f119d75

Browse files
committed
Fix unmapped game jar not being found in dev
1 parent 559a166 commit f119d75

1 file changed

Lines changed: 19 additions & 22 deletions

File tree

src/main/java/me/modmuss50/optifabric/mod/OptifineSetup.java

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import java.nio.file.Paths;
1818
import java.util.Arrays;
1919
import java.util.HashMap;
20-
import java.util.Iterator;
2120
import java.util.Map;
2221
import java.util.Set;
2322
import java.util.function.Consumer;
@@ -35,9 +34,7 @@
3534

3635
import org.objectweb.asm.ClassWriter;
3736
import org.objectweb.asm.Opcodes;
38-
import org.objectweb.asm.Type;
3937
import org.objectweb.asm.tree.ClassNode;
40-
import org.objectweb.asm.tree.MethodNode;
4138
import org.objectweb.asm.tree.RecordComponentNode;
4239

4340
import 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-
+ "\nPlease 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+
+ "\nPlease supply it explicitly with -Doptifabric.mc-jar");
397394
}
398395

399396
private static Path getLaunchMinecraftJar() {

0 commit comments

Comments
 (0)