From 85c5cf9a19c62a0208b5e418beebf8e2f7bf7cd3 Mon Sep 17 00:00:00 2001 From: Lewis Date: Thu, 2 Apr 2020 17:26:21 +0000 Subject: [PATCH] music plugin: add option to mute prayer sounds --- .../java/net/runelite/api/SoundEffectID.java | 28 ++++++++++++- .../client/plugins/music/MusicConfig.java | 11 +++++ .../client/plugins/music/MusicPlugin.java | 41 +++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/SoundEffectID.java b/runelite-api/src/main/java/net/runelite/api/SoundEffectID.java index 6e794bab9b..6ccfd782e0 100644 --- a/runelite-api/src/main/java/net/runelite/api/SoundEffectID.java +++ b/runelite-api/src/main/java/net/runelite/api/SoundEffectID.java @@ -62,7 +62,33 @@ public final class SoundEffectID public final static int ZERO_DAMAGE_SPLAT = 511; public final static int TAKE_DAMAGE_SPLAT = 510; public final static int ATTACK_HIT = 2498; - public final static int PRAYER_ACTIVATE_VROOM = 2690; + + public final static int PRAYER_ACTIVATE_THICK_SKIN = 2690; + public final static int PRAYER_ACTIVATE_BURST_OF_STRENGTH = 2688; + public final static int PRAYER_ACTIVATE_CLARITY_OF_THOUGHT = 2664; + public final static int PRAYER_ACTIVATE_SHARP_EYE_RIGOUR = 2685; + public final static int PRAYER_ACTIVATE_MYSTIC_WILL_AUGURY = 2670; + public final static int PRAYER_ACTIVATE_ROCK_SKIN = 2684; + public final static int PRAYER_ACTIVATE_SUPERHUMAN_STRENGTH = 2689; + public final static int PRAYER_ACTIVATE_IMPROVED_REFLEXES = 2662; + public final static int PRAYER_ACTIVATE_RAPID_RESTORE_PRESERVE = 2679; + public final static int PRAYER_ACTIVATE_RAPID_HEAL = 2678; + public final static int PRAYER_ACTIVATE_PROTECT_ITEM = 1982; + public final static int PRAYER_ACTIVATE_HAWK_EYE = 2666; + public final static int PRAYER_ACTIVATE_MYSTIC_LORE = 2668; + public final static int PRAYER_ACTIVATE_STEEL_SKIN = 2687; + public final static int PRAYER_ACTIVATE_ULTIMATE_STRENGTH = 2691; + public final static int PRAYER_ACTIVATE_INCREDIBLE_REFLEXES = 2667; + public final static int PRAYER_ACTIVATE_PROTECT_FROM_MAGIC = 2675; + public final static int PRAYER_ACTIVATE_PROTECT_FROM_MISSILES = 2677; + public final static int PRAYER_ACTIVATE_PROTECT_FROM_MELEE = 2676; + public final static int PRAYER_ACTIVATE_EAGLE_EYE = 2665; + public final static int PRAYER_ACTIVATE_MYSTIC_MIGHT = 2669; + public final static int PRAYER_ACTIVATE_RETRIBUTION = 2682; + public final static int PRAYER_ACTIVATE_REDEMPTION = 2680; + public final static int PRAYER_ACTIVATE_SMITE = 2686; + public final static int PRAYER_ACTIVATE_CHIVALRY = 3826; + public final static int PRAYER_ACTIVATE_PIETY = 3825; public final static int PRAYER_DEACTIVE_VWOOP = 2663; public final static int PRAYER_DEPLETE_TWINKLE = 2672; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicConfig.java index 16eea65c9f..594a1c7380 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicConfig.java @@ -75,6 +75,17 @@ public interface MusicConfig extends Config return false; } + @ConfigItem( + keyName = "mutePrayerSounds", + name = "Mute prayer sounds", + description = "Mute prayer activation and deactivation sounds", + position = 4 + ) + default boolean mutePrayerSounds() + { + return false; + } + @ConfigItem( keyName = "musicVolume", name = "", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java index f6e78ef4b5..1bc8d0fa2d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java @@ -50,6 +50,7 @@ import net.runelite.api.SpriteID; import net.runelite.api.VarClientInt; import net.runelite.api.VarPlayer; import net.runelite.api.events.AreaSoundEffectPlayed; +import net.runelite.api.events.SoundEffectPlayed; import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.ScriptCallbackEvent; @@ -82,6 +83,36 @@ public class MusicPlugin extends Plugin SoundEffectID.TELEPORT_VWOOP ); + private static final Set PRAYER_SOUNDS = ImmutableSet.of( + SoundEffectID.PRAYER_ACTIVATE_THICK_SKIN, + SoundEffectID.PRAYER_ACTIVATE_BURST_OF_STRENGTH, + SoundEffectID.PRAYER_ACTIVATE_CLARITY_OF_THOUGHT, + SoundEffectID.PRAYER_ACTIVATE_SHARP_EYE_RIGOUR, + SoundEffectID.PRAYER_ACTIVATE_MYSTIC_WILL_AUGURY, + SoundEffectID.PRAYER_ACTIVATE_ROCK_SKIN, + SoundEffectID.PRAYER_ACTIVATE_SUPERHUMAN_STRENGTH, + SoundEffectID.PRAYER_ACTIVATE_IMPROVED_REFLEXES, + SoundEffectID.PRAYER_ACTIVATE_RAPID_RESTORE_PRESERVE, + SoundEffectID.PRAYER_ACTIVATE_RAPID_HEAL, + SoundEffectID.PRAYER_ACTIVATE_PROTECT_ITEM, + SoundEffectID.PRAYER_ACTIVATE_HAWK_EYE, + SoundEffectID.PRAYER_ACTIVATE_MYSTIC_LORE, + SoundEffectID.PRAYER_ACTIVATE_STEEL_SKIN, + SoundEffectID.PRAYER_ACTIVATE_ULTIMATE_STRENGTH, + SoundEffectID.PRAYER_ACTIVATE_INCREDIBLE_REFLEXES, + SoundEffectID.PRAYER_ACTIVATE_PROTECT_FROM_MAGIC, + SoundEffectID.PRAYER_ACTIVATE_PROTECT_FROM_MISSILES, + SoundEffectID.PRAYER_ACTIVATE_PROTECT_FROM_MELEE, + SoundEffectID.PRAYER_ACTIVATE_EAGLE_EYE, + SoundEffectID.PRAYER_ACTIVATE_MYSTIC_MIGHT, + SoundEffectID.PRAYER_ACTIVATE_RETRIBUTION, + SoundEffectID.PRAYER_ACTIVATE_REDEMPTION, + SoundEffectID.PRAYER_ACTIVATE_SMITE, + SoundEffectID.PRAYER_ACTIVATE_CHIVALRY, + SoundEffectID.PRAYER_ACTIVATE_PIETY, + SoundEffectID.PRAYER_DEACTIVE_VWOOP + ); + @Inject private Client client; @@ -590,4 +621,14 @@ public class MusicPlugin extends Plugin areaSoundEffectPlayed.consume(); } } + + @Subscribe + public void onSoundEffectPlayed(SoundEffectPlayed soundEffectPlayed) + { + if (musicConfig.mutePrayerSounds() + && PRAYER_SOUNDS.contains(soundEffectPlayed.getSoundId())) + { + soundEffectPlayed.consume(); + } + } }