aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
diff options
context:
space:
mode:
authorThatGravyBoat <thatgravyboat@gmail.com>2021-12-26 01:31:48 -0330
committerGitHub <noreply@github.com>2021-12-26 12:01:48 +0700
commit8f8d8e2dbe795309b69162bc3760dd4789fc6b73 (patch)
tree27f0df9ea4b3f793e4ad23e105330db97c2125b9 /src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
parent4927d585ec72cb045a70718423228fa2cf55d071 (diff)
downloadChatting-8f8d8e2dbe795309b69162bc3760dd4789fc6b73.tar.gz
Chatting-8f8d8e2dbe795309b69162bc3760dd4789fc6b73.tar.bz2
Chatting-8f8d8e2dbe795309b69162bc3760dd4789fc6b73.zip
improve search button display and screenshotting, and fix tooltips (#2)
Diffstat (limited to 'src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java')
-rw-r--r--src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
index 8d2602b..09c464b 100644
--- a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
+++ b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
@@ -1,12 +1,12 @@
package com.raeids.stratus.mixin;
-import com.google.common.collect.Lists;
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.GuiNewChatHook;
import com.raeids.stratus.hook.ModCompatHooks;
+import com.raeids.stratus.utils.RenderHelper;
import gg.essential.universal.UMouse;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.*;
@@ -15,7 +15,6 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
-import net.minecraftforge.fml.client.config.GuiUtils;
import org.spongepowered.asm.lib.Opcodes;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@@ -25,6 +24,9 @@ import org.spongepowered.asm.mixin.injection.*;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.invoke.arg.Args;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.image.BufferedImage;
import java.util.List;
@Mixin(value = GuiNewChat.class, priority = Integer.MIN_VALUE)
@@ -51,14 +53,6 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
@Unique private static final ResourceLocation COPY = new ResourceLocation("stratus:copy.png");
- @Unique private static final List<String> COPY_TOOLTIP = Lists.newArrayList(
- "\u00A73\u00A7l\u00A7nCopy To Clipboard",
- "\u00A7lNORMAL CLICK\u00A7r - Full Message",
- "\u00A7lCTRL CLICK\u00A7r - Single Line",
- "",
- "\u00A73\u00A7l\u00A7nModifiers",
- "\u00A7lALT\u00A7r - Formatting Codes");
-
@Inject(method = "printChatMessageWithOptionalDeletion", at = @At("HEAD"), cancellable = true)
private void handlePrintChatMessage(IChatComponent chatComponent, int chatLineId, CallbackInfo ci) {
handleChatTabMessage(chatComponent, chatLineId, mc.ingameGUI.getUpdateCounter(), false, ci);
@@ -104,7 +98,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
mouseY = -(MathHelper.floor_float((float)mouseY / f)); //WHY DO I NEED TO DO THIS
if (mouseX >= (left + (Stratus.INSTANCE.isBetterChat() ? ModCompatHooks.getXOffset() : 0)) && mouseY < bottom && mouseX < (right + 9 + (Stratus.INSTANCE.isBetterChat() ? ModCompatHooks.getXOffset() : 0)) && mouseY >= top) {
stratus$shouldCopy = true;
- drawCopyChatBox(right, top, mouseX, mouseY);
+ drawCopyChatBox(right, top);
}
}
}
@@ -150,7 +144,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
}
}
- private void drawCopyChatBox(int right, int top, int mouseX, int mouseY) {
+ private void drawCopyChatBox(int right, int top) {
stratus$chatCheck = true;
GlStateManager.enableRescaleNormal();
GlStateManager.enableBlend();
@@ -166,7 +160,6 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
stratus$right = right;
Gui.drawModalRectWithCustomSizedTexture(right, top, 0f, 0f, 9, 9, 9, 9);
- if (mouseX >= right) GuiUtils.drawHoveringText(COPY_TOOLTIP, mouseX, mouseY, mc.currentScreen.width, mc.currentScreen.height, 300, mc.fontRendererObj);
GlStateManager.disableAlpha();
GlStateManager.disableRescaleNormal();
GlStateManager.disableLighting();
@@ -174,7 +167,7 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
}
@Override
- public String getStratusChatComponent(int mouseY) {
+ public Transferable getStratusChatComponent(int mouseY) {
if (this.getChatOpen()) {
ScaledResolution scaledresolution = new ScaledResolution(this.mc);
int i = scaledresolution.getScaleFactor();
@@ -190,9 +183,17 @@ public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
if (i1 >= 0 && i1 < this.drawnChatLines.size()) {
ChatLine subLine = this.drawnChatLines.get(i1);
- ChatLine line = GuiScreen.isCtrlKeyDown() ? subLine : this.getFullMessage(subLine);
+ ChatLine fullLine = this.getFullMessage(subLine);
+ if (GuiScreen.isShiftKeyDown()) {
+ if (fullLine != null) {
+ BufferedImage image = Stratus.INSTANCE.screenshotLine(fullLine);
+ if (image != null) RenderHelper.INSTANCE.copyBufferedImageToClipboard(image);
+ }
+ return null;
+ }
+ ChatLine line = GuiScreen.isCtrlKeyDown() ? subLine : fullLine;
String message = line == null ? "Could not find chat message." : line.getChatComponent().getFormattedText();
- return GuiScreen.isAltKeyDown() ? message : EnumChatFormatting.getTextWithoutFormattingCodes(message);
+ return new StringSelection(GuiScreen.isAltKeyDown() ? message : EnumChatFormatting.getTextWithoutFormattingCodes(message));
}
}