Skip to content

Commit b047a4d

Browse files
refactor: replace CompressionDecoder ASM patch with CompressionDecoderMixin
1 parent 0dc1018 commit b047a4d

9 files changed

Lines changed: 33 additions & 388 deletions

File tree

src/main/java/meteordevelopment/meteorclient/MixinPlugin.java

Lines changed: 11 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55

66
package meteordevelopment.meteorclient;
77

8-
import meteordevelopment.meteorclient.asm.Asm;
98
import net.fabricmc.loader.api.FabricLoader;
109
import org.objectweb.asm.tree.ClassNode;
1110
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
1211
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
13-
import org.spongepowered.asm.mixin.transformer.IMixinTransformer;
1412

15-
import java.lang.reflect.Field;
1613
import java.util.List;
1714
import java.util.Set;
1815

@@ -32,33 +29,6 @@ public class MixinPlugin implements IMixinConfigPlugin {
3229
public void onLoad(String mixinPackage) {
3330
if (loaded) return;
3431

35-
try {
36-
// Get class loader
37-
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
38-
Class<?> classLoaderClass = classLoader.getClass();
39-
40-
// Get delegate
41-
Field delegateField = classLoaderClass.getDeclaredField("delegate");
42-
delegateField.setAccessible(true);
43-
Object delegate = delegateField.get(classLoader);
44-
Class<?> delegateClass = delegate.getClass();
45-
46-
// Get mixinTransformer field
47-
Field mixinTransformerField = delegateClass.getDeclaredField("mixinTransformer");
48-
mixinTransformerField.setAccessible(true);
49-
50-
// Create Asm
51-
Asm.init();
52-
53-
// Change delegate
54-
Asm.Transformer mixinTransformer = new Asm.Transformer();
55-
mixinTransformer.delegate = (IMixinTransformer) mixinTransformerField.get(delegate);
56-
57-
mixinTransformerField.set(delegate, mixinTransformer);
58-
} catch (NoSuchFieldException | IllegalAccessException e) {
59-
MeteorClient.LOG.error("Error loading the mixin plugin", e);
60-
}
61-
6232
isIndigoPresent = FabricLoader.getInstance().isModLoaded("fabric-renderer-indigo");
6333
isOriginsPresent = FabricLoader.getInstance().isModLoaded("origins");
6434
isSodiumPresent = FabricLoader.getInstance().isModLoaded("sodium");
@@ -78,20 +48,15 @@ public String getRefMapperConfig() {
7848
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
7949
if (!mixinClassName.startsWith(mixinPackage)) {
8050
throw new RuntimeException("Mixin " + mixinClassName + " is not in the mixin package");
81-
}
82-
else if (mixinClassName.endsWith("PlayerEntityRendererMixin")) {
51+
} else if (mixinClassName.endsWith("PlayerEntityRendererMixin")) {
8352
return !isOriginsPresent;
84-
}
85-
else if (mixinClassName.startsWith(mixinPackage + ".sodium")) {
53+
} else if (mixinClassName.startsWith(mixinPackage + ".sodium")) {
8654
return isSodiumPresent;
87-
}
88-
else if (mixinClassName.startsWith(mixinPackage + ".indigo")) {
55+
} else if (mixinClassName.startsWith(mixinPackage + ".indigo")) {
8956
return isIndigoPresent;
90-
}
91-
else if (mixinClassName.startsWith(mixinPackage + ".lithium")) {
57+
} else if (mixinClassName.startsWith(mixinPackage + ".lithium")) {
9258
return isLithiumPresent;
93-
}
94-
else if (mixinClassName.startsWith(mixinPackage + ".viafabricplus")) {
59+
} else if (mixinClassName.startsWith(mixinPackage + ".viafabricplus")) {
9560
return isVFPPresent;
9661
}
9762

@@ -100,16 +65,19 @@ else if (mixinClassName.startsWith(mixinPackage + ".viafabricplus")) {
10065
}
10166

10267
@Override
103-
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {}
68+
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
69+
}
10470

10571
@Override
10672
public List<String> getMixins() {
10773
return null;
10874
}
10975

11076
@Override
111-
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {}
77+
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
78+
}
11279

11380
@Override
114-
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {}
81+
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
82+
}
11583
}

src/main/java/meteordevelopment/meteorclient/asm/Asm.java

Lines changed: 0 additions & 137 deletions
This file was deleted.

src/main/java/meteordevelopment/meteorclient/asm/AsmTransformer.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/main/java/meteordevelopment/meteorclient/asm/Descriptor.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/main/java/meteordevelopment/meteorclient/asm/FieldInfo.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/main/java/meteordevelopment/meteorclient/asm/MethodInfo.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)