diff options
author | ingle <inglettronald@gmail.com> | 2022-10-29 12:12:03 -0500 |
---|---|---|
committer | ingle <inglettronald@gmail.com> | 2022-10-29 12:12:03 -0500 |
commit | 393d4c8e14730a5c9b31695f722b6de9480508ec (patch) | |
tree | f8c9c1143e17e8578cc1567d3a464e219459f69f /src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt | |
parent | 798b38e5f3579469192916b69427ce46127deead (diff) | |
download | DulkirMod-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.kt | 51 |
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 |