aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
diff options
context:
space:
mode:
authoringle <inglettronald@gmail.com>2022-10-29 12:12:03 -0500
committeringle <inglettronald@gmail.com>2022-10-29 12:12:03 -0500
commit393d4c8e14730a5c9b31695f722b6de9480508ec (patch)
treef8c9c1143e17e8578cc1567d3a464e219459f69f /src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
parent798b38e5f3579469192916b69427ce46127deead (diff)
downloadDulkirMod-393d4c8e14730a5c9b31695f722b6de9480508ec.tar.gz
DulkirMod-393d4c8e14730a5c9b31695f722b6de9480508ec.tar.bz2
DulkirMod-393d4c8e14730a5c9b31695f722b6de9480508ec.zip
+ abiphone do not disturb
= refactored chatevent code for readability
Diffstat (limited to 'src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt')
-rw-r--r--src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt b/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
new file mode 100644
index 0000000..1f922f2
--- /dev/null
+++ b/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
@@ -0,0 +1,51 @@
+package dulkirmod.features.chat
+
+import dulkirmod.DulkirMod
+import dulkirmod.config.Config
+import net.minecraft.util.ChatComponentText
+import net.minecraftforge.client.event.ClientChatReceivedEvent
+import net.minecraftforge.client.event.sound.PlaySoundEvent
+import net.minecraftforge.fml.common.eventhandler.EventPriority
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+private val abiphoneFormat = "โœ† (\\w+) โœ† ".toRegex()
+private var lastRing: Long = 0
+
+class AbiphoneDND {
+ //BLOCK ABIPHONE SOUNDS
+ @SubscribeEvent(receiveCanceled = false, priority = EventPriority.LOW)
+ fun onSound(event: PlaySoundEvent) {
+ if (!Config.abiDND) return
+ if (System.currentTimeMillis() - lastRing < 5000) {
+ if (event.name == "note.pling" && event.sound.volume == 0.69f && event.sound.pitch == 1.6666666f) {
+ event.isCanceled = true
+ }
+ }
+ }
+
+ companion object {
+ fun handle(event: ClientChatReceivedEvent, unformatted: String) {
+ if (!Config.abiDND) return
+ if (unformatted matches abiphoneFormat) {
+ val matchResult = abiphoneFormat.find(unformatted)
+ event.isCanceled = true;
+ lastRing = System.currentTimeMillis()
+ if (Config.abiCallerID) {
+ DulkirMod.mc.thePlayer.addChatMessage(
+ ChatComponentText(
+ "${DulkirMod.CHAT_PREFIX} ยง6Call blocked from ${
+ if (Math.random() < .001) "Breefing"
+ else matchResult?.groups?.get(1)?.value
+ }!"
+ )
+ )
+ }
+ }
+ if (unformatted.startsWith("โœ† Ring...") && unformatted.endsWith("[PICK UP]")
+ && System.currentTimeMillis() - lastRing < 5000) {
+ event.isCanceled = true;
+ }
+ }
+
+ }
+} \ No newline at end of file