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