package com.dulkirfabric.features.chat import com.dulkirfabric.config.DulkirConfig import com.dulkirfabric.events.chat.ChatReceivedEvent import com.dulkirfabric.events.PlaySoundEvent import com.dulkirfabric.util.TextUtils import com.dulkirfabric.util.TextUtils.unformattedString import meteordevelopment.orbit.EventHandler object AbiPhoneDND { private val abiPhoneFormat = "โœ† (\\w+) โœ† ".toRegex() private var lastRing = 0L //BLOCK ABIPHONE SOUNDS @EventHandler fun onSound(event: PlaySoundEvent) { if (!DulkirConfig.configOptions.abiPhoneDND) return if (System.currentTimeMillis() - lastRing < 5000) { if (event.sound.id.path == "block.note_block.pling" && event.sound.volume == 0.69f && event.sound.pitch == 1.6666666f) { event.cancel() } } } @EventHandler fun handle(event: ChatReceivedEvent) { if (!DulkirConfig.configOptions.abiPhoneDND) return val unformatted = event.message.unformattedString if (unformatted matches abiPhoneFormat && !unformatted.contains("Elle") && !unformatted.contains("Dean")) { val matchResult = abiPhoneFormat.find(unformatted) event.cancel() lastRing = System.currentTimeMillis() if (DulkirConfig.configOptions.abiPhoneCallerID) { val blocked = if (Math.random() < .001) "Breefing" else matchResult?.groups?.get(1)?.value TextUtils.info("ยง6Call blocked from $blocked!") } } if (unformatted.startsWith("โœ† Ring...") && unformatted.endsWith("[PICK UP]") && System.currentTimeMillis() - lastRing < 5000 ) { event.cancel() } } }