diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-07 00:31:50 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-07 00:31:50 +0200 |
| commit | 26c0107adc319e169da89eb32ee50c4afb0709db (patch) | |
| tree | 9ee1ae505e5f82aba62f10c882af85a3acd6e483 /src/main/java/at/lorenz/mod/chat/ChatManager.kt | |
| parent | a358c9e7f2c765c994782fa412be6cdc4978c826 (diff) | |
| download | SkyHanni-26c0107adc319e169da89eb32ee50c4afb0709db.tar.gz SkyHanni-26c0107adc319e169da89eb32ee50c4afb0709db.tar.bz2 SkyHanni-26c0107adc319e169da89eb32ee50c4afb0709db.zip | |
init lorenz mod
Diffstat (limited to 'src/main/java/at/lorenz/mod/chat/ChatManager.kt')
| -rw-r--r-- | src/main/java/at/lorenz/mod/chat/ChatManager.kt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/chat/ChatManager.kt b/src/main/java/at/lorenz/mod/chat/ChatManager.kt new file mode 100644 index 000000000..a85643e1b --- /dev/null +++ b/src/main/java/at/lorenz/mod/chat/ChatManager.kt @@ -0,0 +1,47 @@ +package at.lorenz.mod.chat + +import at.lorenz.mod.utils.LorenzLogger +import at.lorenz.mod.events.LorenzChatEvent +import at.lorenz.mod.utils.LorenzUtils +import net.minecraftforge.client.event.ClientChatReceivedEvent +import net.minecraftforge.fml.common.eventhandler.EventPriority +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class ChatManager { + + private val loggerAll = LorenzLogger("chat/filter_all") + private val loggerFiltered = LorenzLogger("chat/filter_blocked") + private val loggerAllowed = LorenzLogger("chat/filter_allowed") + private val loggerFilteredTypes = mutableMapOf<String, LorenzLogger>() + + @SubscribeEvent(priority = EventPriority.LOW, receiveCanceled = true) + fun onChatPacket(event: ClientChatReceivedEvent) { + val messageComponent = event.message + + val message = LorenzUtils.stripVanillaMessage(messageComponent.formattedText) + if (event.type.toInt() == 2) { +// val actionBarEvent = LorenzActionBarEvent(message) +// actionBarEvent.postAndCatch() + } else { + + val chatEvent = LorenzChatEvent(message, messageComponent) + chatEvent.postAndCatch() + + val blockReason = chatEvent.blockedReason.uppercase() + if (blockReason != "") { + event.isCanceled = true + loggerFiltered.log("[$blockReason] $message") + loggerAll.log("[$blockReason] $message") + loggerFilteredTypes.getOrPut(blockReason) { LorenzLogger("chat/filter_blocked/$blockReason") } + .log(message) + return + } + + if (!message.startsWith("§f{\"server\":\"")) { + loggerAllowed.log(message) + loggerAll.log("[allowed] $message") + } + + } + } +}
\ No newline at end of file |
