lootrecordwriter: Fix reading appended objects with new GSON version (#1239)

* lootrecordwriter: Fix reading appended objects with new GSON version

* Add The Gauntlet boss tab

* Remove name from list upon deleting file

* Add hydra heads to boss tab

* Fix loot panel total value calculation
This commit is contained in:
Owain van Brakel
2019-08-02 22:00:12 +02:00
committed by Kyleeld
parent 878e6a1fe6
commit a62c485570
5 changed files with 27 additions and 9 deletions

View File

@@ -109,18 +109,27 @@ public class LootRecordWriter
try (final BufferedReader br = new BufferedReader(new FileReader(file)))
{
// read line by line
String line;
int totalBrackets = 0;
while ((line = br.readLine()) != null)
{
sb.append(line).append("\n");
}
if (line.contains("{"))
{
totalBrackets++;
}
else if (line.contains("}"))
{
totalBrackets--;
}
sb.append(line);
if (sb.length() > 0)
{
final LTRecord r = RuneLiteAPI.GSON.fromJson(sb.toString(), LTRecord.class);
data.add(r);
if (totalBrackets == 0 && sb.length() > 0)
{
final LTRecord r = RuneLiteAPI.GSON.fromJson(sb.toString(), LTRecord.class);
data.add(r);
sb.setLength(0);
}
}
}
catch (FileNotFoundException e)

View File

@@ -266,6 +266,7 @@ public class StonedTrackerPlugin extends Plugin
public boolean clearStoredDataByName(final String name)
{
lootNames.remove(name);
return writer.deleteLootTrackerRecords(name);
}
}

View File

@@ -80,6 +80,8 @@ public enum BossTab
// Other Bosses
GIANT_MOLE("Giant Mole", ItemID.BABY_MOLE, "Other"),
CORPOREAL_BEAST("Corporeal Beast", ItemID.PET_CORPOREAL_CRITTER, "Other"),
THE_GAUNTLET("The Gauntlet", ItemID.YOUNGLLEF, "Other"),
// Dagannoth Kings
DAGANNOTH_REX("Dagannoth Rex", ItemID.PET_DAGANNOTH_REX, "Dagannoth Kings"),
DAGANNOTH_PRIME("Dagannoth Prime", ItemID.PET_DAGANNOTH_PRIME, "Dagannoth Kings"),

View File

@@ -236,6 +236,7 @@ public enum UniqueItem
HYDRAS_FANG(ItemID.HYDRAS_FANG, BossTab.ALCHEMICAL_HYDRA, 0),
HYDRAS_HEART(ItemID.HYDRAS_HEART, BossTab.ALCHEMICAL_HYDRA, 0),
HYDRA_TAIL(ItemID.HYDRA_TAIL, BossTab.ALCHEMICAL_HYDRA, 0),
HYDRA_HEADS(ItemID.ALCHEMICAL_HYDRA_HEADS, BossTab.ALCHEMICAL_HYDRA, 0),
HYDRA_LEATHER(ItemID.HYDRA_LEATHER, BossTab.ALCHEMICAL_HYDRA, 1),
HYDRAS_CLAW(ItemID.HYDRAS_CLAW, BossTab.ALCHEMICAL_HYDRA, 1),
DRAGON_THROWNAXE(ItemID.DRAGON_THROWNAXE, BossTab.ALCHEMICAL_HYDRA, 1),
@@ -257,6 +258,12 @@ public enum UniqueItem
SPECTRAL_SIGIL(ItemID.SPECTRAL_SIGIL, BossTab.CORPOREAL_BEAST, 1),
ARCANE_SIGIL(ItemID.ARCANE_SIGIL, BossTab.CORPOREAL_BEAST, 1),
ELYSIAN_SIGIL(ItemID.ELYSIAN_SIGIL, BossTab.CORPOREAL_BEAST, 1),
// The Gauntlet
CRYSTAL_SHARD(ItemID.CRYSTAL_SHARD, BossTab.THE_GAUNTLET, 0),
CRYSTAL_WEAPON_SEED(ItemID.CRYSTAL_WEAPON_SEED, BossTab.THE_GAUNTLET, 0),
CRYSTAL_ARMOUR_SEED(ItemID.CRYSTAL_ARMOUR_SEED, BossTab.THE_GAUNTLET, 0),
BLADE_OF_SAELDOR(ItemID.BLADE_OF_SAELDOR, BossTab.THE_GAUNTLET, 0),
YOUNGLLEF(ItemID.YOUNGLLEF, BossTab.THE_GAUNTLET, 0),
// Dagannoth Rex
RING_OF_LIFE(ItemID.RING_OF_LIFE, BossTab.DAGANNOTH_REX, -1),
WARRIOR_RING(ItemID.WARRIOR_RING, BossTab.DAGANNOTH_REX, -1),

View File

@@ -188,7 +188,7 @@ class LootPanel extends JPanel
// Track total price of all tracked items for this panel
// Also ensure it is placed in correct location by preserving its gridy value
long totalValue = 0;
long totalValue = consolidated.values().stream().mapToLong(e -> e.getPrice() * e.getQuantity()).sum();
final int totalValueIndex = c.gridy;
c.gridy++;
@@ -200,7 +200,6 @@ class LootPanel extends JPanel
if (itemsToDisplay.size() > 0)
{
totalValue = itemsToDisplay.stream().mapToLong(e -> e.getPrice() * e.getQuantity()).sum();
if (itemBreakdown)
{
for (final LTItemEntry e : itemsToDisplay)