Skip to content

Commit a36ad8a

Browse files
committed
Merge 1.16 into 1.18
2 parents ca3c026 + 2c96388 commit a36ad8a

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

fabric/src/main/java/org/embeddedt/modernfix/fabric/mappings/MappingsClearer.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.embeddedt.modernfix.fabric.mappings;
22

3-
import net.fabricmc.loader.api.FabricLoader;
4-
import net.fabricmc.loader.api.MappingResolver;
3+
import net.fabricmc.loader.api.*;
54
import net.fabricmc.loader.impl.launch.FabricLauncherBase;
65
import net.fabricmc.loader.impl.launch.MappingConfiguration;
76
import net.fabricmc.mapping.tree.TinyMappingFactory;
@@ -10,16 +9,34 @@
109
import java.lang.reflect.Constructor;
1110
import java.lang.reflect.Field;
1211
import java.util.Map;
12+
import java.util.Optional;
1313

1414
/**
1515
* Designed for Fabric Loader 0.14.x, probably has issues on other versions. The entire thing is wrapped in a try-catch
1616
* so it should never cause crashes, just fail to work.
1717
*/
1818
public class MappingsClearer {
19+
private static final Version LOADER_015;
20+
21+
static {
22+
try {
23+
LOADER_015 = Version.parse("0.15.0");
24+
} catch (VersionParsingException e) {
25+
throw new RuntimeException(e);
26+
}
27+
}
28+
1929
@SuppressWarnings("unchecked")
2030
public static void clear() {
2131
if(FabricLoader.getInstance().isDevelopmentEnvironment())
2232
return; // never do this in dev
33+
34+
Optional<Version> loaderVersion = FabricLoader.getInstance().getModContainer("fabricloader").map(m -> m.getMetadata().getVersion());
35+
if(!loaderVersion.isPresent() || LOADER_015.compareTo(loaderVersion.get()) < 0) {
36+
// Fabric Loader is probably too new, abort
37+
return;
38+
}
39+
2340
CommonModUtil.runWithoutCrash(() -> {
2441
// For now, force the mapping resolver to be initialized. Fabric Loader 0.14.23 stops initializing it early,
2542
// which means that we actually need to keep the TinyMappingFactory tree around for initialization to work

0 commit comments

Comments
 (0)