aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMy-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com>2021-10-20 19:20:57 -0400
committerMy-Name-Is-Jeff <37018278+My-Name-Is-Jeff@users.noreply.github.com>2021-10-20 19:20:57 -0400
commit27e3d314d36feef97b63544e8d86459036fc474b (patch)
tree8ed309af9a12cbe02778e30f3b9b8a2a27b96780
parent638b7656c2559cf44267e2b4173535c01dd47608 (diff)
downloadSkytilsMod-27e3d314d36feef97b63544e8d86459036fc474b.tar.gz
SkytilsMod-27e3d314d36feef97b63544e8d86459036fc474b.tar.bz2
SkytilsMod-27e3d314d36feef97b63544e8d86459036fc474b.zip
make last party disbander check formatted
-rw-r--r--src/main/kotlin/skytils/skytilsmod/listeners/ChatListener.kt22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/kotlin/skytils/skytilsmod/listeners/ChatListener.kt b/src/main/kotlin/skytils/skytilsmod/listeners/ChatListener.kt
index 23fe0db1..91c4989d 100644
--- a/src/main/kotlin/skytils/skytilsmod/listeners/ChatListener.kt
+++ b/src/main/kotlin/skytils/skytilsmod/listeners/ChatListener.kt
@@ -17,9 +17,9 @@
*/
package skytils.skytilsmod.listeners
+import gg.essential.universal.UChat
import net.minecraft.util.ChatComponentText
import net.minecraft.util.EnumChatFormatting
-import net.minecraft.util.StringUtils.stripControlCodes
import net.minecraftforge.client.ClientCommandHandler
import net.minecraftforge.client.event.ClientChatReceivedEvent
import net.minecraftforge.fml.common.eventhandler.EventPriority
@@ -29,41 +29,43 @@ import skytils.skytilsmod.Skytils.Companion.mc
import skytils.skytilsmod.commands.impl.RepartyCommand
import skytils.skytilsmod.mixins.transformers.accessors.AccessorGuiNewChat
import skytils.skytilsmod.utils.Utils
+import skytils.skytilsmod.utils.stripControlCodes
import java.util.regex.Pattern
+import kotlin.concurrent.thread
class ChatListener {
@SubscribeEvent(receiveCanceled = true, priority = EventPriority.HIGHEST)
fun onChat(event: ClientChatReceivedEvent) {
if (!Utils.isOnHypixel || event.type == 2.toByte()) return
- val unformatted = stripControlCodes(event.message.unformattedText)
- if (unformatted.startsWith("Your new API key is ")) {
+ val formatted = event.message.formattedText
+ val unformatted = formatted.stripControlCodes()
+ if (unformatted.startsWith("Your new API key is ") && event.message.siblings.size >= 1) {
val apiKey = event.message.siblings[0].chatStyle.chatClickEvent.value
Skytils.config.apiKey = apiKey
Skytils.hylinAPI.key = Skytils.config.apiKey
Skytils.config.markDirty()
- mc.thePlayer.addChatMessage(ChatComponentText(EnumChatFormatting.GREEN.toString() + "Skytils updated your set Hypixel API key to " + EnumChatFormatting.DARK_GREEN + apiKey))
+ UChat.chat("§aSkytils updated your set Hypixel API key to §2${apiKey}")
}
if (Skytils.config.autoReparty) {
- if (unformatted.contains("has disbanded the party!")) {
+ if (formatted.endsWith("§r§ehas disbanded the party!§r")) {
val matcher = playerPattern.matcher(unformatted)
if (matcher.find()) {
lastPartyDisbander = matcher.group(1)
println("Party disbanded by $lastPartyDisbander")
- rejoinThread = Thread {
- if (Skytils.config.autoRepartyTimeout == 0) return@Thread
+ rejoinThread = thread {
+ if (Skytils.config.autoRepartyTimeout == 0) return@thread
try {
println("waiting for timeout")
- Thread.sleep((Skytils.config.autoRepartyTimeout * 1000).toLong())
+ Thread.sleep(Skytils.config.autoRepartyTimeout * 1000L)
lastPartyDisbander = ""
println("cleared last party disbander")
} catch (e: Exception) {
}
}
- rejoinThread!!.start()
return
}
}
- if (unformatted.contains("You have 60 seconds to accept") && lastPartyDisbander.isNotEmpty() && event.message.siblings.size > 0) {
+ if (unformatted.contains("You have 60 seconds to accept") && lastPartyDisbander.isNotEmpty() && event.message.siblings.size >= 7) {
val acceptMessage = event.message.siblings[6].chatStyle
if (acceptMessage.chatHoverEvent.value.unformattedText.contains(lastPartyDisbander)) {
Skytils.sendMessageQueue.add("/p accept $lastPartyDisbander")