summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/mixins
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-14 12:06:07 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-14 12:06:07 +0200
commita5c540d977a3510812cac7fac340fe17e7d10983 (patch)
treedbbe5b208e6871378a10868d1206d1d78beeb950 /src/main/java/at/hannibal2/skyhanni/mixins
parentd6c99ed30a2b1cb228b2fdc3d3178cf1f369dc53 (diff)
downloadskyhanni-a5c540d977a3510812cac7fac340fe17e7d10983.tar.gz
skyhanni-a5c540d977a3510812cac7fac340fe17e7d10983.tar.bz2
skyhanni-a5c540d977a3510812cac7fac340fe17e7d10983.zip
renamed mod to SkyHanni
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/mixins')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/MixinGuiContainer.java48
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/MixinNetHandlerPlayClient.java24
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/MixinNetworkManager.java20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderItem.java41
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderManager.java19
5 files changed, 152 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/MixinGuiContainer.java b/src/main/java/at/hannibal2/skyhanni/mixins/MixinGuiContainer.java
new file mode 100644
index 000000000..18997c33b
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/MixinGuiContainer.java
@@ -0,0 +1,48 @@
+package at.hannibal2.skyhanni.mixins;
+
+import at.hannibal2.skyhanni.mixinhooks.GuiContainerHook;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.inventory.Slot;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Unique;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(GuiContainer.class)
+public abstract class MixinGuiContainer extends GuiScreen {
+
+ @Unique
+ private final GuiContainerHook hook = new GuiContainerHook(this);
+
+ @Inject(method = "keyTyped", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/entity/EntityPlayerSP;closeScreen()V", shift = At.Shift.BEFORE), cancellable = true)
+ private void closeWindowPressed(CallbackInfo ci) {
+ hook.closeWindowPressed(ci);
+ }
+
+ @Inject(method = "drawScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;color(FFFF)V", ordinal = 1))
+ private void backgroundDrawn(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) {
+ hook.backgroundDrawn(mouseX, mouseY, partialTicks, ci);
+ }
+
+ @Inject(method = "drawScreen", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/inventory/GuiContainer;drawGuiContainerForegroundLayer(II)V", shift = At.Shift.AFTER))
+ private void onForegroundDraw(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) {
+ hook.foregroundDrawn(mouseX, mouseY, partialTicks, ci);
+ }
+
+ @Inject(method = "drawSlot", at = @At("HEAD"), cancellable = true)
+ private void onDrawSlot(Slot slot, CallbackInfo ci) {
+ hook.onDrawSlot(slot, ci);
+ }
+
+ @Inject(method = "drawSlot", at = @At("RETURN"), cancellable = true)
+ private void onDrawSlotPost(Slot slot, CallbackInfo ci) {
+ hook.onDrawSlotPost(slot, ci);
+ }
+
+ @Inject(method = "handleMouseClick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/PlayerControllerMP;windowClick(IIIILnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack;"), cancellable = true)
+ private void onMouseClick(Slot slot, int slotId, int clickedButton, int clickType, CallbackInfo ci) {
+ hook.onMouseClick(slot, slotId, clickedButton, clickType, ci);
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/MixinNetHandlerPlayClient.java b/src/main/java/at/hannibal2/skyhanni/mixins/MixinNetHandlerPlayClient.java
new file mode 100644
index 000000000..3e91bdfe3
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/MixinNetHandlerPlayClient.java
@@ -0,0 +1,24 @@
+package at.hannibal2.skyhanni.mixins;
+
+import at.hannibal2.skyhanni.mixinhooks.NetHandlerPlayClientHookKt;
+import net.minecraft.client.multiplayer.WorldClient;
+import net.minecraft.client.network.NetHandlerPlayClient;
+import net.minecraft.network.Packet;
+import net.minecraft.network.play.INetHandlerPlayClient;
+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;
+
+@Mixin(value = NetHandlerPlayClient.class, priority = 1001)
+public abstract class MixinNetHandlerPlayClient implements INetHandlerPlayClient {
+
+ @Shadow
+ private WorldClient clientWorldController;
+
+ @Inject(method = "addToSendQueue", at = @At("HEAD"), cancellable = true)
+ private void onSendPacket(Packet<?> packet, CallbackInfo ci) {
+ NetHandlerPlayClientHookKt.onSendPacket(packet, ci);
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/MixinNetworkManager.java b/src/main/java/at/hannibal2/skyhanni/mixins/MixinNetworkManager.java
new file mode 100644
index 000000000..83f7f51bb
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/MixinNetworkManager.java
@@ -0,0 +1,20 @@
+package at.hannibal2.skyhanni.mixins;
+
+import at.hannibal2.skyhanni.mixinhooks.NetworkManagerHookKt;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import net.minecraft.network.NetworkManager;
+import net.minecraft.network.Packet;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(value = NetworkManager.class, priority = 1001)
+public abstract class MixinNetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
+
+ @Inject(method = "channelRead0", at = @At("HEAD"), cancellable = true)
+ private void onReceivePacket(ChannelHandlerContext context, Packet<?> packet, CallbackInfo ci) {
+ NetworkManagerHookKt.onReceivePacket(context, packet, ci);
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderItem.java b/src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderItem.java
new file mode 100644
index 000000000..e2dc8926c
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderItem.java
@@ -0,0 +1,41 @@
+package at.hannibal2.skyhanni.mixins;
+
+import at.hannibal2.skyhanni.mixinhooks.RenderItemHookKt;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.item.ItemStack;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(RenderItem.class)
+public abstract class MixinRenderItem {
+
+ // @Inject(method = "renderItemIntoGUI", at = @At("HEAD"))
+ // private void renderRarity(ItemStack stack, int x, int y, CallbackInfo ci) {
+ // RenderItemHookKt.renderRarity(stack, x, y, ci);
+ // }
+
+ @Inject(method = "renderItemOverlayIntoGUI", at = @At("RETURN"))
+ private void renderItemOverlayPost(FontRenderer fr, ItemStack stack, int xPosition, int yPosition, String text, CallbackInfo ci) {
+ RenderItemHookKt.renderItemOverlayPost(fr, stack, xPosition, yPosition, text, ci);
+ }
+
+ // @Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V", at = @At(value = "INVOKE", target = "net/minecraft/client/renderer/GlStateManager.scale(FFF)V", shift = At.Shift.AFTER))
+ // private void renderItemPre(ItemStack stack, IBakedModel model, CallbackInfo ci) {
+ // RenderItemHookKt.renderItemPre(stack, model, ci);
+ // }
+ //
+ // @Inject(method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/RenderItem;renderEffect(Lnet/minecraft/client/resources/model/IBakedModel;)V", shift = At.Shift.BEFORE), cancellable = true)
+ // private void modifyGlintRendering(ItemStack stack, IBakedModel model, CallbackInfo ci) {
+ // RenderItemHookKt.modifyGlintRendering(stack, model, ci);
+ // }
+
+ @Inject(method = "renderEffect", at = @At("HEAD"), cancellable = true)
+ public void onRenderEffect(CallbackInfo ci) {
+ if (RenderItemHookKt.getSkipGlint()) {
+ ci.cancel();
+ }
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderManager.java b/src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderManager.java
new file mode 100644
index 000000000..f57786a9b
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/MixinRenderManager.java
@@ -0,0 +1,19 @@
+package at.hannibal2.skyhanni.mixins;
+
+import at.hannibal2.skyhanni.mixinhooks.RenderManagerHookKt;
+import net.minecraft.client.renderer.culling.ICamera;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.entity.Entity;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+
+@Mixin(RenderManager.class)
+public class MixinRenderManager {
+
+ @Inject(method = "shouldRender", at = @At("HEAD"), cancellable = true)
+ private void shouldRender(Entity entityIn, ICamera camera, double camX, double camY, double camZ, CallbackInfoReturnable<Boolean> cir) {
+ RenderManagerHookKt.shouldRender(entityIn, camera, camX, camY, camZ, cir);
+ }
+}