aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
authorWyvest <45589059+Wyvest@users.noreply.github.com>2022-01-01 22:11:34 +0700
committerWyvest <45589059+Wyvest@users.noreply.github.com>2022-01-01 22:11:34 +0700
commitcc4a11c7943d9036dc71679eaa531832cd2a2f0c (patch)
treeda242580d43fa6f26f0b0b04deab82c200a5bb16 /src/main/java/com
parent856df4d08d3c392b35f256966f6263da86fdb7ab (diff)
downloadChatting-cc4a11c7943d9036dc71679eaa531832cd2a2f0c.tar.gz
Chatting-cc4a11c7943d9036dc71679eaa531832cd2a2f0c.tar.bz2
Chatting-cc4a11c7943d9036dc71679eaa531832cd2a2f0c.zip
Chattils 1.0.0
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/raeids/stratus/hook/GuiNewChatHook.java23
-rw-r--r--src/main/java/com/raeids/stratus/mixin/ClientCommandHandlerMixin.java33
-rw-r--r--src/main/java/com/raeids/stratus/mixin/EntityPlayerSPMixin.java21
-rw-r--r--src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java114
-rw-r--r--src/main/java/com/raeids/stratus/mixin/GuiNewChatAccessor.java17
-rw-r--r--src/main/java/com/raeids/stratus/mixin/GuiNewChatMapMixin.java78
-rw-r--r--src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java240
-rw-r--r--src/main/java/com/raeids/stratus/mixin/WyvtilsListenerMixin.java21
8 files changed, 0 insertions, 547 deletions
diff --git a/src/main/java/com/raeids/stratus/hook/GuiNewChatHook.java b/src/main/java/com/raeids/stratus/hook/GuiNewChatHook.java
deleted file mode 100644
index 67552c4..0000000
--- a/src/main/java/com/raeids/stratus/hook/GuiNewChatHook.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.raeids.stratus.hook;
-
-import net.minecraft.client.gui.ChatLine;
-
-import java.awt.datatransfer.Transferable;
-
-public interface GuiNewChatHook {
- int getRight();
-
- boolean shouldCopy();
-
- Transferable getStratusChatComponent(int mouseY);
-
- default ChatLine getFullMessage(ChatLine line) {
- throw new AssertionError("getFullMessage not overridden on GuiNewChat");
- }
-
- String getPrevText();
-
- void setPrevText(String prevText);
-
- int getTextOpacity();
-}
diff --git a/src/main/java/com/raeids/stratus/mixin/ClientCommandHandlerMixin.java b/src/main/java/com/raeids/stratus/mixin/ClientCommandHandlerMixin.java
deleted file mode 100644
index ecdef69..0000000
--- a/src/main/java/com/raeids/stratus/mixin/ClientCommandHandlerMixin.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import com.raeids.stratus.config.StratusConfig;
-import com.raeids.stratus.chat.ChatShortcuts;
-import kotlin.Pair;
-import net.minecraft.client.Minecraft;
-import net.minecraft.command.CommandHandler;
-import net.minecraft.command.ICommandSender;
-import net.minecraft.util.BlockPos;
-import net.minecraftforge.client.ClientCommandHandler;
-import net.minecraftforge.fml.client.FMLClientHandler;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Redirect;
-
-import java.util.List;
-
-@Mixin(value = ClientCommandHandler.class, remap = false)
-public class ClientCommandHandlerMixin extends CommandHandler {
- @Redirect(method = "autoComplete", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/client/ClientCommandHandler;getTabCompletionOptions(Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List;"))
- private List<String> addChatShortcuts(ClientCommandHandler instance, ICommandSender iCommandSender, String leftOfCursor, BlockPos blockPos) {
- Minecraft mc = FMLClientHandler.instance().getClient();
- List<String> autocompleteList = instance.getTabCompletionOptions(mc.thePlayer, leftOfCursor, mc.thePlayer.getPosition());
- if (StratusConfig.INSTANCE.getChatShortcuts()) {
- for (Pair<String, String> pair : ChatShortcuts.INSTANCE.getShortcuts()) {
- if (pair.getFirst().startsWith(leftOfCursor)) {
- autocompleteList.add(pair.getFirst());
- }
- }
- }
- return autocompleteList;
- }
-}
diff --git a/src/main/java/com/raeids/stratus/mixin/EntityPlayerSPMixin.java b/src/main/java/com/raeids/stratus/mixin/EntityPlayerSPMixin.java
deleted file mode 100644
index c605511..0000000
--- a/src/main/java/com/raeids/stratus/mixin/EntityPlayerSPMixin.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import com.raeids.stratus.config.StratusConfig;
-import com.raeids.stratus.chat.ChatTabs;
-import net.minecraft.client.entity.EntityPlayerSP;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.ModifyVariable;
-
-@Mixin(EntityPlayerSP.class)
-public class EntityPlayerSPMixin {
- @ModifyVariable(method = "sendChatMessage", at = @At("HEAD"), ordinal = 0, argsOnly = true)
- private String handleSentMessages(String value) {
- if (value.startsWith("/")) return value;
- if (StratusConfig.INSTANCE.getChatTabs() && ChatTabs.INSTANCE.getCurrentTab() != null && !ChatTabs.INSTANCE.getCurrentTab().getPrefix().isEmpty()) {
- return ChatTabs.INSTANCE.getCurrentTab().getPrefix() + value;
- } else {
- return value;
- }
- }
-} \ No newline at end of file
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java
deleted file mode 100644
index bf0ac79..0000000
--- a/src/main/java/com/raeids/stratus/mixin/GuiChatMixin.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import com.google.common.collect.Lists;
-import com.raeids.stratus.chat.*;
-import com.raeids.stratus.config.StratusConfig;
-import com.raeids.stratus.gui.components.ScreenshotButton;
-import com.raeids.stratus.gui.components.SearchButton;
-import com.raeids.stratus.hook.*;
-import com.raeids.stratus.utils.ModCompatHooks;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.GuiChat;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.client.renderer.GlStateManager;
-import net.minecraft.util.MathHelper;
-import net.minecraftforge.fml.client.config.GuiUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.lwjgl.input.Mouse;
-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.ModifyArg;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-import java.awt.*;
-import java.awt.datatransfer.Transferable;
-import java.util.List;
-
-@Mixin(GuiChat.class)
-public abstract class GuiChatMixin extends GuiScreen {
-
- @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",
- "\u00A7lSHIFT CLICK\u00A7r - Screenshot Line",
- "",
- "\u00A73\u00A7l\u00A7nModifiers",
- "\u00A7lALT\u00A7r - Formatting Codes");
-
- private SearchButton searchButton;
-
- @Inject(method = "initGui", at = @At("TAIL"))
- private void init(CallbackInfo ci) {
- if (StratusConfig.INSTANCE.getChatSearch()) {
- searchButton = new SearchButton();
- buttonList.add(searchButton);
- }
- buttonList.add(new ScreenshotButton());
- if (StratusConfig.INSTANCE.getChatTabs()) {
- for (ChatTab chatTab : ChatTabs.INSTANCE.getTabs()) {
- buttonList.add(chatTab.getButton());
- }
- }
- }
-
- @Inject(method = "updateScreen", at = @At("HEAD"))
- private void updateScreen(CallbackInfo ci) {
- if (StratusConfig.INSTANCE.getChatSearch() && searchButton.isEnabled()) {
- searchButton.getInputField().updateCursorCounter();
- }
- }
-
- @Inject(method = "keyTyped", at = @At("HEAD"), cancellable = true)
- private void keyTyped(char typedChar, int keyCode, CallbackInfo ci) {
- if (StratusConfig.INSTANCE.getChatSearch() && searchButton.isEnabled()) {
- ci.cancel();
- if (keyCode == 1) {
- searchButton.onMousePress();
- return;
- }
- searchButton.getInputField().textboxKeyTyped(typedChar, keyCode);
- ChatSearchingManager.setPrevText(searchButton.getInputField().getText());
- }
- }
-
- @Inject(method = "drawScreen", at = @At("HEAD"))
- private void onDrawScreen(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) {
- GuiNewChatHook hook = ((GuiNewChatHook) Minecraft.getMinecraft().ingameGUI.getChatGUI());
- float f = mc.ingameGUI.getChatGUI().getChatScale();
- int x = MathHelper.floor_float((float) mouseX / f);
- if (hook.shouldCopy() && (hook.getRight() + ModCompatHooks.getXOffset()) <= x && (hook.getRight() + ModCompatHooks.getXOffset()) + 9 > x) {
- GuiUtils.drawHoveringText(COPY_TOOLTIP, mouseX, mouseY, width, height, -1, fontRendererObj);
- GlStateManager.disableLighting();
- }
- }
-
- @Inject(method = "mouseClicked", at = @At("HEAD"))
- private void mouseClicked(int mouseX, int mouseY, int mouseButton, CallbackInfo ci) {
- GuiNewChatHook hook = ((GuiNewChatHook) Minecraft.getMinecraft().ingameGUI.getChatGUI());
- float f = mc.ingameGUI.getChatGUI().getChatScale();
- int x = MathHelper.floor_float((float) mouseX / f);
- if (hook.shouldCopy() && (hook.getRight() + ModCompatHooks.getXOffset()) <= x && (hook.getRight() + ModCompatHooks.getXOffset()) + 9 > x) {
- Transferable message = hook.getStratusChatComponent(Mouse.getY());
- if (message == null) return;
- try {
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(message, null);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- @ModifyArg(method = "keyTyped", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiChat;sendChatMessage(Ljava/lang/String;)V"), index = 0)
- private String modifySentMessage(String original) {
- if (StratusConfig.INSTANCE.getChatShortcuts()) {
- if (original.startsWith("/")) {
- return "/" + ChatShortcuts.INSTANCE.handleSentCommand(StringUtils.substringAfter(original, "/"));
- }
- }
- return original;
- }
-}
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiNewChatAccessor.java b/src/main/java/com/raeids/stratus/mixin/GuiNewChatAccessor.java
deleted file mode 100644
index 43d4288..0000000
--- a/src/main/java/com/raeids/stratus/mixin/GuiNewChatAccessor.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import net.minecraft.client.gui.ChatLine;
-import net.minecraft.client.gui.GuiNewChat;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.gen.Accessor;
-
-import java.util.List;
-
-@Mixin(GuiNewChat.class)
-public interface GuiNewChatAccessor {
- @Accessor
- List<ChatLine> getDrawnChatLines();
-
- @Accessor
- int getScrollPos();
-}
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMapMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMapMixin.java
deleted file mode 100644
index 8f581f9..0000000
--- a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMapMixin.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import com.raeids.stratus.hook.GuiNewChatHook;
-import net.minecraft.client.gui.ChatLine;
-import net.minecraft.client.gui.GuiNewChat;
-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.Unique;
-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.LocalCapture;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Mixin(value = GuiNewChat.class, priority = Integer.MIN_VALUE)
-public abstract class GuiNewChatMapMixin implements GuiNewChatHook {
-
- @Unique private final Map<ChatLine, ChatLine> drawnToFull = new HashMap<>();
- @Unique private final List<ChatLine> tempDrawnLines = new ArrayList<>();
- @Unique private ChatLine lastTempLine = null;
-
- @Shadow @Final private List<ChatLine> drawnChatLines;
- @Shadow @Final private List<ChatLine> chatLines;
-
- @Inject(method = "setChatLine", at = @At("HEAD"))
- private void handleSetChatLine(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
- tempDrawnLines.clear();
- }
-
- @Inject(method = "setChatLine", at = @At(value = "INVOKE", target = "Ljava/util/List;add(ILjava/lang/Object;)V", ordinal = 0, shift = At.Shift.AFTER))
- private void handleDrawnLineAdded(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
- if (!displayOnly) tempDrawnLines.add(drawnChatLines.get(0));
- else if (lastTempLine != null) {
- drawnToFull.put(drawnChatLines.get(0), lastTempLine);
- }
- }
-
- @Inject(method = "setChatLine", at = @At(value = "INVOKE", target = "Ljava/util/List;remove(I)Ljava/lang/Object;", ordinal = 0, shift = At.Shift.BEFORE))
- private void handleDrawnLineRemoved(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
- drawnToFull.remove(drawnChatLines.get(drawnChatLines.size() - 1));
- }
-
- @Inject(method = "setChatLine", at = @At("RETURN"))
- private void handleLineAdded(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
- if (!displayOnly) {
- ChatLine masterLine = chatLines.get(0);
- for (ChatLine tempDrawnLine : tempDrawnLines) drawnToFull.put(tempDrawnLine, masterLine);
- }else {
- lastTempLine = null;
- }
- }
-
- @Inject(method = "refreshChat", at = @At("HEAD"))
- private void handleRefreshedChat(CallbackInfo ci) {
- drawnToFull.clear();
- }
-
- @Inject(method = "refreshChat", locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiNewChat;setChatLine(Lnet/minecraft/util/IChatComponent;IIZ)V", ordinal = 0, shift = At.Shift.BEFORE))
- private void handleLineRefresh(CallbackInfo ci, int i, ChatLine chatline) {
- lastTempLine = chatline;
- }
-
- @Inject(method = "clearChatMessages", at = @At("HEAD"))
- private void handleChatCleared(CallbackInfo ci) {
- drawnToFull.clear();
- }
-
- @Override
- public ChatLine getFullMessage(ChatLine line) {
- return drawnToFull.getOrDefault(line, null);
- }
-}
diff --git a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java b/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
deleted file mode 100644
index f606d4e..0000000
--- a/src/main/java/com/raeids/stratus/mixin/GuiNewChatMixin.java
+++ /dev/null
@@ -1,240 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import com.raeids.stratus.Stratus;
-import com.raeids.stratus.chat.ChatSearchingManager;
-import com.raeids.stratus.chat.ChatTabs;
-import com.raeids.stratus.config.StratusConfig;
-import com.raeids.stratus.hook.GuiNewChatHook;
-import com.raeids.stratus.utils.ModCompatHooks;
-import com.raeids.stratus.utils.RenderHelper;
-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.EnumChatFormatting;
-import net.minecraft.util.IChatComponent;
-import net.minecraft.util.MathHelper;
-import net.minecraft.util.ResourceLocation;
-import org.objectweb.asm.Opcodes;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.Unique;
-import org.spongepowered.asm.mixin.injection.*;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-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;
-import java.util.Locale;
-
-@Mixin(value = GuiNewChat.class, priority = Integer.MIN_VALUE)
-public abstract class GuiNewChatMixin extends Gui implements GuiNewChatHook {
- @Unique private int stratus$right = 0;
- @Unique private boolean stratus$shouldCopy;
- @Unique private boolean stratus$chatCheck;
- @Unique private int stratus$textOpacity;
- @Shadow @Final private Minecraft mc;
- @Shadow @Final private List<ChatLine> drawnChatLines;
- @SuppressWarnings({"FieldCanBeLocal", "unused"})
- private float percentComplete;
- private String stratus$previousText = "";
-
- @Shadow public abstract boolean getChatOpen();
-
- @Shadow public abstract float getChatScale();
-
- @Shadow public abstract int getLineCount();
-
- @Shadow private int scrollPos;
- @Shadow @Final private List<ChatLine> chatLines;
-
- @Shadow public abstract void deleteChatLine(int id);
-
- @Unique private static final ResourceLocation COPY = new ResourceLocation("stratus:copy.png");
-
- @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);
- if (!EnumChatFormatting.getTextWithoutFormattingCodes(chatComponent.getUnformattedText()).toLowerCase(Locale.ENGLISH).contains(stratus$previousText.toLowerCase(Locale.ENGLISH))) {
- percentComplete = 1.0F;
- }
- }
-
- @Inject(method = "setChatLine", at = @At("HEAD"), cancellable = true)
- private void handleSetChatLine(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
- ChatSearchingManager.getCache().invalidateAll();
- handleChatTabMessage(chatComponent, chatLineId, updateCounter, displayOnly, ci);
- }
-
- @Inject(method = "drawChat", at = @At("HEAD"))
- private void checkScreenshotKeybind(int j2, CallbackInfo ci) {
- if (Stratus.INSTANCE.getKeybind().isPressed()) {
- Stratus.INSTANCE.setDoTheThing(true);
- }
- stratus$chatCheck = false;
- }
-
- @ModifyVariable(method = "drawChat", at = @At("HEAD"), argsOnly = true)
- private int setUpdateCounterWhjenYes(int updateCounter) {
- return Stratus.INSTANCE.getDoTheThing() ? 0 : updateCounter;
- }
-
- @ModifyVariable(method = "drawChat", at = @At("STORE"), index = 2)
- private int setChatLimitWhenYes(int linesToDraw) {
- return Stratus.INSTANCE.getDoTheThing()
- ? GuiNewChat.calculateChatboxHeight(mc.gameSettings.chatHeightFocused) / 9
- : linesToDraw;
- }
-
- @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);
- int top = args.get(1);
- int right = args.get(2);
- int bottom = args.get(3);
- if (mc.currentScreen instanceof GuiChat) {
- float f = this.getChatScale();
- int mouseX = MathHelper.floor_double(UMouse.getScaledX()) - 3;
- int mouseY = MathHelper.floor_double(UMouse.getScaledY()) - 27 + ModCompatHooks.getYOffset() - ModCompatHooks.getChatPosition();
- mouseX = MathHelper.floor_float((float)mouseX / f);
- mouseY = -(MathHelper.floor_float((float)mouseY / f)); //WHY DO I NEED TO DO THIS
- if (mouseX >= (left + ModCompatHooks.getXOffset()) && mouseY < bottom && mouseX < (right + 9 + ModCompatHooks.getXOffset()) && mouseY >= top) {
- stratus$shouldCopy = true;
- drawCopyChatBox(right, top);
- }
- }
- }
-
- @Redirect(method = "drawChat", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/GuiNewChat;drawnChatLines:Ljava/util/List;", opcode = Opcodes.GETFIELD))
- private List<ChatLine> injected(GuiNewChat instance) {
- return ChatSearchingManager.filterMessages(stratus$previousText, drawnChatLines);
- }
-
- @ModifyVariable(method = "drawChat", at = @At("STORE"), ordinal = 7)
- private int modifyYeah(int value) {
- return stratus$textOpacity = (int) (((float) (getChatOpen() ? 255 : value)) * (mc.gameSettings.chatOpacity * 0.9F + 0.1F));
- }
-
- @Redirect(method = "drawChat", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/FontRenderer;drawStringWithShadow(Ljava/lang/String;FFI)I"))
- private int redirectDrawString(FontRenderer instance, String text, float x, float y, int color) {
- return ModCompatHooks.redirectDrawString(text, x, y, color);
- }
-
- @Inject(method = "drawChat", at = @At("RETURN"))
- private void checkStuff(int j2, CallbackInfo ci) {
- if (!stratus$chatCheck && stratus$shouldCopy) {
- stratus$shouldCopy = false;
- }
- }
-
- @Inject(method = "getChatHeight", at = @At("HEAD"), cancellable = true)
- private void customHeight_getChatHeight(CallbackInfoReturnable<Integer> cir) {
- if (StratusConfig.INSTANCE.getCustomChatHeight()) cir.setReturnValue(Stratus.INSTANCE.getChatHeight(this.getChatOpen()));
- }
-
- @Override
- public int getRight() {
- return stratus$right;
- }
-
- @Override
- public boolean shouldCopy() {
- return stratus$shouldCopy;
- }
-
- private void handleChatTabMessage(IChatComponent chatComponent, int chatLineId, int updateCounter, boolean displayOnly, CallbackInfo ci) {
- if (StratusConfig.INSTANCE.getChatTabs()) {
- if (!ChatTabs.INSTANCE.shouldRender(chatComponent)) {
- percentComplete = 1.0F;
- if (chatLineId != 0) {
- deleteChatLine(chatLineId);
- }
- if (!displayOnly) {
- chatLines.add(0, new ChatLine(updateCounter, chatComponent, chatLineId));
- while (this.chatLines.size() > (100 + ModCompatHooks.getExtendedChatLength()))
- {
- this.chatLines.remove(this.chatLines.size() - 1);
- }
- }
- ci.cancel();
- }
- }
- }
-
- private void drawCopyChatBox(int right, int top) {
- stratus$chatCheck = true;
- GlStateManager.enableRescaleNormal();
- GlStateManager.enableBlend();
- GlStateManager.enableDepth();
- GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
- GlStateManager.pushMatrix();
- mc.getTextureManager().bindTexture(COPY);
- GlStateManager.enableRescaleNormal();
- GlStateManager.enableAlpha();
- GlStateManager.alphaFunc(516, 0.1f);
- GlStateManager.enableBlend();
- GlStateManager.blendFunc(770, 771);
- GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
- stratus$right = right;
- Gui.drawModalRectWithCustomSizedTexture(right, top, 0f, 0f, 9, 9, 9, 9);
- GlStateManager.disableAlpha();
- GlStateManager.disableRescaleNormal();
- GlStateManager.disableLighting();
- GlStateManager.popMatrix();
- }
-
- @Override
- public Transferable getStratusChatComponent(int mouseY) {
- if (this.getChatOpen()) {
- ScaledResolution scaledresolution = new ScaledResolution(this.mc);
- int i = scaledresolution.getScaleFactor();
- float f = this.getChatScale();
- int k = mouseY / i - 27 + ModCompatHooks.getYOffset() - ModCompatHooks.getChatPosition();
- k = MathHelper.floor_float((float) k / f);
-
- if (k >= 0) {
- int l = Math.min(this.getLineCount(), this.drawnChatLines.size());
-
- if (k < this.mc.fontRendererObj.FONT_HEIGHT * l + l) {
- int i1 = k / this.mc.fontRendererObj.FONT_HEIGHT + this.scrollPos;
-
- if (i1 >= 0 && i1 < this.drawnChatLines.size()) {
- ChatLine subLine = this.drawnChatLines.get(i1);
- 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 new StringSelection(GuiScreen.isAltKeyDown() ? message : EnumChatFormatting.getTextWithoutFormattingCodes(message));
- }
-
- }
- }
- }
- return null;
- }
-
- @Override
- public String getPrevText() {
- return stratus$previousText;
- }
-
- @Override
- public void setPrevText(String prevText) {
- stratus$previousText = prevText;
- }
-
- @Override
- public int getTextOpacity() {
- return stratus$textOpacity;
- }
-}
diff --git a/src/main/java/com/raeids/stratus/mixin/WyvtilsListenerMixin.java b/src/main/java/com/raeids/stratus/mixin/WyvtilsListenerMixin.java
deleted file mode 100644
index 768b7c7..0000000
--- a/src/main/java/com/raeids/stratus/mixin/WyvtilsListenerMixin.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.raeids.stratus.mixin;
-
-import com.raeids.stratus.utils.RenderHelper;
-import org.spongepowered.asm.mixin.Dynamic;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Pseudo;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Coerce;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Pseudo
-@Mixin(targets = "net.wyvest.wyvtils.core.listener.Listener")
-public class WyvtilsListenerMixin {
-
- @Dynamic("Wyvtils")
- @Inject(method = "onStringRendered", at = @At("HEAD"), cancellable = true)
- private void cancelStringRender(@Coerce Object a, CallbackInfo ci) {
- if (RenderHelper.INSTANCE.getBypassWyvtils()) ci.cancel();
- }
-}