Use GE limits from item stats
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.http.api.item;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Value;
|
||||
|
||||
@Value
|
||||
@@ -32,6 +33,8 @@ public class ItemStats
|
||||
private boolean quest;
|
||||
private boolean equipable;
|
||||
private double weight;
|
||||
@SerializedName("ge_limit")
|
||||
private int geLimit;
|
||||
|
||||
private ItemEquipmentStats equipment;
|
||||
|
||||
@@ -76,7 +79,7 @@ public class ItemStats
|
||||
newEquipment = equipment;
|
||||
}
|
||||
|
||||
return new ItemStats(quest, equipable, newWeight, newEquipment);
|
||||
return new ItemStats(quest, equipable, newWeight, 0, newEquipment);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
package net.runelite.client.plugins.grandexchange;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import javax.inject.Inject;
|
||||
import javax.swing.JPanel;
|
||||
@@ -90,9 +89,4 @@ class GrandExchangePanel extends PluginPanel
|
||||
tabGroup.select(searchTab);
|
||||
revalidate();
|
||||
}
|
||||
|
||||
void setGELimits(Map<Integer, Integer> itemGELimits)
|
||||
{
|
||||
searchPanel.setItemGELimits(itemGELimits);
|
||||
}
|
||||
}
|
||||
@@ -32,8 +32,6 @@ import com.google.gson.Gson;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import javax.inject.Inject;
|
||||
@@ -51,7 +49,6 @@ import net.runelite.api.ItemComposition;
|
||||
import net.runelite.api.MenuAction;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.api.events.FocusChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GrandExchangeOfferChanged;
|
||||
@@ -66,6 +63,7 @@ import net.runelite.client.account.AccountSession;
|
||||
import net.runelite.client.account.SessionManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
@@ -80,6 +78,7 @@ import net.runelite.client.util.QuantityFormatter;
|
||||
import net.runelite.client.util.Text;
|
||||
import net.runelite.http.api.ge.GrandExchangeClient;
|
||||
import net.runelite.http.api.ge.GrandExchangeTrade;
|
||||
import net.runelite.http.api.item.ItemStats;
|
||||
import net.runelite.http.api.osbuddy.OSBGrandExchangeClient;
|
||||
import net.runelite.http.api.osbuddy.OSBGrandExchangeResult;
|
||||
|
||||
@@ -149,7 +148,6 @@ public class GrandExchangePlugin extends Plugin
|
||||
|
||||
private Widget grandExchangeText;
|
||||
private Widget grandExchangeItem;
|
||||
private Map<Integer, Integer> itemGELimits;
|
||||
|
||||
private int osbItem;
|
||||
private OSBGrandExchangeResult osbGrandExchangeResult;
|
||||
@@ -185,9 +183,7 @@ public class GrandExchangePlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
itemGELimits = loadGELimits();
|
||||
panel = injector.getInstance(GrandExchangePanel.class);
|
||||
panel.setGELimits(itemGELimits);
|
||||
|
||||
final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "ge_icon.png");
|
||||
|
||||
@@ -224,7 +220,6 @@ public class GrandExchangePlugin extends Plugin
|
||||
keyManager.unregisterKeyListener(inputListener);
|
||||
grandExchangeText = null;
|
||||
grandExchangeItem = null;
|
||||
itemGELimits = null;
|
||||
grandExchangeClient = null;
|
||||
}
|
||||
|
||||
@@ -507,14 +502,14 @@ public class GrandExchangePlugin extends Plugin
|
||||
String[] lines = geText.getText().split("<br>");
|
||||
String text = lines[0]; // remove any limit or OSB ge values
|
||||
|
||||
if (config.enableGELimits() && itemGELimits != null)
|
||||
if (config.enableGELimits())
|
||||
{
|
||||
final Integer itemLimit = itemGELimits.get(itemId);
|
||||
final ItemStats itemStats = itemManager.getItemStats(itemId, false);
|
||||
|
||||
// If we have item buy limit, append it
|
||||
if (itemLimit != null)
|
||||
if (itemStats != null && itemStats.getGeLimit() > 0)
|
||||
{
|
||||
text += BUY_LIMIT_GE_TEXT + QuantityFormatter.formatNumber(itemLimit);
|
||||
text += BUY_LIMIT_GE_TEXT + QuantityFormatter.formatNumber(itemStats.getGeLimit());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -557,12 +552,4 @@ public class GrandExchangePlugin extends Plugin
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static Map<Integer, Integer> loadGELimits()
|
||||
{
|
||||
final InputStream geLimitData = GrandExchangePlugin.class.getResourceAsStream("ge_limits.json");
|
||||
final Map<Integer, Integer> itemGELimits = GSON.fromJson(new InputStreamReader(geLimitData), BUY_LIMIT_TOKEN.getType());
|
||||
log.debug("Loaded {} limits", itemGELimits.size());
|
||||
return itemGELimits;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,21 @@ import java.awt.Dimension;
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.GridBagLayout;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.ItemComposition;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.util.AsyncBufferedImage;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.components.IconTextField;
|
||||
import net.runelite.client.ui.components.PluginErrorPanel;
|
||||
import net.runelite.client.util.AsyncBufferedImage;
|
||||
import net.runelite.http.api.item.ItemPrice;
|
||||
import net.runelite.http.api.item.ItemStats;
|
||||
|
||||
/**
|
||||
* This panel holds the search section of the Grand Exchange Plugin.
|
||||
@@ -80,9 +78,6 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
|
||||
private final List<GrandExchangeItems> itemsList = new ArrayList<>();
|
||||
|
||||
@Setter
|
||||
private Map<Integer, Integer> itemGELimits = Collections.emptyMap();
|
||||
|
||||
GrandExchangeSearchPanel(ClientThread clientThread, ItemManager itemManager, ScheduledExecutorService executor)
|
||||
{
|
||||
this.clientThread = clientThread;
|
||||
@@ -209,13 +204,10 @@ class GrandExchangeSearchPanel extends JPanel
|
||||
int itemId = item.getId();
|
||||
|
||||
ItemComposition itemComp = itemManager.getItemComposition(itemId);
|
||||
if (itemComp == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
ItemStats itemStats = itemManager.getItemStats(itemId, false);
|
||||
|
||||
int itemPrice = item.getPrice();
|
||||
int itemLimit = itemGELimits.getOrDefault(itemId, 0);
|
||||
int itemLimit = itemStats != null ? itemStats.getGeLimit() : 0;
|
||||
AsyncBufferedImage itemImage = itemManager.getImage(itemId);
|
||||
|
||||
itemsList.add(new GrandExchangeItems(itemImage, item.getName(), itemId, itemPrice, itemComp.getPrice() * 0.6, itemLimit));
|
||||
|
||||
@@ -49,7 +49,7 @@ import net.runelite.http.api.item.ItemStats;
|
||||
public class ItemStatOverlay extends Overlay
|
||||
{
|
||||
// Unarmed attack speed is 6
|
||||
private static final ItemStats UNARMED = new ItemStats(false, true, 0,
|
||||
private static final ItemStats UNARMED = new ItemStats(false, true, 0, 0,
|
||||
ItemEquipmentStats.builder()
|
||||
.aspeed(6)
|
||||
.build());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user