Skip to content

Commit 3bfaf6a

Browse files
committed
Abstractify
1 parent 41c614b commit 3bfaf6a

7 files changed

+47
-58
lines changed

build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* defined by the Mozilla Public License, v. 2.0.
88
*/
99
plugins {
10-
id("fabric-loom") version "1.9-SNAPSHOT"
10+
id("fabric-loom") version "1.9.2"
1111
`maven-publish`
1212
}
1313

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

+1-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ done
8686
# shellcheck disable=SC2034
8787
APP_BASE_NAME=${0##*/}
8888
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
89-
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
90-
' "$PWD" ) || exit
89+
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
9190

9291
# Use the maximum available, or set MAX_FD != -1 to use that value.
9392
MAX_FD=maximum

src/main/java/de/kb1000/notelemetry/NoTelemetryAbstractMixinConfigPlugin.java

+17
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,21 @@ public String getRefMapperConfig() {
1717
return null;
1818
}
1919

20+
@Override
21+
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
22+
return switch (mixinClassName) {
23+
case "de.kb1000.notelemetry.mixin.YggdrasilUserApiServiceMixin" ->
24+
!this.minecraftNewerThan("1.18-beta.3");
25+
case "de.kb1000.notelemetry.mixin.NewYggdrasilUserApiServiceMixin" ->
26+
this.minecraftNewerThan("1.18-beta.3");
27+
case "de.kb1000.notelemetry.mixin.Pre1193TelemetryManagerMixin" ->
28+
!this.minecraftNewerThan("1.19.3-alpha.22.46.a");
29+
case "de.kb1000.notelemetry.mixin.MinecraftClientMixin", "de.kb1000.notelemetry.mixin.OptionsScreenMixin",
30+
"de.kb1000.notelemetry.mixin.Post1193TelemetryManagerMixin" -> this.minecraftNewerThan("1.19.3-alpha.22.46.a");
31+
default -> true;
32+
};
33+
}
34+
2035
@Override
2136
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
2237
}
@@ -33,4 +48,6 @@ public void preApply(String targetClassName, ClassNode targetClass, String mixin
3348
@Override
3449
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
3550
}
51+
52+
protected abstract boolean minecraftNewerThan(String version);
3653
}

src/main/java/de/kb1000/notelemetry/NoTelemetryFabricAbstractMixinConfigPlugin.java

+5-21
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,11 @@
1414

1515
public class NoTelemetryFabricAbstractMixinConfigPlugin extends NoTelemetryAbstractMixinConfigPlugin {
1616
@Override
17-
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
18-
return switch (mixinClassName) {
19-
case "de.kb1000.notelemetry.mixin.YggdrasilUserApiServiceMixin" ->
20-
!Util.minecraftNewerThan("1.18-beta.3");
21-
case "de.kb1000.notelemetry.mixin.NewYggdrasilUserApiServiceMixin" ->
22-
Util.minecraftNewerThan("1.18-beta.3");
23-
case "de.kb1000.notelemetry.mixin.Pre1193TelemetryManagerMixin" ->
24-
!Util.minecraftNewerThan("1.19.3-alpha.22.46.a");
25-
case "de.kb1000.notelemetry.mixin.MinecraftClientMixin", "de.kb1000.notelemetry.mixin.OptionsScreenMixin",
26-
"de.kb1000.notelemetry.mixin.Post1193TelemetryManagerMixin" -> Util.minecraftNewerThan("1.19.3-alpha.22.46.a");
27-
default -> true;
28-
};
29-
}
30-
31-
static class Util {
32-
private static boolean minecraftNewerThan(String version) {
33-
try {
34-
return FabricLoader.getInstance().getModContainer("minecraft").orElseThrow().getMetadata().getVersion().compareTo(SemanticVersion.parse(version)) >= 0;
35-
} catch (VersionParsingException e) {
36-
throw new RuntimeException(e);
37-
}
17+
protected boolean minecraftNewerThan(String version) {
18+
try {
19+
return FabricLoader.getInstance().getModContainer("minecraft").orElseThrow().getMetadata().getVersion().compareTo(SemanticVersion.parse(version)) >= 0;
20+
} catch (VersionParsingException e) {
21+
throw new RuntimeException(e);
3822
}
3923
}
4024
}

src/main/java/de/kb1000/notelemetry/NoTelemetryForgeMixinConfigPlugin.java

+16-25
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class NoTelemetryForgeMixinConfigPlugin extends NoTelemetryAbstractMixinC
1818

1919
@Override
2020
public void onLoad(String mixinPackage) {
21-
this.isForgeNeo = Util.isForgeNeo();
21+
this.isForgeNeo = isForgeNeo();
2222
}
2323

2424
@Override
@@ -27,9 +27,9 @@ public String getRefMapperConfig() {
2727
return null;
2828
}
2929

30-
if (Util.minecraftNewerThan("1.21")) {
30+
if (this.minecraftNewerThan("1.21")) {
3131
return "no-telemetry-mojank-refmap.json";
32-
} else if (Util.minecraftNewerThan("1.20.5")) {
32+
} else if (this.minecraftNewerThan("1.20.5")) {
3333
return "no-telemetry-mojank-1.20-refmap.json";
3434
}
3535

@@ -42,32 +42,23 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
4242
return false;
4343
}
4444

45-
return switch (mixinClassName) {
46-
// You can't use snapshots on Forge!
47-
case "de.kb1000.notelemetry.mixin.YggdrasilUserApiServiceMixin" -> false;
48-
case "de.kb1000.notelemetry.mixin.Pre1193TelemetryManagerMixin" ->
49-
!Util.minecraftNewerThan("1.19.3-alpha.22.46.a");
50-
case "de.kb1000.notelemetry.mixin.MinecraftClientMixin", "de.kb1000.notelemetry.mixin.OptionsScreenMixin",
51-
"de.kb1000.notelemetry.mixin.Post1193TelemetryManagerMixin" -> Util.minecraftNewerThan("1.19.3-alpha.22.46.a");
52-
default -> true;
53-
};
45+
return !this.isForgeNeo && super.shouldApplyMixin(targetClassName, mixinClassName);
5446
}
5547

