diff --git a/runelite-client/src/main/java/net/runelite/client/game/SoundManager.java b/runelite-client/src/main/java/net/runelite/client/game/SoundManager.java index 59b3435d42..2ea639918c 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/SoundManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/SoundManager.java @@ -28,7 +28,7 @@ public class SoundManager this.runeliteConfig = runeLiteConfig; } - public void playSound(final Sound sound) throws UnsupportedAudioFileException, IOException, LineUnavailableException + public void playSound(final Sound sound) { new Thread(new Runnable() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahConfig.java index 3955d043a2..2911317a38 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahConfig.java @@ -44,4 +44,14 @@ public interface ZulrahConfig extends Config { return true; } + + @ConfigItem( + keyName = "sounds", + name = "Sounds Enabled", + description = "Configures whether client sounds are enabled for zulrah" + ) + default boolean sounds() + { + return true; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java index 493092ec6a..5b13e0a510 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java @@ -38,6 +38,8 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.game.Sound; +import net.runelite.client.game.SoundManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -50,7 +52,9 @@ import net.runelite.client.plugins.zulrah.patterns.ZulrahPatternA; import net.runelite.client.plugins.zulrah.patterns.ZulrahPatternB; import net.runelite.client.plugins.zulrah.patterns.ZulrahPatternC; import net.runelite.client.plugins.zulrah.patterns.ZulrahPatternD; +import net.runelite.client.plugins.zulrah.phase.StandLocation; import net.runelite.client.plugins.zulrah.phase.ZulrahPhase; +import net.runelite.client.plugins.zulrah.phase.ZulrahType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( @@ -79,6 +83,9 @@ public class ZulrahPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private SoundManager soundManager; + @Inject private ZulrahCurrentPhaseOverlay currentPhaseOverlay; @@ -108,6 +115,8 @@ public class ZulrahPlugin extends Plugin private ZulrahInstance instance; + private ZulrahPhase phase; + @Override protected void startUp() throws Exception { @@ -126,6 +135,7 @@ public class ZulrahPlugin extends Plugin overlayManager.remove(zulrahOverlay); zulrah = null; instance = null; + phase = null; } @Subscribe @@ -153,6 +163,22 @@ public class ZulrahPlugin extends Plugin } ZulrahPhase currentPhase = ZulrahPhase.valueOf(zulrah, instance.getStartLocation()); + ZulrahType type = phase.getType(); + + + if (config.sounds()) + { + if (type == ZulrahType.RANGE) + { + soundManager.playSound(Sound.PRAY_RANGED); + } + if (type == ZulrahType.MAGIC) + { + soundManager.playSound(Sound.PRAY_MAGIC); + } + } + + if (instance.getPhase() == null) { instance.setPhase(currentPhase); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPattern.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPattern.java index b6c9cec4ab..04cd35e278 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPattern.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPattern.java @@ -74,4 +74,4 @@ public abstract class ZulrahPattern { return index >= pattern.size(); } -} +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPatternC.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPatternC.java index 3b9aa40edb..893ffcaff4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPatternC.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/patterns/ZulrahPatternC.java @@ -53,4 +53,4 @@ public class ZulrahPatternC extends ZulrahPattern { return "Pattern C"; } -} +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/phase/ZulrahPhase.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/phase/ZulrahPhase.java index 8af7402574..c1fc54b7da 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/phase/ZulrahPhase.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/phase/ZulrahPhase.java @@ -69,12 +69,12 @@ public class ZulrahPhase public String toString() { return "ZulrahPhase{" + - "zulrahLocation=" + zulrahLocation + - ", type=" + type + - ", jad=" + jad + - ", standLocation=" + standLocation + - ", prayer=" + prayer + - '}'; + "zulrahLocation=" + zulrahLocation + + ", type=" + type + + ", jad=" + jad + + ", standLocation=" + standLocation + + ", prayer=" + prayer + + '}'; } // world location @@ -184,4 +184,4 @@ public class ZulrahPhase } return RANGE_COLOR; } -} +} \ No newline at end of file