diff options
author | Ronald Inglett <71849533+inglettronald@users.noreply.github.com> | 2023-06-26 17:32:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-26 17:32:59 -0500 |
commit | ef1eac4f891c16e169c3a79eabc02a9e94fc55d2 (patch) | |
tree | 27630c8b768e9b3141cc6efc0bcce2c460779e49 /src | |
parent | 5aa81b2dbf81f0ef3907ebec082828b7e0023798 (diff) | |
parent | 23840aa72afb6708cfc2474873c0d6be6fe2da6f (diff) | |
download | DulkirMod-ef1eac4f891c16e169c3a79eabc02a9e94fc55d2.tar.gz DulkirMod-ef1eac4f891c16e169c3a79eabc02a9e94fc55d2.tar.bz2 DulkirMod-ef1eac4f891c16e169c3a79eabc02a9e94fc55d2.zip |
Merge pull request #20 from romangraef/feat/hypefixes
Various fixes for hype sound effects
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/dulkirmod/mixins/MixinItem.java | 2 | ||||
-rw-r--r-- | src/main/java/dulkirmod/mixins/MixinSoundManager.java | 18 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/events/Events.kt | 10 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/features/ImpactDisplay.kt | 4 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/features/ReaperDisplay.kt | 4 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/features/chat/AbiphoneDND.kt | 22 | ||||
-rw-r--r-- | src/main/resources/mixins.dulkirmod.json | 13 |
7 files changed, 51 insertions, 22 deletions
diff --git a/src/main/java/dulkirmod/mixins/MixinItem.java b/src/main/java/dulkirmod/mixins/MixinItem.java index 62ae99d..8f14151 100644 --- a/src/main/java/dulkirmod/mixins/MixinItem.java +++ b/src/main/java/dulkirmod/mixins/MixinItem.java @@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(value = {Item.class}) +@Mixin(Item.class) public class MixinItem { @Inject(method = "shouldCauseReequipAnimation", at = @At("HEAD"), cancellable = true, remap = false) diff --git a/src/main/java/dulkirmod/mixins/MixinSoundManager.java b/src/main/java/dulkirmod/mixins/MixinSoundManager.java new file mode 100644 index 0000000..f4e228f --- /dev/null +++ b/src/main/java/dulkirmod/mixins/MixinSoundManager.java @@ -0,0 +1,18 @@ +package dulkirmod.mixins; + +import dulkirmod.events.AlwaysPlaySoundEvent; +import net.minecraft.client.audio.ISound; +import net.minecraft.client.audio.SoundManager; +import net.minecraftforge.common.MinecraftForge; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(SoundManager.class) +public class MixinSoundManager { + @Inject(at = @At("HEAD"), method = "playSound") + public void onSound(ISound p_sound, CallbackInfo ci) { + MinecraftForge.EVENT_BUS.post(new AlwaysPlaySoundEvent(p_sound, (SoundManager) (Object) this)); + } +} 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 diff --git a/src/main/resources/mixins.dulkirmod.json b/src/main/resources/mixins.dulkirmod.json index a30c6d8..a6684b3 100644 --- a/src/main/resources/mixins.dulkirmod.json +++ b/src/main/resources/mixins.dulkirmod.json @@ -1,21 +1,22 @@ { "compatibilityLevel": "JAVA_8", - "minVersion": "0.8", + "minVersion": "0.6", "package": "dulkirmod.mixins", "refmap": "mixins.dulkirmod.refmap.json", "client": [ "AccessorRenderManager", + "MixinEntity", + "MixinEntityLivingBase", "MixinEntityRenderer", "MixinGuiContainer", "MixinGuiScreen", - "MixinItemRenderer", - "MixinLayerArmorBase", - "MixinRenderManager", - "MixinEntity", - "MixinEntityLivingBase", "MixinGuiUtils", "MixinItem", + "MixinItemRenderer", + "MixinLayerArmorBase", "MixinOldAnimations", + "MixinRenderManager", + "MixinSoundManager", "MixinWorld" ] } |