56-
private static class Util {
57-
private static boolean minecraftNewerThan(String version) {
58-
try {
59-
return VersionRange.createFromVersionSpec("[" + version + ",)").containsVersion(new DefaultArtifactVersion(FMLLoader.versionInfo().mcVersion()));
60-
} catch (InvalidVersionSpecificationException e) {
61-
throw new RuntimeException(e);
62-
}
48+
@Override
49+
protected boolean minecraftNewerThan(String version) {
50+
try {
51+
return VersionRange.createFromVersionSpec("[" + version + ",)").containsVersion(new DefaultArtifactVersion(FMLLoader.versionInfo().mcVersion()));
52+
} catch (InvalidVersionSpecificationException e) {
53+
throw new RuntimeException(e);
6354
}
55+
}
6456

65-
private static boolean isForgeNeo() {
66-
try {
67-
return NoTelemetryFabricAbstractMixinConfigPlugin.class.getClassLoader().loadClass("net.neoforged.fml.common.Mod") != null;
68-
} catch (Exception | LinkageError e) {
69-
return false;
70-
}
57+
private static boolean isForgeNeo() {
58+
try {
59+
return NoTelemetryFabricAbstractMixinConfigPlugin.class.getClassLoader().loadClass("net.neoforged.fml.common.Mod") != null;
60+
} catch (Exception | LinkageError e) {
61+
return false;
7162
}
7263
}
7364
}

src/main/java/de/kb1000/notelemetry/NoTelemetryNeoForgeAbstractMixinConfigPlugin.java

+6-8
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class NoTelemetryNeoForgeAbstractMixinConfigPlugin extends NoTelemetryAbstractMixinConfigPlugin {
1717
@Override
1818
public String getRefMapperConfig() {
19-
if (Util.minecraftNewerThan("1.21")) {
19+
if (this.minecraftNewerThan("1.21")) {
2020
return "no-telemetry-mojank-refmap.json";
2121
} else {
2222
return "no-telemetry-mojank-1.20-refmap.json";
@@ -29,13 +29,11 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
2929
return true;
3030
}
3131

32-
private static class Util {
33-
private static boolean minecraftNewerThan(String version) {
34-
try {
35-
return VersionRange.createFromVersionSpec("[" + version + ",)").containsVersion(new DefaultArtifactVersion(FMLLoader.versionInfo().mcVersion()));
36-
} catch (InvalidVersionSpecificationException e) {
37-
throw new RuntimeException(e);
38-
}
32+
protected boolean minecraftNewerThan(String version) {
33+
try {
34+
return VersionRange.createFromVersionSpec("[" + version + ",)").containsVersion(new DefaultArtifactVersion(FMLLoader.versionInfo().mcVersion()));
35+
} catch (InvalidVersionSpecificationException e) {
36+
throw new RuntimeException(e);
3937
}
4038
}
4139
}

0 commit comments

Comments
 (0)