aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMy-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com>2021-09-10 01:06:05 -0400
committerMy-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com>2021-09-10 01:06:17 -0400
commitd37af6c6ccfa41c7034ce1227ea34f5430d1d259 (patch)
tree83ec39f0ea910c42762b902a9ac6dd1833aebdf8 /src
parent6b70fb5c01c24caadca32845b9aec05a8b0bb55e (diff)
downloadSkytilsMod-d37af6c6ccfa41c7034ce1227ea34f5430d1d259.tar.gz
SkytilsMod-d37af6c6ccfa41c7034ce1227ea34f5430d1d259.tar.bz2
SkytilsMod-d37af6c6ccfa41c7034ce1227ea34f5430d1d259.zip
totally didnt spend 3 hours on this simple thing lol
Diffstat (limited to 'src')
-rw-r--r--src/main/java/skytils/skytilsmod/mixins/transformers/gui/MixinGuiNewChat.java24
-rw-r--r--src/main/kotlin/skytils/skytilsmod/asm/transformers/SplashProgressTransformer.kt2
2 files changed, 21 insertions, 5 deletions
diff --git a/src/main/java/skytils/skytilsmod/mixins/transformers/gui/MixinGuiNewChat.java b/src/main/java/skytils/skytilsmod/mixins/transformers/gui/MixinGuiNewChat.java
index 2e0ddfaa..30f914b3 100644
--- a/src/main/java/skytils/skytilsmod/mixins/transformers/gui/MixinGuiNewChat.java
+++ b/src/main/java/skytils/skytilsmod/mixins/transformers/gui/MixinGuiNewChat.java
@@ -18,14 +18,17 @@
package skytils.skytilsmod.mixins.transformers.gui;
-import net.minecraft.client.gui.FontRenderer;
-import net.minecraft.client.gui.Gui;
-import net.minecraft.client.gui.GuiNewChat;
-import net.minecraft.client.gui.GuiUtilRenderComponents;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.*;
import net.minecraft.util.IChatComponent;
+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.Redirect;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
import skytils.skytilsmod.features.impl.handlers.ChatTabs;
import java.util.Collections;
@@ -34,6 +37,13 @@ import java.util.List;
@Mixin(value = GuiNewChat.class, priority = 999)
public abstract class MixinGuiNewChat extends Gui {
+ @Shadow @Final private Minecraft mc;
+
+ @Shadow private int scrollPos;
+
+ @Shadow
+ public abstract int getLineCount();
+
@Redirect(method = "setChatLine", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiUtilRenderComponents;splitText(Lnet/minecraft/util/IChatComponent;ILnet/minecraft/client/gui/FontRenderer;ZZ)Ljava/util/List;"))
private List<IChatComponent> filterDrawnTextComponents(IChatComponent p_178908_0_, int p_178908_1_, FontRenderer p_178908_2_, boolean p_178908_3_, boolean p_178908_4_) {
return ChatTabs.INSTANCE.shouldAllow(p_178908_0_) ? GuiUtilRenderComponents.splitText(p_178908_0_, p_178908_1_, p_178908_2_, p_178908_3_, p_178908_4_) : Collections.emptyList();
@@ -43,4 +53,10 @@ public abstract class MixinGuiNewChat extends Gui {
private String printFormattedText(IChatComponent iChatComponent) {
return iChatComponent.getFormattedText();
}
+
+ @Inject(method = "getChatComponent", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/GuiNewChat;scrollPos:I"), cancellable = true, locals = LocalCapture.CAPTURE_FAILSOFT)
+ private void stopOutsideWindow(int mouseX, int mouseY, CallbackInfoReturnable<IChatComponent> cir, ScaledResolution scaledresolution, int i, float f, int j, int k, int l) {
+ int line = k / mc.fontRendererObj.FONT_HEIGHT + scrollPos;
+ if (line >= getLineCount()) cir.setReturnValue(null);
+ }
}
diff --git a/src/main/kotlin/skytils/skytilsmod/asm/transformers/SplashProgressTransformer.kt b/src/main/kotlin/skytils/skytilsmod/asm/transformers/SplashProgressTransformer.kt
index bfda8f2c..e6d04480 100644
--- a/src/main/kotlin/skytils/skytilsmod/asm/transformers/SplashProgressTransformer.kt
+++ b/src/main/kotlin/skytils/skytilsmod/asm/transformers/SplashProgressTransformer.kt
@@ -31,7 +31,7 @@ fun injectSplashProgressTransformer() = modify("net.minecraftforge.fml.client.Sp
findMethod("start", "()V").apply {
val v = localVariables.find {
it.name == "forgeLoc" && it.desc == "Lnet/minecraft/util/ResourceLocation;"
- } ?: return@modify
+ } ?: return@modify println("unable to find localvar")
var index = -1
for (insn in instructions) {
if (insn is MethodInsnNode) {