summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-02-14 20:46:25 +0100
committerGitHub <noreply@github.com>2024-02-14 20:46:25 +0100
commiteb4b815095666bd9d13074a052c4329ba9ac7da7 (patch)
tree8171cb34e221c2deacc5549d55d6b28fa1ea3d5b /src/main/java/at/hannibal2/skyhanni/features
parent029514e0324d8ae72ad181c06bcf081c5c2a6304 (diff)
downloadskyhanni-eb4b815095666bd9d13074a052c4329ba9ac7da7.tar.gz
skyhanni-eb4b815095666bd9d13074a052c4329ba9ac7da7.tar.bz2
skyhanni-eb4b815095666bd9d13074a052c4329ba9ac7da7.zip
Add mod identification for outgoing mod calls and show this data in /shchathistory. #987
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilterGui.kt22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilterGui.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilterGui.kt
index e40854c9d..0e9392ea0 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilterGui.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilterGui.kt
@@ -7,6 +7,7 @@ import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.OSUtils
import io.github.moulberry.moulconfig.internal.GlScissorStack
import io.github.moulberry.moulconfig.internal.RenderUtils
+import io.github.moulberry.notenoughupdates.util.Utils
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.GuiScreen
import net.minecraft.client.gui.GuiUtilRenderComponents
@@ -27,18 +28,19 @@ class ChatFilterGui(private val history: List<ChatManager.MessageFilteringResult
history.sumOf { splitLine(it.message).size * 10 + if (it.modified != null) splitLine(it.modified).size * 10 else 0 }
}
- override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) {
- super.drawScreen(mouseX, mouseY, partialTicks)
+ override fun drawScreen(originalMouseX: Int, originalMouseY: Int, partialTicks: Float) {
+ super.drawScreen(originalMouseX, originalMouseY, partialTicks)
drawDefaultBackground()
+ var queuedTooltip: List<String>? = null
GlStateManager.pushMatrix()
val l = (width / 2.0 - w / 2.0).toInt()
val t = (height / 2.0 - h / 2.0).toInt()
GlStateManager.translate(l + 0.0, t + 0.0, 0.0)
RenderUtils.drawFloatingRectDark(0, 0, w, h)
GlStateManager.translate(5.0, 5.0 - scroll, 0.0)
- var mouseX = mouseX - l
- val isMouseButtonDown = mouseX in 0..w && mouseY in t..(t + h) && Mouse.isButtonDown(0)
- var mouseY = mouseY - (t - scroll).toInt()
+ var mouseX = originalMouseX - l
+ val isMouseButtonDown = mouseX in 0..w && originalMouseY in t..(t + h) && Mouse.isButtonDown(0)
+ var mouseY = originalMouseY - (t - scroll).toInt()
val sr = ScaledResolution(mc)
GlScissorStack.push(l + 5, t + 5, w + l - 5, h + t - 5, sr)
@@ -60,7 +62,12 @@ class ChatFilterGui(private val history: List<ChatManager.MessageFilteringResult
ChatManager.ActionKind.maxLength + reasonMaxLength + 10,
)
}
- if (mouseX in 0..w && mouseY in 0..(size * 10) && (isMouseButtonDown && !wasMouseButtonDown)) {
+ val isHovered = mouseX in 0..w && mouseY in 0..(size * 10)
+ if (isHovered && msg.hoverInfo.isNotEmpty())
+ queuedTooltip = msg.hoverInfo
+ if (isHovered && KeyboardManager.isShiftKeyDown() && msg.hoverExtraInfo.isNotEmpty())
+ queuedTooltip = msg.hoverExtraInfo
+ if (isHovered && (isMouseButtonDown && !wasMouseButtonDown)) {
if (KeyboardManager.isShiftKeyDown()) {
OSUtils.copyToClipboard(IChatComponent.Serializer.componentToJson(msg.message))
ChatUtils.chat("Copied structured chat line to clipboard", false)
@@ -75,6 +82,9 @@ class ChatFilterGui(private val history: List<ChatManager.MessageFilteringResult
GlScissorStack.pop(sr)
wasMouseButtonDown = isMouseButtonDown
GlStateManager.popMatrix()
+ if (queuedTooltip != null) {
+ Utils.drawHoveringText(queuedTooltip, originalMouseX, originalMouseY, width, height, -1, mc.fontRendererObj)
+ }
GlStateManager.color(1f, 1f, 1f, 1f)
}