aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/cc/woverflow/chatting/utils
diff options
context:
space:
mode:
authornextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-07-11 13:45:16 +0100
committernextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-07-11 13:45:16 +0100
commit89938d618307955ac1218b0f286bb1b1ce252e35 (patch)
treebbab43e037fb75a22c933e8cd80cbe685eff4065 /src/main/kotlin/cc/woverflow/chatting/utils
parenta0f40b674eb8696e4145aefc960ae0e87173fcb1 (diff)
downloadChatting-89938d618307955ac1218b0f286bb1b1ce252e35.tar.gz
Chatting-89938d618307955ac1218b0f286bb1b1ce252e35.tar.bz2
Chatting-89938d618307955ac1218b0f286bb1b1ce252e35.zip
hippity hoppity oneconfig is my property
Diffstat (limited to 'src/main/kotlin/cc/woverflow/chatting/utils')
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/utils/ImageTransferable.kt22
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/utils/ModCompatHooks.kt40
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/utils/RenderUtils.kt (renamed from src/main/kotlin/cc/woverflow/chatting/utils/renderutils.kt)12
3 files changed, 40 insertions, 34 deletions
diff --git a/src/main/kotlin/cc/woverflow/chatting/utils/ImageTransferable.kt b/src/main/kotlin/cc/woverflow/chatting/utils/ImageTransferable.kt
deleted file mode 100644
index 563f17a..0000000
--- a/src/main/kotlin/cc/woverflow/chatting/utils/ImageTransferable.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package cc.woverflow.chatting.utils
-
-import java.awt.Image
-import java.awt.datatransfer.DataFlavor
-import java.awt.datatransfer.Transferable
-import java.awt.datatransfer.UnsupportedFlavorException
-
-data class ImageTransferable(private val image: Image) : Transferable {
-
- override fun getTransferDataFlavors(): Array<DataFlavor> {
- return arrayOf(DataFlavor.imageFlavor)
- }
-
- override fun isDataFlavorSupported(flavor: DataFlavor?): Boolean {
- return DataFlavor.imageFlavor.equals(flavor)
- }
-
- override fun getTransferData(flavor: DataFlavor?): Any {
- if (isDataFlavorSupported(flavor)) return image
- throw UnsupportedFlavorException(flavor)
- }
-} \ No newline at end of file
diff --git a/src/main/kotlin/cc/woverflow/chatting/utils/ModCompatHooks.kt b/src/main/kotlin/cc/woverflow/chatting/utils/ModCompatHooks.kt
index 39455ae..fd337de 100644
--- a/src/main/kotlin/cc/woverflow/chatting/utils/ModCompatHooks.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/utils/ModCompatHooks.kt
@@ -4,7 +4,6 @@ import cc.woverflow.chatting.Chatting.isBetterChat
import cc.woverflow.chatting.Chatting.isPatcher
import cc.woverflow.chatting.config.ChattingConfig.textRenderType
import cc.woverflow.chatting.hook.GuiNewChatHook
-import cc.woverflow.onecore.utils.drawBorderedString
import club.sk1er.patcher.config.PatcherConfig
import com.llamalad7.betterchat.BetterChat
import net.minecraft.client.Minecraft
@@ -36,8 +35,45 @@ object ModCompatHooks {
fun redirectDrawString(text: String, x: Float, y: Float, color: Int): Int {
return when (textRenderType) {
0 -> fontRenderer.drawString(text, x, y, color, false)
- 2 -> fontRenderer.drawBorderedString(text, x.toInt(), y.toInt(), color, (Minecraft.getMinecraft().ingameGUI.chatGUI as GuiNewChatHook).textOpacity)
+ 2 -> fontRenderer.drawBorderedString(
+ text,
+ x.toInt(),
+ y.toInt(),
+ color,
+ (Minecraft.getMinecraft().ingameGUI.chatGUI as GuiNewChatHook).textOpacity
+ )
+
else -> fontRenderer.drawString(text, x, y, color, true)
}
}
+
+
+ private val regex = Regex("(?i)\\u00A7[0-9a-f]")
+ private var bypassNameHighlight = false
+ fun FontRenderer.drawBorderedString(
+ text: String, x: Int, y: Int, color: Int, opacity: Int
+ ): Int {
+ val noColors = text.replace(regex, "\u00A7r")
+ var yes = 0
+ if (opacity > 3) {
+ bypassNameHighlight = true
+ for (xOff in -2..2) {
+ for (yOff in -2..2) {
+ if (xOff * xOff != yOff * yOff) {
+ yes +=
+ drawString(
+ noColors, (xOff / 2f) + x, (yOff / 2f) + y, (opacity) shl 24, false
+ )
+
+ }
+ }
+ }
+ bypassNameHighlight = false
+ }
+ yes +=
+ //#if MODERN==0
+ drawString(text, x, y, color)
+
+ return yes
+ }
}
diff --git a/src/main/kotlin/cc/woverflow/chatting/utils/renderutils.kt b/src/main/kotlin/cc/woverflow/chatting/utils/RenderUtils.kt
index 19835ac..12051cf 100644
--- a/src/main/kotlin/cc/woverflow/chatting/utils/renderutils.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/utils/RenderUtils.kt
@@ -2,18 +2,11 @@
package cc.woverflow.chatting.utils
+import cc.polyfrost.oneconfig.utils.IOUtils
import cc.woverflow.chatting.config.ChattingConfig
-import cc.woverflow.chatting.mixin.GuiNewChatAccessor
-import cc.woverflow.chatting.utils.ModCompatHooks.fontRenderer
-import gg.essential.universal.ChatColor
-import gg.essential.universal.UMouse
-import net.minecraft.client.Minecraft
-import net.minecraft.client.gui.ChatLine
-import net.minecraft.client.gui.ScaledResolution
import net.minecraft.client.renderer.GlStateManager
import net.minecraft.client.renderer.texture.TextureUtil
import net.minecraft.client.shader.Framebuffer
-import net.minecraft.util.MathHelper
import org.apache.commons.lang3.SystemUtils
import org.lwjgl.BufferUtils
import org.lwjgl.opengl.GL11
@@ -28,7 +21,6 @@ import java.lang.reflect.Method
import java.nio.ByteBuffer
import java.nio.ByteOrder
import javax.imageio.ImageIO
-import kotlin.math.roundToInt
/**
* Taken from https://github.com/Moulberry/HyChat
@@ -178,7 +170,7 @@ fun BufferedImage.copyToClipboard() {
newImage.setRGB(0, 0, newImage.width, newImage.height, pixels, 0, newImage.width)
try {
- Toolkit.getDefaultToolkit().systemClipboard.setContents(ImageTransferable(this), null)
+ IOUtils.copyImageToClipboard(this)
} catch (e: Exception) {
e.printStackTrace()
}