aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/dulkirmod/events/Events.kt10
-rw-r--r--src/main/kotlin/dulkirmod/features/ImpactDisplay.kt4
-rw-r--r--src/main/kotlin/dulkirmod/features/ReaperDisplay.kt4
-rw-r--r--src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt22
4 files changed, 25 insertions, 15 deletions
diff --git a/src/main/kotlin/dulkirmod/events/Events.kt b/src/main/kotlin/dulkirmod/events/Events.kt
index af6c02a..092c07d 100644
--- a/src/main/kotlin/dulkirmod/events/Events.kt
+++ b/src/main/kotlin/dulkirmod/events/Events.kt
@@ -1,9 +1,19 @@
package dulkirmod.events
+import net.minecraft.client.audio.ISound
+import net.minecraft.client.audio.SoundManager
import net.minecraft.entity.Entity
+import net.minecraftforge.client.event.sound.PlaySoundEvent
import net.minecraftforge.fml.common.eventhandler.Event
/**
* Fired when an entity is removed from the world.
*/
class EntityRemovedEvent(val entity: Entity) : Event()
+
+/**
+ * Always fired when a sound is played, as opposed to [PlaySoundEvent], which does not get fired when the master volume is 0.
+ */
+data class AlwaysPlaySoundEvent(val sound: ISound, val soundManager: SoundManager) : Event() {
+ val name = sound.soundLocation.resourcePath
+} \ No newline at end of file
diff --git a/src/main/kotlin/dulkirmod/features/ImpactDisplay.kt b/src/main/kotlin/dulkirmod/features/ImpactDisplay.kt
index 9415edc..5e473ee 100644
--- a/src/main/kotlin/dulkirmod/features/ImpactDisplay.kt
+++ b/src/main/kotlin/dulkirmod/features/ImpactDisplay.kt
@@ -1,8 +1,8 @@
package dulkirmod.features
+import dulkirmod.events.AlwaysPlaySoundEvent
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound
-import net.minecraftforge.client.event.sound.PlaySoundEvent
import net.minecraftforge.event.world.WorldEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable
@@ -25,7 +25,7 @@ object ImpactDisplay {
}
@SubscribeEvent
- fun onSound(event: PlaySoundEvent) {
+ fun onSound(event: AlwaysPlaySoundEvent) {
if (event.name != "mob.zombie.remedy") return
if (event.sound.pitch != 0.6984127f) return
if (event.sound.volume != 1.0f) return
diff --git a/src/main/kotlin/dulkirmod/features/ReaperDisplay.kt b/src/main/kotlin/dulkirmod/features/ReaperDisplay.kt
index c595775..5d7207f 100644
--- a/src/main/kotlin/dulkirmod/features/ReaperDisplay.kt
+++ b/src/main/kotlin/dulkirmod/features/ReaperDisplay.kt
@@ -1,8 +1,8 @@
package dulkirmod.features
+import dulkirmod.events.AlwaysPlaySoundEvent
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound
-import net.minecraftforge.client.event.sound.PlaySoundEvent
import net.minecraftforge.event.world.WorldEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable
@@ -25,7 +25,7 @@ object ReaperDisplay {
}
@SubscribeEvent
- fun onSound(event: PlaySoundEvent) {
+ fun onSound(event: AlwaysPlaySoundEvent) {
if (event.name != "mob.zombie.remedy") return
if (event.sound.pitch != 1.0f) return
if (event.sound.volume != .5f) return
diff --git a/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt b/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
index d91e59e..242e226 100644
--- a/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
+++ b/src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt
@@ -1,9 +1,9 @@
package dulkirmod.features.chat
import dulkirmod.config.DulkirConfig
+import dulkirmod.events.AlwaysPlaySoundEvent
import dulkirmod.utils.TextUtils
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
@@ -11,16 +11,16 @@ private val abiphoneFormat = "✆ (\\w+) ✆ ".toRegex()
private var lastRing: Long = 0
object AbiphoneDND {
- //BLOCK ABIPHONE SOUNDS
- @SubscribeEvent(receiveCanceled = false, priority = EventPriority.LOW)
- fun onSound(event: PlaySoundEvent) {
- if (!DulkirConfig.abiDND) return
- if (System.currentTimeMillis() - lastRing < 5000) {
- if (event.name == "note.pling" && event.sound.volume == 0.69f && event.sound.pitch == 1.6666666f) {
- event.result = null
- }
- }
- }
+ //BLOCK ABIPHONE SOUNDS
+ @SubscribeEvent(receiveCanceled = false, priority = EventPriority.LOW)
+ fun onSound(event: AlwaysPlaySoundEvent) {
+ if (!DulkirConfig.abiDND) return
+ if (System.currentTimeMillis() - lastRing < 5000) {
+ if (event.name == "note.pling" && event.sound.volume == 0.69f && event.sound.pitch == 1.6666666f) {
+ event.result = null
+ }
+ }
+ }
fun handle(event: ClientChatReceivedEvent, unformatted: String) {
if (!DulkirConfig.abiDND) return