Created
February 18, 2021 00:19
-
-
Save hube12/8fc0806bc045a660ce78d19b93c8bbf9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.seedfinding.neil.mixin; | |
import net.minecraft.client.gui.screen.PresetsScreen; | |
import net.minecraft.text.Text; | |
import org.spongepowered.asm.mixin.Final; | |
import org.spongepowered.asm.mixin.Mixin; | |
import org.spongepowered.asm.mixin.Shadow; | |
import org.spongepowered.asm.mixin.injection.At; | |
import org.spongepowered.asm.mixin.injection.Inject; | |
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | |
import java.util.List; | |
@Mixin(PresetsScreen.class) | |
public class AddPresets { | |
@Mixin(targets = {"net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset" }) | |
static class SuperflatPreset { | |
@Final | |
@Shadow | |
public Text name; | |
} | |
@Final | |
@Shadow | |
private static List<SuperflatPreset> PRESETS; // this is done because net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset ain't accessible | |
@Inject(method = "<init>*", at = @At("RETURN")) | |
public void sortList(CallbackInfo ci) { | |
System.out.println(PRESETS.size()); | |
System.out.println(PRESETS.get(0).name); | |
} | |
} |
@Mixin(PresetsScreen.class)
public class AddPresets {
@Mixin(targets = {"net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset"})
public interface SuperflatPreset {
@Accessor
Text getName();
}
@Final
@Shadow
private static List<?> PRESETS; // this is done because net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset ain't accessible
// private static List<SuperflatPreset> PRESETS; // this is done because net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset ain't accessible
//
@Inject(method = "<init>*", at = @At("RETURN"))
public void sortList(CallbackInfo ci) {
System.out.println(PRESETS.size());
System.out.println(((SuperflatPreset) PRESETS.get(0)).getName());
}
Caused by: java.lang.IllegalAccessError: class net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset cannot access its superinterface com.seedfinding.neil.mixin.AddPresets$SuperflatPreset (net.minecraft.client.gui.screen.PresetsScreen$SuperflatPreset and com.seedfinding.neil.mixin.AddPresets$SuperflatPreset are in unnamed module of loader net.fabricmc.loader.launch.knot.KnotClassLoader @67545b57)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
net/minecraft/client/gui/screen/PresetsScreen.handler$zdf000$sortList(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V @29: getfield
Reason:
Type 'net/minecraft/client/gui/screen/PresetsScreen$SuperflatPreset$1817b920e0c843f1995c7fcce2313f62' (current frame, stack[1]) is not assignable to 'net/minecraft/client/gui/screen/PresetsScreen'
Current Frame:
bci: @29
flags: { }
locals: { 'net/minecraft/client/gui/screen/PresetsScreen', 'org/spongepowered/asm/mixin/injection/callback/CallbackInfo' }
stack: { 'java/io/PrintStream', 'net/minecraft/client/gui/screen/PresetsScreen$SuperflatPreset$1817b920e0c843f1995c7fcce2313f62' }
Bytecode:
0000000: b203 49b2 023d b901 5901 00b6 034e b203
0000010: 49b2 023d 03b9 0160 0200 c003 50b4 0353
0000020: b603 56b1