idle notifier: Add low & high energy notifications (#12995)
Co-authored-by: Reasel <tannermjelde@gmail.com>
This commit is contained in:
@@ -27,6 +27,7 @@ package net.runelite.client.plugins.idlenotifier;
|
|||||||
import net.runelite.client.config.Config;
|
import net.runelite.client.config.Config;
|
||||||
import net.runelite.client.config.ConfigGroup;
|
import net.runelite.client.config.ConfigGroup;
|
||||||
import net.runelite.client.config.ConfigItem;
|
import net.runelite.client.config.ConfigItem;
|
||||||
|
import net.runelite.client.config.Range;
|
||||||
import net.runelite.client.config.Units;
|
import net.runelite.client.config.Units;
|
||||||
|
|
||||||
@ConfigGroup("idlenotifier")
|
@ConfigGroup("idlenotifier")
|
||||||
@@ -110,10 +111,36 @@ public interface IdleNotifierConfig extends Config
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "lowEnergy",
|
||||||
|
name = "Low Energy Threshold",
|
||||||
|
description = "The amount of energy points remaining to send a notification at. A value of 100 will disable notification.",
|
||||||
|
position = 8
|
||||||
|
)
|
||||||
|
@Units(Units.PERCENT)
|
||||||
|
@Range(max = 100)
|
||||||
|
default int getLowEnergyThreshold()
|
||||||
|
{
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "highEnergy",
|
||||||
|
name = "High Energy Threshold",
|
||||||
|
description = "The amount of energy points reached to send a notification. A value of 0 will disable notification.",
|
||||||
|
position = 9
|
||||||
|
)
|
||||||
|
@Units(Units.PERCENT)
|
||||||
|
@Range(max = 100)
|
||||||
|
default int getHighEnergyThreshold()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "oxygen",
|
keyName = "oxygen",
|
||||||
name = "Oxygen Threshold",
|
name = "Oxygen Threshold",
|
||||||
position = 8,
|
position = 10,
|
||||||
description = "The amount of remaining oxygen to send a notification at. A value of 0 will disable notification."
|
description = "The amount of remaining oxygen to send a notification at. A value of 0 will disable notification."
|
||||||
)
|
)
|
||||||
@Units(Units.PERCENT)
|
@Units(Units.PERCENT)
|
||||||
@@ -125,7 +152,7 @@ public interface IdleNotifierConfig extends Config
|
|||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "spec",
|
keyName = "spec",
|
||||||
name = "Spec Threshold",
|
name = "Spec Threshold",
|
||||||
position = 9,
|
position = 11,
|
||||||
description = "The amount of special attack energy reached to send a notification at. A value of 0 will disable notification."
|
description = "The amount of special attack energy reached to send a notification at. A value of 0 will disable notification."
|
||||||
)
|
)
|
||||||
@Units(Units.PERCENT)
|
@Units(Units.PERCENT)
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ public class IdleNotifierPlugin extends Plugin
|
|||||||
private boolean notifyPosition = false;
|
private boolean notifyPosition = false;
|
||||||
private boolean notifyHitpoints = true;
|
private boolean notifyHitpoints = true;
|
||||||
private boolean notifyPrayer = true;
|
private boolean notifyPrayer = true;
|
||||||
|
private boolean shouldNotifyLowEnergy = false;
|
||||||
|
private boolean shouldNotifyHighEnergy = false;
|
||||||
private boolean notifyOxygen = true;
|
private boolean notifyOxygen = true;
|
||||||
private boolean notifyIdleLogout = true;
|
private boolean notifyIdleLogout = true;
|
||||||
private boolean notify6HourLogout = true;
|
private boolean notify6HourLogout = true;
|
||||||
@@ -471,6 +473,16 @@ public class IdleNotifierPlugin extends Plugin
|
|||||||
notifier.notify("[" + local.getName() + "] has low prayer!");
|
notifier.notify("[" + local.getName() + "] has low prayer!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (checkLowEnergy())
|
||||||
|
{
|
||||||
|
notifier.notify("[" + local.getName() + "] has low run energy!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkHighEnergy())
|
||||||
|
{
|
||||||
|
notifier.notify("[" + local.getName() + "] has restored run energy!");
|
||||||
|
}
|
||||||
|
|
||||||
if (checkLowOxygen())
|
if (checkLowOxygen())
|
||||||
{
|
{
|
||||||
notifier.notify("[" + local.getName() + "] has low oxygen!");
|
notifier.notify("[" + local.getName() + "] has low oxygen!");
|
||||||
@@ -572,6 +584,52 @@ public class IdleNotifierPlugin extends Plugin
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkLowEnergy()
|
||||||
|
{
|
||||||
|
if (config.getLowEnergyThreshold() >= 100)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (client.getEnergy() <= config.getLowEnergyThreshold())
|
||||||
|
{
|
||||||
|
if (shouldNotifyLowEnergy)
|
||||||
|
{
|
||||||
|
shouldNotifyLowEnergy = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
shouldNotifyLowEnergy = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkHighEnergy()
|
||||||
|
{
|
||||||
|
if (config.getHighEnergyThreshold() == 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (client.getEnergy() >= config.getHighEnergyThreshold())
|
||||||
|
{
|
||||||
|
if (shouldNotifyHighEnergy)
|
||||||
|
{
|
||||||
|
shouldNotifyHighEnergy = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
shouldNotifyHighEnergy = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean checkInteractionIdle(Duration waitDuration, Player local)
|
private boolean checkInteractionIdle(Duration waitDuration, Player local)
|
||||||
{
|
{
|
||||||
if (lastInteract == null)
|
if (lastInteract == null)
|
||||||
|
|||||||
Reference in New Issue
Block a user