Skip to content

Commit bb515ac

Browse files
committed
Mixin 0.8
1 parent 7a59eab commit bb515ac

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ repositories {
2929
}
3030

3131
dependencies {
32-
implementation("org.dimdev:mixin:0.7.11-SNAPSHOT") {
32+
implementation("org.spongepowered:mixin:0.8") {
3333
exclude module: "asm-commons"
3434
exclude module: "asm-tree"
3535
exclude module: "launchwrapper"

src/main/java/org/dimdev/vanillafix/ModCompatibilityMixinPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.dimdev.vanillafix;
22

33
import net.minecraft.launchwrapper.Launch;
4-
import org.spongepowered.asm.lib.tree.ClassNode;
4+
import org.objectweb.asm.tree.ClassNode;
55
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
66
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
77

src/main/java/org/dimdev/vanillafix/modsupport/mixins/MixinLoader.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.spongepowered.asm.mixin.injection.At;
1313
import org.spongepowered.asm.mixin.injection.Inject;
1414
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
15-
import org.spongepowered.asm.mixin.transformer.MixinTransformer;
15+
import org.spongepowered.asm.mixin.transformer.MixinProcessor;
1616
import org.spongepowered.asm.mixin.transformer.Proxy;
1717

1818
import java.lang.reflect.Field;
@@ -22,8 +22,8 @@
2222

2323
@Mixin(Loader.class)
2424
public class MixinLoader {
25-
@Shadow private List<ModContainer> mods;
26-
@Shadow private ModClassLoader modClassLoader;
25+
@Shadow(remap = false) private List<ModContainer> mods;
26+
@Shadow(remap = false) private ModClassLoader modClassLoader;
2727

2828
/**
2929
* @reason Load all mods now and load mod support mixin configs. This can't be done later
@@ -44,17 +44,25 @@ private void beforeConstructingMods(List<String> injectedModContainers, Callback
4444
if (VanillaFixLoadingPlugin.config.textureFixes) Mixins.addConfiguration("mixins.vanillafix.textures.modsupport.json");
4545
Proxy mixinProxy = (Proxy) Launch.classLoader.getTransformers().stream().filter(transformer -> transformer instanceof Proxy).findFirst().get();
4646
try {
47+
//This will very likely break on the next major mixin release.
48+
Class mixinTransformerClass = Class.forName("org.spongepowered.asm.mixin.transformer.MixinTransformer");
49+
4750
Field transformerField = Proxy.class.getDeclaredField("transformer");
4851
transformerField.setAccessible(true);
49-
MixinTransformer transformer = (MixinTransformer) transformerField.get(mixinProxy);
52+
Object transformer = transformerField.get(mixinProxy);
53+
54+
//Get MixinProcessor from MixinTransformer
55+
Field processorField = mixinTransformerClass.getDeclaredField("processor");
56+
processorField.setAccessible(true);
57+
Object processor = processorField.get(transformer);
5058

51-
Method selectConfigsMethod = MixinTransformer.class.getDeclaredMethod("selectConfigs", MixinEnvironment.class);
59+
Method selectConfigsMethod = MixinProcessor.class.getDeclaredMethod("selectConfigs", MixinEnvironment.class);
5260
selectConfigsMethod.setAccessible(true);
53-
selectConfigsMethod.invoke(transformer, MixinEnvironment.getCurrentEnvironment());
61+
selectConfigsMethod.invoke(processor, MixinEnvironment.getCurrentEnvironment());
5462

55-
Method prepareConfigsMethod = MixinTransformer.class.getDeclaredMethod("prepareConfigs", MixinEnvironment.class);
63+
Method prepareConfigsMethod = MixinProcessor.class.getDeclaredMethod("prepareConfigs", MixinEnvironment.class);
5664
prepareConfigsMethod.setAccessible(true);
57-
prepareConfigsMethod.invoke(transformer, MixinEnvironment.getCurrentEnvironment());
65+
prepareConfigsMethod.invoke(processor, MixinEnvironment.getCurrentEnvironment());
5866
} catch (ReflectiveOperationException e) {
5967
throw new RuntimeException(e);
6068
}

src/main/java/org/dimdev/vanillafix/profiler/mixins/client/MixinMinecraft.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import net.minecraft.util.text.TextComponentTranslation;
1212
import org.dimdev.vanillafix.profiler.IPatchedMinecraftServer;
1313
import org.lwjgl.input.Keyboard;
14-
import org.spongepowered.asm.lib.Opcodes;
14+
import org.objectweb.asm.Opcodes;
1515
import org.spongepowered.asm.mixin.Final;
1616
import org.spongepowered.asm.mixin.Mixin;
1717
import org.spongepowered.asm.mixin.Shadow;

0 commit comments

Comments
 (0)