diff options
author | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2021-12-22 13:21:40 +0700 |
---|---|---|
committer | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2021-12-22 13:21:40 +0700 |
commit | 9a4918e4f18d07e7ddbe6278371d6d36ac25d8cf (patch) | |
tree | 60650f056ca1cbb8f4d488bf35ce5619bdbd8594 /src/main/java/com/raeids/stratus | |
parent | 136710660fbcf27e33a53723024203b2a7b25dae (diff) | |
download | Chatting-9a4918e4f18d07e7ddbe6278371d6d36ac25d8cf.tar.gz Chatting-9a4918e4f18d07e7ddbe6278371d6d36ac25d8cf.tar.bz2 Chatting-9a4918e4f18d07e7ddbe6278371d6d36ac25d8cf.zip |
fix chat screenshot feature with patcher and halfway with betterchat
Diffstat (limited to 'src/main/java/com/raeids/stratus')
-rw-r--r-- | src/main/java/com/raeids/stratus/mixin/GuiIngameForgeMixin.java | 2 | ||||
-rw-r--r-- | src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java | 18 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiIngameForgeMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiIngameForgeMixin.java index 1e09a8f..4445f99 100644 --- a/src/main/java/com/raeids/stratus/mixin/GuiIngameForgeMixin.java +++ b/src/main/java/com/raeids/stratus/mixin/GuiIngameForgeMixin.java @@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArgs; import org.spongepowered.asm.mixin.injection.invoke.arg.Args; -@Mixin(value = GuiIngameForge.class, remap = false) +@Mixin(value = GuiIngameForge.class, remap = false, priority = Integer.MIN_VALUE) public class GuiIngameForgeMixin implements GuiIngameForgeHook { private int stratus$x = 0; private int stratus$y = 0; diff --git a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java index 2f4a13a..86db154 100644 --- a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java +++ b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java @@ -1,19 +1,19 @@ package com.raeids.stratus.mixin; +import club.sk1er.patcher.config.PatcherConfig; +import com.llamalad7.betterchat.BetterChat; import com.raeids.stratus.Stratus; import com.raeids.stratus.config.StratusConfig; import com.raeids.stratus.hook.ChatSearchingKt; import com.raeids.stratus.hook.ChatTabs; -import com.raeids.stratus.hook.GuiIngameForgeHook; import com.raeids.stratus.hook.GuiNewChatHook; -import gg.essential.universal.UResolution; +import gg.essential.universal.UMouse; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.*; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.IChatComponent; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Mouse; import org.spongepowered.asm.lib.Opcodes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -69,6 +69,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { : linesToDraw; } + //TODO: fix with betterchat @ModifyArgs(method = "drawChat", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiNewChat;drawRect(IIIII)V"), slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/util/MathHelper;clamp_double(DDD)D"), to = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;enableBlend()V"))) private void captureDrawRect(Args args) { int left = args.get(0); @@ -76,10 +77,11 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { int right = args.get(2); int bottom = args.get(3); if (mc.currentScreen instanceof GuiChat) { - final int k1 = Mouse.getX() * UResolution.getScaledWidth() / this.mc.displayWidth; - final int l1 = UResolution.getScaledHeight() - Mouse.getY() * UResolution.getScaledHeight() / this.mc.displayHeight - 1; - int mouseX = k1 - ((GuiIngameForgeHook) mc.ingameGUI).getX() - 2; - int mouseY = l1 - ((GuiIngameForgeHook) mc.ingameGUI).getY() - 20; + float f = this.getChatScale(); + int mouseX = MathHelper.floor_double(UMouse.getScaledX()) - (3 + (Stratus.INSTANCE.isBetterChat() ? BetterChat.getSettings().xOffset : 0)); + int mouseY = MathHelper.floor_double(UMouse.getScaledY()) - (27 + (Stratus.INSTANCE.isBetterChat() ? BetterChat.getSettings().yOffset : 0) + (Stratus.INSTANCE.isPatcher() && PatcherConfig.chatPosition ? 12 : 0)); + mouseX = MathHelper.floor_float((float)mouseX / f); + mouseY = -(MathHelper.floor_float((float)mouseY / f)); //WHY DO I NEED TO DO THIS if (mouseX >= left && mouseY < bottom && mouseX < right + 9 && mouseY >= top) { stratus$shouldCopy = true; drawCopyChatBox(right, top); @@ -137,7 +139,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook { ScaledResolution scaledresolution = new ScaledResolution(this.mc); int i = scaledresolution.getScaleFactor(); float f = this.getChatScale(); - int k = mouseY / i - 27; + int k = mouseY / i - (27 + (Stratus.INSTANCE.isBetterChat() ? BetterChat.getSettings().yOffset : 0) + (Stratus.INSTANCE.isPatcher() && PatcherConfig.chatPosition ? 12 : 0)); k = MathHelper.floor_float((float) k / f); if (k >= 0) { |