diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2018-12-31 17:42:05 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2018-12-31 17:42:05 +0800 |
| commit | 1266857add2c1705f57141bfd4feacfc71bcc712 (patch) | |
| tree | 4696fabf49f99728fc7ae066d151795ec5fd9bb2 /src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java | |
| parent | aaa031a36408b96b6eef5351fd60e979112f0cea (diff) | |
| download | RoughlyEnoughItems-1266857add2c1705f57141bfd4feacfc71bcc712.tar.gz RoughlyEnoughItems-1266857add2c1705f57141bfd4feacfc71bcc712.tar.bz2 RoughlyEnoughItems-1266857add2c1705f57141bfd4feacfc71bcc712.zip | |
Fixed Crash + Downgraded Loom
Diffstat (limited to 'src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java')
| -rw-r--r-- | src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java b/src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java new file mode 100644 index 000000000..d9cfddfdd --- /dev/null +++ b/src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java @@ -0,0 +1,54 @@ +package me.shedaniel.mixins; + +import me.shedaniel.Core; +import me.shedaniel.listenerdefinitions.GuiKeyDown; +import net.minecraft.client.gui.ingame.AbstractPlayerInventoryGui; +import net.minecraft.client.gui.ingame.CreativePlayerInventoryGui; +import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.container.Container; +import net.minecraft.container.Slot; +import net.minecraft.item.ItemGroup; +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.CallbackInfoReturnable; + +@Mixin(CreativePlayerInventoryGui.class) +public abstract class MixinCreativePlayerInventoryGui extends AbstractPlayerInventoryGui { + + @Shadow + public abstract int method_2469(); + + @Shadow + protected abstract boolean doRenderScrollBar(); + + public MixinCreativePlayerInventoryGui(Container container_1) { + super(container_1); + } + + @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true) + public void keyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_, CallbackInfoReturnable<Boolean> ci) { + boolean handled = false; + if (method_2469() != ItemGroup.SEARCH.getId()) { + if (method_2469() == ItemGroup.INVENTORY.getId()) { + for(GuiKeyDown listener : Core.getListeners(GuiKeyDown.class)) + if (listener.keyDown(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_)) { + ci.setReturnValue(true); + handled = true; + } + } + } + if (handled) + ci.cancel(); + } + + @Inject(method = "mouseScrolled(D)Z", at = @At("HEAD"), cancellable = true) + public void mouseScrolled(double p_mouseScrolled_1_, CallbackInfoReturnable<Boolean> ci) { + if (!this.doRenderScrollBar()) { + ci.setReturnValue(super.mouseScrolled(p_mouseScrolled_1_)); + ci.cancel(); + } + } + +} |
