aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/PlayerSendChatEvent.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/PlayerChatFilter.kt42
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/PlayerMessageChannel.kt14
3 files changed, 28 insertions, 29 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/events/PlayerSendChatEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/PlayerSendChatEvent.kt
index 1776b2bd0..49f56bdb4 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/PlayerSendChatEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/PlayerSendChatEvent.kt
@@ -2,7 +2,6 @@ package at.hannibal2.skyhanni.events
import at.hannibal2.skyhanni.features.chat.PlayerMessageChannel
-
class PlayerSendChatEvent(
val channel: PlayerMessageChannel,
val playerName: String,
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerChatFilter.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerChatFilter.kt
index 1a1047501..f1cef1ed8 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerChatFilter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerChatFilter.kt
@@ -10,6 +10,8 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class PlayerChatFilter {
+ private val loggerPlayerChat = LorenzLogger("chat/player")
+
@SubscribeEvent
fun onChatMessage(event: LorenzChatEvent) {
if (!LorenzUtils.isOnHypixel) return
@@ -20,10 +22,8 @@ class PlayerChatFilter {
}
}
- val loggerPlayerChat = LorenzLogger("chat/player")
-
- fun shouldBlock(originalMessage: String): Boolean {
- val split: List<String> = if (originalMessage.contains("§7§r§7: ")) {
+ private fun shouldBlock(originalMessage: String): Boolean {
+ val split = if (originalMessage.contains("§7§r§7: ")) {
originalMessage.split("§7§r§7: ")
} else if (originalMessage.contains("§f: ")) {
originalMessage.split("§f: ")
@@ -32,25 +32,23 @@ class PlayerChatFilter {
}
var rawName = split[0]
+ val channel = grabChannel(rawName)
+
+ rawName = rawName.substring(channel.originalPrefix.length)
+ val name = grabName(rawName) ?: return false
+
val message = split[1]
+ send(channel, name.removeColor(), message.removeColor())
+ return true
+ }
- val channel: PlayerMessageChannel
- if (rawName.startsWith("§9Party §8> ")) {
- channel = PlayerMessageChannel.PARTY
- rawName = rawName.substring(12)
- } else if (rawName.startsWith("§2Guild > ")) {
- channel = PlayerMessageChannel.GUILD
- rawName = rawName.substring(10)
- } else if (rawName.startsWith("§bCo-op > ")) {
- channel = PlayerMessageChannel.COOP
- rawName = rawName.substring(10)
- } else {
- channel = PlayerMessageChannel.ALL
- }
+ private fun grabChannel(name: String): PlayerMessageChannel {
+ return PlayerMessageChannel.values()
+ .find { it != PlayerMessageChannel.ALL && name.startsWith(it.originalPrefix) } ?: PlayerMessageChannel.ALL
+ }
+ private fun grabName(rawName: String): String? {
val nameSplit = rawName.split(" ")
- val first = nameSplit[0]
-
val last = nameSplit.last()
val name = if (last.endsWith("]")) {
nameSplit[nameSplit.size - 2]
@@ -58,15 +56,15 @@ class PlayerChatFilter {
last
}
+ val first = nameSplit[0]
if (first != name) {
if (!first.contains("VIP") && !first.contains("MVP")) {
//TODO support yt + admin
- return false
+ return null
}
}
- send(channel, name.removeColor(), message.removeColor())
- return true
+ return name
}
private fun send(channel: PlayerMessageChannel, name: String, message: String) {
diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerMessageChannel.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerMessageChannel.kt
index 7d65f47ce..593e592ed 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerMessageChannel.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/chat/PlayerMessageChannel.kt
@@ -1,10 +1,12 @@
package at.hannibal2.skyhanni.features.chat
-enum class PlayerMessageChannel(val prefix: String) {
+enum class PlayerMessageChannel(val prefix: String, val originalPrefix: String) {
+
+ ALL("§fA>", ""),
+ ALL_GUESTING("§aA>", "§a[✌] "),
+ ALL_DUNGEON_DEAD("§7A>", "§7[GHOST] "),
+ PARTY("§9P>", "§9Party §8> "),
+ GUILD("§2G>", "§2Guild > "),
+ COOP("§bCC>", "§bCo-op > "),
- ALL("§fA>"),
- ALL_ADVERTISEMENT("§8A>"),
- PARTY("§9P>"),
- GUILD("§2G>"),
- COOP("§bCC>"),
} \ No newline at end of file