From cb032ab6099d7e89056241056426d37edb3ba70d Mon Sep 17 00:00:00 2001 From: Matthew Jacques Date: Tue, 5 Nov 2019 23:49:41 +0000 Subject: [PATCH] impling plugin: add notify option for impling spawns --- .../plugins/implings/ImplingsConfig.java | 55 +++++++++++-------- .../plugins/implings/ImplingsOverlay.java | 2 +- .../plugins/implings/ImplingsPlugin.java | 21 ++++++- 3 files changed, 50 insertions(+), 28 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java index ed6ea5f9c5..cbbae7e547 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java @@ -36,15 +36,22 @@ import net.runelite.client.config.ConfigItem; @ConfigGroup("implings") public interface ImplingsConfig extends Config { + enum ImplingMode + { + NONE, + HIGHLIGHT, + NOTIFY + } + @ConfigItem( position = 1, keyName = "showbaby", name = "Show Baby implings", description = "Configures whether or not Baby impling tags are displayed" ) - default boolean showBaby() + default ImplingMode showBaby() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -64,9 +71,9 @@ public interface ImplingsConfig extends Config name = "Show Young implings", description = "Configures whether or not Young impling tags are displayed" ) - default boolean showYoung() + default ImplingMode showYoung() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -86,9 +93,9 @@ public interface ImplingsConfig extends Config name = "Show Gourmet implings", description = "Configures whether or not Gourmet impling tags are displayed" ) - default boolean showGourmet() + default ImplingMode showGourmet() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -108,9 +115,9 @@ public interface ImplingsConfig extends Config name = "Show Earth implings", description = "Configures whether or not Earth impling tags are displayed" ) - default boolean showEarth() + default ImplingMode showEarth() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -130,9 +137,9 @@ public interface ImplingsConfig extends Config name = "Show Essence implings", description = "Configures whether or not Essence impling tags are displayed" ) - default boolean showEssence() + default ImplingMode showEssence() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -152,9 +159,9 @@ public interface ImplingsConfig extends Config name = "Show Eclectic implings", description = "Configures whether or not Eclectic impling tags are displayed" ) - default boolean showEclectic() + default ImplingMode showEclectic() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -174,9 +181,9 @@ public interface ImplingsConfig extends Config name = "Show Nature implings", description = "Configures whether or not Nature impling tags are displayed" ) - default boolean showNature() + default ImplingMode showNature() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -196,9 +203,9 @@ public interface ImplingsConfig extends Config name = "Show Magpie implings", description = "Configures whether or not Magpie impling tags are displayed" ) - default boolean showMagpie() + default ImplingMode showMagpie() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -218,9 +225,9 @@ public interface ImplingsConfig extends Config name = "Show Ninja implings", description = "Configures whether or not Ninja impling tags are displayed" ) - default boolean showNinja() + default ImplingMode showNinja() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -240,9 +247,9 @@ public interface ImplingsConfig extends Config name = "Show Crystal implings", description = "Configures whether or not Crystal implings are displayed" ) - default boolean showCrystal() + default ImplingMode showCrystal() { - return false; + return ImplingMode.NONE; } @ConfigItem( @@ -262,9 +269,9 @@ public interface ImplingsConfig extends Config name = "Show Dragon implings", description = "Configures whether or not Dragon impling tags are displayed" ) - default boolean showDragon() + default ImplingMode showDragon() { - return true; + return ImplingMode.HIGHLIGHT; } @ConfigItem( @@ -284,9 +291,9 @@ public interface ImplingsConfig extends Config name = "Show Lucky implings", description = "Configures whether or not Lucky impling tags are displayed" ) - default boolean showLucky() + default ImplingMode showLucky() { - return true; + return ImplingMode.HIGHLIGHT; } @ConfigItem( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java index 94ee3130b4..8f58fbe7f2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsOverlay.java @@ -87,7 +87,7 @@ public class ImplingsOverlay extends Overlay { for (ImplingSpawn spawn : ImplingSpawn.values()) { - if (!plugin.showImplingType(spawn.getType())) + if (plugin.showImplingType(spawn.getType()) == ImplingsConfig.ImplingMode.NONE) { continue; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java index d24f9755e7..a20895b8f4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java @@ -37,6 +37,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.NpcChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; +import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; @@ -65,6 +66,9 @@ public class ImplingsPlugin extends Plugin @Inject private ImplingsConfig config; + @Inject + private Notifier notifier; + @Provides ImplingsConfig getConfig(ConfigManager configManager) { @@ -94,6 +98,11 @@ public class ImplingsPlugin extends Plugin if (impling != null) { + if (showImplingType(impling.getImplingType()) == ImplingsConfig.ImplingMode.NOTIFY) + { + notifier.notify(impling.getImplingType().getName() + " impling is in the area"); + } + implings.add(npc); } } @@ -106,6 +115,11 @@ public class ImplingsPlugin extends Plugin if (impling != null && !implings.contains(npc)) { + if (showImplingType(impling.getImplingType()) == ImplingsConfig.ImplingMode.NOTIFY) + { + notifier.notify(impling.getImplingType().getName() + " impling is in the area"); + } + implings.add(npc); } } @@ -139,10 +153,11 @@ public class ImplingsPlugin extends Plugin return false; } - return showImplingType(impling.getImplingType()); + ImplingsConfig.ImplingMode impMode = showImplingType(impling.getImplingType()); + return impMode == ImplingsConfig.ImplingMode.HIGHLIGHT || impMode == ImplingsConfig.ImplingMode.NOTIFY; } - boolean showImplingType(ImplingType implingType) + ImplingsConfig.ImplingMode showImplingType(ImplingType implingType) { switch (implingType) { @@ -171,7 +186,7 @@ public class ImplingsPlugin extends Plugin case LUCKY: return config.showLucky(); default: - return false; + return ImplingsConfig.ImplingMode.NONE; } }