From 1266857add2c1705f57141bfd4feacfc71bcc712 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 31 Dec 2018 17:42:05 +0800 Subject: Fixed Crash + Downgraded Loom --- .../mixins/MixinBrewingRecipeRegistry.java | 1 - .../me/shedaniel/mixins/MixinContainerGui.java | 93 ++++++++++++++++++++ .../mixins/MixinCreativePlayerInventoryGui.java | 54 ++++++++++++ .../me/shedaniel/mixins/MixinGuiContainer.java | 98 ---------------------- .../mixins/MixinGuiContainerCreative.java | 93 -------------------- .../java/me/shedaniel/mixins/SettingsMixin.java | 8 +- 6 files changed, 151 insertions(+), 196 deletions(-) create mode 100755 src/main/java/me/shedaniel/mixins/MixinContainerGui.java create mode 100644 src/main/java/me/shedaniel/mixins/MixinCreativePlayerInventoryGui.java delete mode 100755 src/main/java/me/shedaniel/mixins/MixinGuiContainer.java delete mode 100644 src/main/java/me/shedaniel/mixins/MixinGuiContainerCreative.java (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java b/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java index 606634ebb..bc36c8315 100644 --- a/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java +++ b/src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java @@ -15,7 +15,6 @@ public class MixinBrewingRecipeRegistry { @Inject(method = "registerPotionRecipe", at = @At("RETURN")) private static void registerPotionRecipe(Potion potion_1, Item item_1, Potion potion_2, CallbackInfo info) { - System.out.println("a"); Core.getListeners(PotionCraftingAdder.class).forEach(potionCraftingAdder -> potionCraftingAdder.addPotionRecipe(potion_1, item_1, potion_2)); } diff --git a/src/main/java/me/shedaniel/mixins/MixinContainerGui.java b/src/main/java/me/shedaniel/mixins/MixinContainerGui.java new file mode 100755 index 000000000..a645bdd2d --- /dev/null +++ b/src/main/java/me/shedaniel/mixins/MixinContainerGui.java @@ -0,0 +1,93 @@ +package me.shedaniel.mixins; + +import me.shedaniel.Core; +import me.shedaniel.listenerdefinitions.*; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.ContainerGui; +import net.minecraft.client.gui.Gui; +import net.minecraft.container.Slot; +import net.minecraft.item.ItemStack; +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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +/** + * Created by James on 7/27/2018. + */ +@Mixin(ContainerGui.class) +public abstract class MixinContainerGui extends Gui implements IMixinContainerGui { + @Shadow + protected Slot focusedSlot; + @Shadow + private ItemStack field_2782; //draggedStack + @Shadow + protected int left; + @Shadow + protected int top; + @Shadow + protected int containerWidth; + @Shadow + protected int containerHeight; + + @Inject(method = "draw(IIF)V", at = @At("RETURN")) + public void draw(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_, CallbackInfo ci) { + Core.getListeners(DrawContainer.class).forEach(drawContainer -> + drawContainer.draw(p_drawScreen_1_, p_drawScreen_2_, p_drawScreen_3_, (ContainerGui) MinecraftClient.getInstance().currentGui)); + } + + @Inject(method = "mouseClicked(DDI)Z", at = @At("HEAD"), cancellable = true) + private void mouseClick(double p_mouseClicked_1_, double p_mouseClicked_3_, int p_mouseClicked_5_, CallbackInfoReturnable ci) { + boolean handled = false; + for(GuiCickListener listener : Core.getListeners(GuiCickListener.class)) { + if (listener.onClick((int) p_mouseClicked_1_, (int) p_mouseClicked_3_, p_mouseClicked_5_)) { + ci.setReturnValue(true); + handled = true; + } + } + if (handled) + ci.cancel(); + } + + @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true) + private void onKeyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_, CallbackInfoReturnable ci) { + boolean handled = false; + for(GuiKeyDown listener : Core.getListeners(GuiKeyDown.class)) { + if (listener.keyDown(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_)) + handled = true; + } + if (handled) { + ci.setReturnValue(handled); + ci.cancel(); + } + } + + public boolean mouseScrolled(double p_mouseScrolled_1_) { + for(MouseScrollListener listener : Core.getListeners(MouseScrollListener.class)) + if (listener.mouseScrolled(p_mouseScrolled_1_)) + return true; + return super.mouseScrolled(p_mouseScrolled_1_); + } + + @Override + public ItemStack getDraggedStack() { + return field_2782; + } + + @Override + public int getGuiLeft() { + return left; + } + + @Override + public int getXSize() { + return containerWidth; + } + + @Override + public Slot getHoveredSlot() { + return focusedSlot; + } +} 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 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 ci) { + if (!this.doRenderScrollBar()) { + ci.setReturnValue(super.mouseScrolled(p_mouseScrolled_1_)); + ci.cancel(); + } + } + +} diff --git a/src/main/java/me/shedaniel/mixins/MixinGuiContainer.java b/src/main/java/me/shedaniel/mixins/MixinGuiContainer.java deleted file mode 100755 index 69adb45ad..000000000 --- a/src/main/java/me/shedaniel/mixins/MixinGuiContainer.java +++ /dev/null @@ -1,98 +0,0 @@ -package me.shedaniel.mixins; - -import me.shedaniel.Core; -import me.shedaniel.listenerdefinitions.*; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.ContainerGui; -import net.minecraft.client.gui.GuiEventListener; -import net.minecraft.container.Slot; -import net.minecraft.item.ItemStack; -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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -/** - * Created by James on 7/27/2018. - */ -@Mixin(ContainerGui.class) -public abstract class MixinGuiContainer implements GuiEventListener, IMixinContainerGui { - @Shadow - protected Slot focusedSlot; - @Shadow - private ItemStack field_2782; //draggedStack - @Shadow - protected int left; - @Shadow - protected int top; - @Shadow - protected int containerWidth; - @Shadow - protected int containerHeight; - - @Inject(method = "draw", at = @At("RETURN")) - private void onRender(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_, CallbackInfo ci) { - for(DrawContainer listener : Core.getListeners(DrawContainer.class)) { - listener.draw(p_drawScreen_1_, p_drawScreen_2_, p_drawScreen_3_, (ContainerGui) MinecraftClient.getInstance().currentGui); - } - } - - @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void onMouseClicked(double p_mouseClicked_1_, double p_mouseClicked_3_, int p_mouseClicked_5_, CallbackInfoReturnable ci) { - boolean handled = false; - for(GuiCickListener listener : Core.getListeners(GuiCickListener.class)) { - if (listener.onClick((int) p_mouseClicked_1_, (int) p_mouseClicked_3_, p_mouseClicked_5_)) { - ci.setReturnValue(true); - handled = true; - } - } - if (handled) - ci.cancel(); - - } - - @Inject(method = "keyPressed", at = @At("HEAD"), cancellable = true) - private void onKeyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_, CallbackInfoReturnable ci) { - boolean handled = false; - for(GuiKeyDown listener : Core.getListeners(GuiKeyDown.class)) { - if (listener.keyDown(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_)) - handled = true; - } - if (handled) { - ci.setReturnValue(handled); - ci.cancel(); - } - } - - public boolean mouseScrolled(double p_mouseScrolled_1_) { - boolean handled = false; - for(MouseScrollListener listener : Core.getListeners(MouseScrollListener.class)) { - if (listener.mouseScrolled(p_mouseScrolled_1_)) { - handled = true; - } - } - return handled; - } - - @Override - public ItemStack getDraggedStack() { - return field_2782; - } - - @Override - public int getGuiLeft() { - return left; - } - - @Override - public int getXSize() { - return containerWidth; - } - - @Override - public Slot getHoveredSlot() { - return focusedSlot; - } -} diff --git a/src/main/java/me/shedaniel/mixins/MixinGuiContainerCreative.java b/src/main/java/me/shedaniel/mixins/MixinGuiContainerCreative.java deleted file mode 100644 index 455266c8d..000000000 --- a/src/main/java/me/shedaniel/mixins/MixinGuiContainerCreative.java +++ /dev/null @@ -1,93 +0,0 @@ -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 net.minecraft.util.math.MathHelper; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Objects; - -@Mixin(CreativePlayerInventoryGui.class) -public abstract class MixinGuiContainerCreative extends AbstractPlayerInventoryGui { - - @Shadow - private boolean field_2888; - - @Shadow - public abstract int method_2469(); - - @Shadow - protected abstract void setSelectedTab(ItemGroup itemGroup_1); - - @Shadow - protected abstract boolean method_2470(Slot slot_1); - - @Shadow - private TextFieldWidget searchBox; - - @Shadow - protected abstract void method_2464(); - - @Shadow - protected abstract boolean doRenderScrollBar(); - - @Shadow - private float scrollPosition; - - public MixinGuiContainerCreative(Container container_1) { - super(container_1); - } - - @Overwrite - public boolean keyPressed(int p_keyPressed_1_, int p_keyPressed_2_, int p_keyPressed_3_) { - this.field_2888 = false; - if (method_2469() != ItemGroup.SEARCH.getId()) { - if (method_2469() != ItemGroup.INVENTORY.getId()) { - if (this.client.options.keyChat.matches(p_keyPressed_1_, p_keyPressed_2_)) { - this.field_2888 = true; - this.setSelectedTab(ItemGroup.SEARCH); - return true; - } - } else for(GuiKeyDown listener : Core.getListeners(GuiKeyDown.class)) - if (listener.keyDown(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_)) - return true; - } else { - boolean flag = !this.method_2470(this.focusedSlot) || this.focusedSlot != null && this.focusedSlot.hasStack(); - if (flag && this.handleHotbarKeyPressed(p_keyPressed_1_, p_keyPressed_2_)) { - this.field_2888 = true; - return true; - } else { - String s = this.searchBox.getText(); - - if (this.searchBox.keyPressed(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_)) { - if (!Objects.equals(s, this.searchBox.getText())) - this.method_2464(); - return true; - } - } - } - return super.keyPressed(p_keyPressed_1_, p_keyPressed_2_, p_keyPressed_3_); - } - - @Overwrite - public boolean mouseScrolled(double p_mouseScrolled_1_) { - if (!this.doRenderScrollBar()) { - return super.mouseScrolled(p_mouseScrolled_1_); - } else { - int i = (((CreativePlayerInventoryGui.CreativeContainer) this.container).itemList.size() + 9 - 1) / 9 - 5; - this.scrollPosition = (float) ((double) this.scrollPosition - p_mouseScrolled_1_ / (double) i); - this.scrollPosition = MathHelper.clamp(this.scrollPosition, 0.0F, 1.0F); - ((CreativePlayerInventoryGui.CreativeContainer) this.container).method_2473(this.scrollPosition); - return true; - } - } - -} diff --git a/src/main/java/me/shedaniel/mixins/SettingsMixin.java b/src/main/java/me/shedaniel/mixins/SettingsMixin.java index bc7408d6e..5182f5ccd 100755 --- a/src/main/java/me/shedaniel/mixins/SettingsMixin.java +++ b/src/main/java/me/shedaniel/mixins/SettingsMixin.java @@ -19,8 +19,8 @@ import java.util.List; @Mixin(GameOptions.class) public class SettingsMixin { - @Shadow - public KeyBinding[] keyBindings; + + @Shadow public KeyBinding[] keysAll; public SettingsMixin() { System.out.println("loaded"); @@ -34,9 +34,9 @@ public class SettingsMixin { private void processNewBindings(List newBindings) { List toAdd = new ArrayList<>(); toAdd.addAll(newBindings); - for(KeyBinding keyBinding : keyBindings) + for(KeyBinding keyBinding : keysAll) toAdd.add(keyBinding); - keyBindings = (KeyBinding[]) toAdd.toArray(new KeyBinding[0]); + keysAll = (KeyBinding[]) toAdd.toArray(new KeyBinding[0]); } } -- cgit