Skip to content

Commit 41c614b

Browse files
committed
Create an abstract mixin config plugin
1 parent 7330a4d commit 41c614b

8 files changed

+52
-114
lines changed

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

-23
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package de.kb1000.notelemetry;
2+
3+
import org.objectweb.asm.tree.ClassNode;
4+
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
5+
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
6+
7+
import java.util.List;
8+
import java.util.Set;
9+
10+
public abstract class NoTelemetryAbstractMixinConfigPlugin implements IMixinConfigPlugin {
11+
@Override
12+
public void onLoad(String mixinPackage) {
13+
}
14+
15+
@Override
16+
public String getRefMapperConfig() {
17+
return null;
18+
}
19+
20+
@Override
21+
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
22+
}
23+
24+
@Override
25+
public List<String> getMixins() {
26+
return null;
27+
}
28+
29+
@Override
30+
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
31+
}
32+
33+
@Override
34+
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
35+
}
36+
}

src/main/java/de/kb1000/notelemetry/NoTelemetryFabricMixinConfigPlugin.java renamed to src/main/java/de/kb1000/notelemetry/NoTelemetryFabricAbstractMixinConfigPlugin.java

+1-33
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,8 @@
1111
import net.fabricmc.loader.api.FabricLoader;
1212
import net.fabricmc.loader.api.SemanticVersion;
1313
import net.fabricmc.loader.api.VersionParsingException;
14-
import org.objectweb.asm.tree.ClassNode;
15-
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
16-
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
17-
18-
import java.util.List;
19-
import java.util.Set;
20-
21-
public class NoTelemetryFabricMixinConfigPlugin implements IMixinConfigPlugin {
22-
@Override
23-
public void onLoad(String mixinPackage) {
24-
}
25-
26-
@Override
27-
public String getRefMapperConfig() {
28-
return null;
29-
}
3014

15+
public class NoTelemetryFabricAbstractMixinConfigPlugin extends NoTelemetryAbstractMixinConfigPlugin {
3116
@Override
3217
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
3318
return switch (mixinClassName) {
@@ -43,23 +28,6 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
4328
};
4429
}
4530

46-
@Override
47-
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
48-
}
49-
50-
@Override
51-
public List<String> getMixins() {
52-
return null;
53-
}
54-
55-
@Override
56-
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
57-
}
58-
59-
@Override
60-
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
61-
}
62-
6331
static class Util {
6432
private static boolean minecraftNewerThan(String version) {
6533
try {

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

+12-27
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,18 @@
1212
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
1313
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
1414
import org.apache.maven.artifact.versioning.VersionRange;
15-
import org.objectweb.asm.tree.ClassNode;
16-
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
17-
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
1815

19-
import java.util.List;
20-
import java.util.Set;
21-
22-
public class NoTelemetryForgeMixinConfigPlugin implements IMixinConfigPlugin {
16+
public class NoTelemetryForgeMixinConfigPlugin extends NoTelemetryAbstractMixinConfigPlugin {
2317
private boolean isForgeNeo = false;
2418

2519
@Override
2620
public void onLoad(String mixinPackage) {
27-
isForgeNeo = CommonUtil.isForgeNeo();
21+
this.isForgeNeo = Util.isForgeNeo();
2822
}
2923

3024
@Override
3125
public String getRefMapperConfig() {
32-
if (isForgeNeo) {
26+
if (this.isForgeNeo) {
3327
return null;
3428
}
3529

@@ -44,7 +38,7 @@ public String getRefMapperConfig() {
4438

4539
@Override
4640
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
47-
if (isForgeNeo) {
41+
if (this.isForgeNeo) {
4842
return false;
4943
}
5044

@@ -59,23 +53,6 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
5953
};
6054
}
6155

62-
@Override
63-
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
64-
}
65-
66-
@Override
67-
public List<String> getMixins() {
68-
return null;
69-
}
70-
71-
@Override
72-
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
73-
}
74-
75-
@Override
76-
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
77-
}
78-
7956
private static class Util {
8057
private static boolean minecraftNewerThan(String version) {
8158
try {
@@ -84,5 +61,13 @@ private static boolean minecraftNewerThan(String version) {
8461
throw new RuntimeException(e);
8562
}
8663
}
64+
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+
}
71+
}
8772
}
8873
}

src/main/java/de/kb1000/notelemetry/NoTelemetryNeoForgeMixinConfigPlugin.java renamed to src/main/java/de/kb1000/notelemetry/NoTelemetryNeoForgeAbstractMixinConfigPlugin.java

+1-28
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,8 @@
1212
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
1313
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
1414
import org.apache.maven.artifact.versioning.VersionRange;
15-
import org.objectweb.asm.tree.ClassNode;
16-
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
17-
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
18-
19-
import java.util.List;
20-
import java.util.Set;
21-
22-
public class NoTelemetryNeoForgeMixinConfigPlugin implements IMixinConfigPlugin {
23-
@Override
24-
public void onLoad(String mixinPackage) {
25-
}
2615

16+
public class NoTelemetryNeoForgeAbstractMixinConfigPlugin extends NoTelemetryAbstractMixinConfigPlugin {
2717
@Override
2818
public String getRefMapperConfig() {
2919
if (Util.minecraftNewerThan("1.21")) {
@@ -39,23 +29,6 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
3929
return true;
4030
}
4131

42-
@Override
43-
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
44-
}
45-
46-
@Override
47-
public List<String> getMixins() {
48-
return null;
49-
}
50-
51-
@Override
52-
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
53-
}
54-
55-
@Override
56-
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
57-
}
58-
5932
private static class Util {
6033
private static boolean minecraftNewerThan(String version) {
6134
try {

src/main/java/de/kb1000/notelemetry/mixin/YggdrasilUserApiServiceMixin.java

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import com.mojang.authlib.yggdrasil.YggdrasilUserApiService;
1313
import org.spongepowered.asm.mixin.Mixin;
1414
import org.spongepowered.asm.mixin.Overwrite;
15-
import org.spongepowered.asm.mixin.injection.Group;
1615

1716
import java.util.concurrent.Executor;
1817

src/main/resources/no-telemetry-neoforge.mixins.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"minVersion": "0.8",
44
"package": "de.kb1000.notelemetry.mixin",
55
"compatibilityLevel": "JAVA_16",
6-
"plugin": "de.kb1000.notelemetry.NoTelemetryNeoForgeMixinConfigPlugin",
6+
"plugin": "de.kb1000.notelemetry.NoTelemetryNeoForgeAbstractMixinConfigPlugin",
77
"client": [
88
"MinecraftClientMixin",
99
"NewYggdrasilUserApiServiceMixin",

src/main/resources/no-telemetry.mixins.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"minVersion": "0.8",
44
"package": "de.kb1000.notelemetry.mixin",
55
"compatibilityLevel": "JAVA_16",
6-
"plugin": "de.kb1000.notelemetry.NoTelemetryFabricMixinConfigPlugin",
6+
"plugin": "de.kb1000.notelemetry.NoTelemetryFabricAbstractMixinConfigPlugin",
77
"client": [
88
"MinecraftClientMixin",
99
"NewYggdrasilUserApiServiceMixin",

0 commit comments

Comments
 (0)