diff --git a/runelite-api/src/main/java/net/runelite/api/Varbits.java b/runelite-api/src/main/java/net/runelite/api/Varbits.java index a9f1b92f8d..9f4b7f9a61 100644 --- a/runelite-api/src/main/java/net/runelite/api/Varbits.java +++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java @@ -408,6 +408,11 @@ public enum Varbits */ ACCOUNT_TYPE(1777), + /** + * The varbit that stores the oxygen percentage for player + */ + OXYGEN_LEVEL(5811), + /** * Corp beast damage */ diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java index 062d8bc4ec..1d688565ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java @@ -96,4 +96,16 @@ public interface IdleNotifierConfig extends Config { return 0; } + + @ConfigItem( + keyName = "oxygen", + name = "Oxygen Notification Threshold", + position = 7, + description = "The amount of remaining oxygen to send a notification at. A value of 0 will disable notification." + ) + default int getOxygenThreshold() + { + return 0; + } + } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index 98a898d376..d8032e3ea9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -83,6 +83,7 @@ public class IdleNotifierPlugin extends Plugin private Actor lastInteract; private boolean notifyHitpoints = true; private boolean notifyPrayer = true; + private boolean notifyOxygen = true; private boolean notifyIdleLogout = true; private boolean notify6HourLogout = true; private int lastCombatCountdown = 0; @@ -345,6 +346,32 @@ public class IdleNotifierPlugin extends Plugin { notifier.notify("[" + local.getName() + "] has low prayer!"); } + + if (checkLowOxygen()) + { + notifier.notify("[" + local.getName() + "] has low oxygen!"); + } + } + + private boolean checkLowOxygen() + { + if (config.getOxygenThreshold() == 0) + { + return false; + } + if (config.getOxygenThreshold() >= client.getVar(Varbits.OXYGEN_LEVEL) * 0.1) + { + if (!notifyOxygen) + { + notifyOxygen = true; + return true; + } + } + else + { + notifyOxygen = false; + } + return false; } private boolean checkLowHitpoints()