aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/cc/woverflow/chatting/gui
diff options
context:
space:
mode:
authorWyvest <45589059+Wyvest@users.noreply.github.com>2022-08-16 21:54:31 +0700
committerWyvest <45589059+Wyvest@users.noreply.github.com>2022-08-16 21:54:31 +0700
commit794dcf0a1312b58cf1247c0907414fd1eb88e06d (patch)
tree7f3d608a901a0ac8164ca6a29a69410de7701dc8 /src/main/kotlin/cc/woverflow/chatting/gui
parent89938d618307955ac1218b0f286bb1b1ce252e35 (diff)
downloadChatting-794dcf0a1312b58cf1247c0907414fd1eb88e06d.tar.gz
Chatting-794dcf0a1312b58cf1247c0907414fd1eb88e06d.tar.bz2
Chatting-794dcf0a1312b58cf1247c0907414fd1eb88e06d.zip
new: completely remove Essential
fix: fix copy chat button not rendering when patcher transparent chat is enabled
Diffstat (limited to 'src/main/kotlin/cc/woverflow/chatting/gui')
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutEditGui.kt88
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutViewGui.kt65
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/components/ClearButton.kt40
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/components/ScreenshotButton.kt6
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/components/SearchButton.kt2
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/components/TabButton.kt2
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/gui/components/TextBlock.kt41
7 files changed, 21 insertions, 223 deletions
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutEditGui.kt b/src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutEditGui.kt
deleted file mode 100644
index 983e2ed..0000000
--- a/src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutEditGui.kt
+++ /dev/null
@@ -1,88 +0,0 @@
-package cc.woverflow.chatting.gui
-
-import cc.woverflow.chatting.chat.ChatShortcuts
-import gg.essential.api.EssentialAPI
-import gg.essential.api.gui.buildConfirmationModal
-import gg.essential.elementa.ElementaVersion
-import gg.essential.elementa.WindowScreen
-import gg.essential.elementa.components.UIBlock
-import gg.essential.elementa.constraints.CenterConstraint
-import gg.essential.elementa.constraints.SiblingConstraint
-import gg.essential.elementa.dsl.*
-import gg.essential.vigilance.gui.VigilancePalette
-import gg.essential.vigilance.gui.settings.ButtonComponent
-import gg.essential.vigilance.gui.settings.TextComponent
-
-class ChatShortcutEditGui(private var alias: String, private var command: String, private val editing: Boolean) :
- WindowScreen(restoreCurrentGuiOnClose = true, version = ElementaVersion.V1) {
-
- private val initialAlias = alias
- private val initialCommand = command
-
- override fun initScreen(width: Int, height: Int) {
- super.initScreen(width, height)
- window.clearChildren() // make sure everything is cleared, sometimes the shortcuts duplicated
- val block by UIBlock(VigilancePalette.getBackground()).constrain {
- this.x = CenterConstraint()
- this.y = CenterConstraint()
- this.width = 100.pixels()
- this.height = 100.pixels()
- } childOf window
- TextComponent(initialAlias, "Alias", wrap = false, protected = false).constrain {
- x = CenterConstraint()
- y = 10.percent()
- }.childOf(block).onValueChange {
- if (it is String) alias = it
- }
- TextComponent(initialCommand, "Command", wrap = false, protected = false).constrain {
- x = CenterConstraint()
- y = SiblingConstraint()
- }.childOf(block).onValueChange {
- if (it is String) command = it
- }
- if (editing) {
- ButtonComponent("Reset") {
- EssentialAPI.getGuiUtil().openScreen(ChatShortcutEditGui(initialAlias, initialCommand, editing))
- } constrain {
- x = CenterConstraint()
- y = 70.percent()
- } childOf window
- }
- ButtonComponent("Save") {
- alias = alias.substringAfter("/")
- command = command.substringAfter("/")
- if (editing) {
- ChatShortcuts.removeShortcut(initialAlias)
- }
- if (alias.isBlank() || command.isBlank()) {
- return@ButtonComponent
- }
- if (ChatShortcuts.shortcuts.any { it.first == alias }) {
- EssentialAPI.getGuiUtil().openScreen(ChatShortcutConfirmGui(alias, command))
- return@ButtonComponent
- }
- ChatShortcuts.writeShortcut(alias, command)
- restorePreviousScreen()
- } constrain {
- x = CenterConstraint()
- y = 80.percent()
- } childOf window
- }
-
- inner class ChatShortcutConfirmGui(private var alias: String, private var command: String) :
- WindowScreen(restoreCurrentGuiOnClose = true, version = ElementaVersion.V1) {
- override fun initScreen(width: Int, height: Int) {
- super.initScreen(width, height)
- EssentialAPI.getEssentialComponentFactory().buildConfirmationModal {
- text = "An alias with this name already exists, are you sure you want to overwrite it?"
- onConfirm = {
- ChatShortcuts.writeShortcut(alias, command)
- EssentialAPI.getGuiUtil().openScreen(null)
- }
- onDeny = {
- restorePreviousScreen()
- }
- } childOf this@ChatShortcutConfirmGui.window
- }
- }
-}
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutViewGui.kt b/src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutViewGui.kt
deleted file mode 100644
index 0fa2ef7..0000000
--- a/src/main/kotlin/cc/woverflow/chatting/gui/ChatShortcutViewGui.kt
+++ /dev/null
@@ -1,65 +0,0 @@
-package cc.woverflow.chatting.gui
-
-import cc.woverflow.chatting.chat.ChatShortcuts
-import cc.woverflow.chatting.gui.components.TextBlock
-import gg.essential.api.EssentialAPI
-import gg.essential.elementa.ElementaVersion
-import gg.essential.elementa.WindowScreen
-import gg.essential.elementa.components.ScrollComponent
-import gg.essential.elementa.components.UIBlock
-import gg.essential.elementa.constraints.CenterConstraint
-import gg.essential.elementa.constraints.RelativeWindowConstraint
-import gg.essential.elementa.constraints.SiblingConstraint
-import gg.essential.elementa.dsl.*
-import gg.essential.vigilance.gui.VigilancePalette
-import gg.essential.vigilance.gui.settings.ButtonComponent
-
-class ChatShortcutViewGui : WindowScreen(version = ElementaVersion.V1) {
- override fun initScreen(width: Int, height: Int) {
- super.initScreen(width, height)
- window.clearChildren() // make sure everything is cleared, sometimes the shortcuts duplicated
- val container by ScrollComponent() constrain {
- x = 0.pixels()
- y = 0.pixels()
- this.width = 85.percent()
- this.height = 85.percent()
- } childOf window
- for ((index, shortcut) in ChatShortcuts.shortcuts.withIndex()) {
- val block = UIBlock(VigilancePalette.getBackground()).constrain {
- x = 3.percent()
- y = (index * 12).percent()
- this.width = 94.percent()
- this.height = 25.pixels()
- } childOf container
- TextBlock(shortcut.first).constrain {
- x = RelativeWindowConstraint(0.05F)
- y = CenterConstraint()
- } childOf block
- TextBlock(shortcut.second).constrain {
- x = SiblingConstraint(10F)
- y = CenterConstraint()
- } childOf block
- ButtonComponent("Edit") {
- println("${shortcut.first} ${shortcut.second}")
- EssentialAPI.getGuiUtil().openScreen(ChatShortcutEditGui(shortcut.first, shortcut.second, true))
- } constrain {
- x = SiblingConstraint(20F)
- y = CenterConstraint()
- } childOf block
- ButtonComponent("Delete") {
- println("${shortcut.first} ${shortcut.second}")
- ChatShortcuts.removeShortcut(shortcut.first)
- EssentialAPI.getGuiUtil().openScreen(ChatShortcutViewGui())
- } constrain {
- x = SiblingConstraint(5F)
- y = CenterConstraint()
- } childOf block
- }
- ButtonComponent("New") {
- EssentialAPI.getGuiUtil().openScreen(ChatShortcutEditGui("", "", false))
- } constrain {
- x = CenterConstraint()
- y = 90.percent()
- } childOf window
- }
-} \ No newline at end of file
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/components/ClearButton.kt b/src/main/kotlin/cc/woverflow/chatting/gui/components/ClearButton.kt
index 2e46974..6ac3d34 100644
--- a/src/main/kotlin/cc/woverflow/chatting/gui/components/ClearButton.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/gui/components/ClearButton.kt
@@ -1,41 +1,33 @@
package cc.woverflow.chatting.gui.components
+import cc.polyfrost.oneconfig.libs.universal.ChatColor
+import cc.polyfrost.oneconfig.libs.universal.UChat
+import cc.polyfrost.oneconfig.libs.universal.UResolution
+import cc.polyfrost.oneconfig.utils.Multithreading
import cc.woverflow.chatting.Chatting
-import gg.essential.api.EssentialAPI
-import gg.essential.api.gui.buildConfirmationModal
-import gg.essential.elementa.ElementaVersion
-import gg.essential.elementa.WindowScreen
-import gg.essential.elementa.components.UIBlock
-import gg.essential.elementa.dsl.childOf
-import gg.essential.elementa.utils.withAlpha
-import gg.essential.universal.ChatColor
-import gg.essential.universal.UResolution
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.Gui
import net.minecraft.client.renderer.GlStateManager
import net.minecraft.util.ResourceLocation
-import java.awt.Color
class ClearButton :
CleanButton(13379014, { UResolution.scaledWidth - 28 }, { UResolution.scaledHeight - 27 }, 12, 12, "",
{ RenderType.NONE }) {
- override fun onMousePress() {
- EssentialAPI.getGuiUtil().openScreen(object : WindowScreen(ElementaVersion.V1, restoreCurrentGuiOnClose = true, drawDefaultBackground = false) {
- init {
- UIBlock(Color.BLACK.withAlpha(0.3f)) childOf window
- EssentialAPI.getEssentialComponentFactory().buildConfirmationModal {
- text = "${ChatColor.RED}Are ${ChatColor.RED}you ${ChatColor.RED}sure ${ChatColor.RED}you ${ChatColor.RED}want ${ChatColor.RED}to ${ChatColor.RED}clear ${ChatColor.RED}the ${ChatColor.RED}chat?${ChatColor.RESET}"
- secondaryText = "${ChatColor.BOLD}This${ChatColor.BOLD} ${ChatColor.BOLD}is${ChatColor.BOLD} ${ChatColor.BOLD}irreversible.${ChatColor.RESET}"
+ var times = 0
- onConfirm = {
- Minecraft.getMinecraft().ingameGUI.chatGUI.clearChatMessages()
- restorePreviousScreen()
- }
- onDeny = { restorePreviousScreen() }
- } childOf window
+ override fun onMousePress() {
+ ++times
+ if (times > 1) {
+ times = 0
+ Minecraft.getMinecraft().ingameGUI.chatGUI.clearChatMessages()
+ } else {
+ UChat.chat(ChatColor.RED + ChatColor.BOLD.toString() + "Click again to clear the chat!")
+ Multithreading.runAsync {
+ Thread.sleep(3000)
+ times = 0
}
- })
+ }
}
override fun drawButton(mc: Minecraft, mouseX: Int, mouseY: Int) {
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/components/ScreenshotButton.kt b/src/main/kotlin/cc/woverflow/chatting/gui/components/ScreenshotButton.kt
index 9fc5e8d..4f65427 100644
--- a/src/main/kotlin/cc/woverflow/chatting/gui/components/ScreenshotButton.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/gui/components/ScreenshotButton.kt
@@ -1,9 +1,9 @@
package cc.woverflow.chatting.gui.components
+import cc.polyfrost.oneconfig.libs.universal.UResolution
+import cc.polyfrost.oneconfig.libs.universal.UScreen
import cc.woverflow.chatting.Chatting
import cc.woverflow.chatting.mixin.GuiNewChatAccessor
-import gg.essential.api.utils.GuiUtil
-import gg.essential.universal.UResolution
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.Gui
import net.minecraft.client.gui.GuiChat
@@ -16,7 +16,7 @@ class ScreenshotButton :
override fun onMousePress() {
val chat = Minecraft.getMinecraft().ingameGUI.chatGUI
- if (GuiUtil.getOpenedScreen() is GuiChat) {
+ if (UScreen.currentScreen is GuiChat) {
Chatting.screenshotChat((chat as GuiNewChatAccessor).scrollPos)
}
}
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/components/SearchButton.kt b/src/main/kotlin/cc/woverflow/chatting/gui/components/SearchButton.kt
index 819eac0..2194bbb 100644
--- a/src/main/kotlin/cc/woverflow/chatting/gui/components/SearchButton.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/gui/components/SearchButton.kt
@@ -1,8 +1,8 @@
package cc.woverflow.chatting.gui.components
+import cc.polyfrost.oneconfig.libs.universal.UResolution
import cc.woverflow.chatting.Chatting
import cc.woverflow.chatting.hook.GuiNewChatHook
-import gg.essential.universal.UResolution
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.Gui
import net.minecraft.client.gui.GuiTextField
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/components/TabButton.kt b/src/main/kotlin/cc/woverflow/chatting/gui/components/TabButton.kt
index da20eed..f320925 100644
--- a/src/main/kotlin/cc/woverflow/chatting/gui/components/TabButton.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/gui/components/TabButton.kt
@@ -1,9 +1,9 @@
package cc.woverflow.chatting.gui.components
+import cc.polyfrost.oneconfig.libs.universal.UResolution
import cc.woverflow.chatting.chat.ChatTab
import cc.woverflow.chatting.chat.ChatTabs
import cc.woverflow.chatting.config.ChattingConfig
-import gg.essential.universal.UResolution
class TabButton(buttonId: Int, x: Int, widthIn: Int, heightIn: Int, private val chatTab: ChatTab) :
CleanButton(buttonId, { x }, {
diff --git a/src/main/kotlin/cc/woverflow/chatting/gui/components/TextBlock.kt b/src/main/kotlin/cc/woverflow/chatting/gui/components/TextBlock.kt
deleted file mode 100644
index 8a4f32a..0000000
--- a/src/main/kotlin/cc/woverflow/chatting/gui/components/TextBlock.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package cc.woverflow.chatting.gui.components
-
-import gg.essential.elementa.components.UIBlock
-import gg.essential.elementa.components.UIText
-import gg.essential.elementa.constraints.ChildBasedSizeConstraint
-import gg.essential.elementa.dsl.*
-import gg.essential.elementa.effects.OutlineEffect
-import gg.essential.elementa.state.BasicState
-import gg.essential.vigilance.gui.VigilancePalette
-import gg.essential.vigilance.gui.settings.SettingComponent
-
-/**
- * Heavily modified from Vigilance under LGPLv3 (modified to be just a text block)
- * https://github.com/Sk1erLLC/Vigilance/blob/master/LICENSE
- */
-class TextBlock(
- text: String
-) : SettingComponent() {
- private val textHolder = UIBlock() constrain {
- width = ChildBasedSizeConstraint() + 6.pixels()
- height = ChildBasedSizeConstraint() + 6.pixels()
- color = VigilancePalette.getDarkHighlight().toConstraint()
- } childOf this effect OutlineEffect(
- VigilancePalette.getDivider(),
- 1f
- ).bindColor(BasicState(VigilancePalette.getDivider()))
-
- private val text: UIText = UIText(text) constrain {
- x = 3.pixels()
- y = 3.pixels()
- }
-
- init {
- this.text childOf textHolder
-
- constrain {
- width = ChildBasedSizeConstraint()
- height = ChildBasedSizeConstraint()
- }
- }
-} \ No newline at end of file