Merge pull request #6696 from deathbeam/status-bars-numberformat

Properly parse stat change value in status bars
This commit is contained in:
Tomas Slusny
2018-11-26 15:58:44 +00:00
committed by GitHub

View File

@@ -24,13 +24,14 @@
*/ */
package net.runelite.client.plugins.statusbars; package net.runelite.client.plugins.statusbars;
import com.google.common.base.Strings;
import com.google.common.primitives.Ints;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Image; import java.awt.Image;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.ItemID;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.Point; import net.runelite.api.Point;
import net.runelite.api.Skill; import net.runelite.api.Skill;
@@ -182,22 +183,34 @@ class StatusBarsOverlay extends Overlay
int prayerHealValue = 0; int prayerHealValue = 0;
int foodHealValue = 0; int foodHealValue = 0;
if (change != null & if (change != null & entry.getParam1() == WidgetInfo.INVENTORY.getId())
entry.getParam1() == WidgetInfo.INVENTORY.getId() &&
entry.getIdentifier() != ItemID.SPICY_STEW)
{ {
final StatsChanges statsChanges = change.calculate(client); final StatsChanges statsChanges = change.calculate(client);
for (final StatChange c : statsChanges.getStatChanges()) for (final StatChange c : statsChanges.getStatChanges())
{ {
final String strVar = c.getTheoretical();
if (Strings.isNullOrEmpty(strVar))
{
continue;
}
final Integer value = Ints.tryParse(strVar.startsWith("+") ? strVar.substring(1) : strVar);
if (value == null)
{
continue;
}
if (c.getStat().getName().equals(Skill.HITPOINTS.getName())) if (c.getStat().getName().equals(Skill.HITPOINTS.getName()))
{ {
foodHealValue = Integer.parseInt(c.getTheoretical()); foodHealValue = value;
} }
if (c.getStat().getName().equals(Skill.PRAYER.getName())) if (c.getStat().getName().equals(Skill.PRAYER.getName()))
{ {
prayerHealValue = Integer.parseInt(c.getTheoretical()); prayerHealValue = value;
} }
if (foodHealValue != 0 && prayerHealValue != 0) if (foodHealValue != 0 && prayerHealValue != 0)