runelite-client: Always use the mapped price for items

This commit is contained in:
Max Weber
2018-08-01 23:40:41 -06:00
committed by Tomas Slusny
parent 594573faeb
commit b4f95f1f4b
9 changed files with 35 additions and 71 deletions

View File

@@ -45,6 +45,7 @@ import net.runelite.api.Client;
import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM;
import net.runelite.api.GameState;
import net.runelite.api.ItemComposition;
import net.runelite.api.ItemID;
import net.runelite.api.SpritePixels;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.callback.ClientThread;
@@ -176,13 +177,31 @@ public class ItemManager
/**
* Look up an item's price
*
* @param itemId item id
* @param itemID item id
* @return item price
*/
public ItemPrice getItemPrice(int itemId)
public int getItemPrice(int itemID)
{
itemId = ItemMapping.mapFirst(itemId);
return itemPrices.get(itemId);
if (itemID == ItemID.COINS_995)
{
return 1;
}
if (itemID == ItemID.PLATINUM_TOKEN)
{
return 1000;
}
int price = 0;
for (int mappedID : ItemMapping.map(itemID))
{
ItemPrice ip = itemPrices.get(mappedID);
if (ip != null)
{
price += ip.getPrice();
}
}
return price;
}
/**

View File

@@ -38,9 +38,7 @@ import static net.runelite.api.ItemID.PLATINUM_TOKEN;
import net.runelite.api.queries.BankItemQuery;
import net.runelite.api.widgets.WidgetItem;
import net.runelite.client.game.ItemManager;
import net.runelite.client.game.ItemMapping;
import net.runelite.client.util.QueryRunner;
import net.runelite.http.api.item.ItemPrice;
@Slf4j
class BankCalculation
@@ -143,20 +141,7 @@ class BankCalculation
continue;
}
long price = 0;
for (int mappedItemId : ItemMapping.map(itemId))
{
ItemPrice cachedItemPrice = itemManager.getItemPrice(mappedItemId);
if (cachedItemPrice == null)
{
// this happens to items which have no ge price
continue;
}
price += cachedItemPrice.getPrice();
}
gePrice += price * quantity;
gePrice += (long) itemManager.getItemPrice(itemId) * quantity;
}
}
}

View File

@@ -62,7 +62,6 @@ import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.util.StackFormatter;
import net.runelite.http.api.item.ItemPrice;
@PluginDescriptor(
name = "Barrows Brothers",
@@ -222,13 +221,7 @@ public class BarrowsPlugin extends Plugin
for (Item item : items)
{
ItemPrice cachedItemPrice = itemManager.getItemPrice(item.getId());
if (cachedItemPrice == null)
{
continue;
}
long itemStack = (long) cachedItemPrice.getPrice() * (long) item.getQuantity();
long itemStack = (long) itemManager.getItemPrice(item.getId()) * (long) item.getQuantity();
chestPrice += itemStack;
}

View File

@@ -70,7 +70,6 @@ import net.runelite.http.api.hiscore.HiscoreSkill;
import net.runelite.http.api.hiscore.SingleHiscoreSkillResult;
import net.runelite.http.api.hiscore.Skill;
import net.runelite.http.api.item.Item;
import net.runelite.http.api.item.ItemPrice;
import net.runelite.http.api.item.SearchResult;
import net.runelite.http.api.kc.KillCountClient;
@@ -480,7 +479,7 @@ public class ChatCommandsPlugin extends Plugin implements ChatboxInputListener
}
int itemId = item.getId();
ItemPrice itemPrice = itemManager.getItemPrice(itemId);
int itemPrice = itemManager.getItemPrice(itemId);
final ChatMessageBuilder builder = new ChatMessageBuilder()
.append(ChatColorType.NORMAL)
@@ -490,7 +489,7 @@ public class ChatCommandsPlugin extends Plugin implements ChatboxInputListener
.append(ChatColorType.NORMAL)
.append(": GE average ")
.append(ChatColorType.HIGHLIGHT)
.append(StackFormatter.formatNumber(itemPrice.getPrice()));
.append(StackFormatter.formatNumber(itemPrice));
ItemComposition itemComposition = itemManager.getItemComposition(itemId);
if (itemComposition != null)

View File

@@ -53,7 +53,6 @@ import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.util.StackFormatter;
import net.runelite.http.api.examine.ExamineClient;
import net.runelite.http.api.item.ItemPrice;
/**
* Submits exammine info to the api
@@ -272,14 +271,9 @@ public class ExaminePlugin extends Plugin
final boolean note = itemComposition.getNote() != -1;
final int id = note ? itemComposition.getLinkedNoteId() : itemComposition.getId();
ItemPrice itemPrice = itemManager.getItemPrice(id);
if (itemPrice == null)
{
return;
}
int itemCompositionPrice = itemComposition.getPrice();
final int gePrice = itemPrice == null ? 0 : itemPrice.getPrice();
final int gePrice = itemManager.getItemPrice(id);
final int alchPrice = itemCompositionPrice <= 0 ? 0 : Math.round(itemCompositionPrice * HIGH_ALCHEMY_CONSTANT);
if (gePrice > 0 || alchPrice > 0)

View File

@@ -50,7 +50,6 @@ import net.runelite.client.ui.components.PluginErrorPanel;
import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.RunnableExceptionLogger;
import net.runelite.http.api.item.Item;
import net.runelite.http.api.item.ItemPrice;
import net.runelite.http.api.item.SearchResult;
/**
@@ -222,10 +221,10 @@ class GrandExchangeSearchPanel extends JPanel
continue;
}
ItemPrice itemPrice = itemManager.getItemPrice(itemId);
int itemPrice = itemManager.getItemPrice(itemId);
AsyncBufferedImage itemImage = itemManager.getImage(itemId);
itemsList.add(new GrandExchangeItems(itemImage, item.getName(), itemId, itemPrice != null ? itemPrice.getPrice() : 0, itemComp.getPrice() * 0.6));
itemsList.add(new GrandExchangeItems(itemImage, item.getName(), itemId, itemPrice, itemComp.getPrice() * 0.6));
// If using hotkey to lookup item, stop after finding match.
if (exactMatch && item.getName().equalsIgnoreCase(lookup))

View File

@@ -76,7 +76,6 @@ import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.N
import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.OPTION;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.util.ColorUtil;
import net.runelite.http.api.item.ItemPrice;
@PluginDescriptor(
name = "Ground Items",
@@ -277,11 +276,7 @@ public class GroundItemsPlugin extends Plugin
}
else
{
final ItemPrice itemPrice = itemManager.getItemPrice(realItemId);
if (itemPrice != null)
{
groundItem.setGePrice(itemPrice.getPrice());
}
groundItem.setGePrice(itemManager.getItemPrice(realItemId));
}
return groundItem;
@@ -369,8 +364,8 @@ public class GroundItemsPlugin extends Plugin
final ItemComposition itemComposition = itemManager.getItemComposition(itemId);
final int realItemId = itemComposition.getNote() != -1 ? itemComposition.getLinkedNoteId() : itemComposition.getId();
final ItemPrice itemPrice = itemManager.getItemPrice(realItemId);
final int price = itemPrice == null ? itemComposition.getPrice() : itemPrice.getPrice();
final int itemPrice = itemManager.getItemPrice(realItemId);
final int price = itemPrice <= 0 ? itemComposition.getPrice() : itemPrice;
final int haPrice = Math.round(itemComposition.getPrice() * HIGH_ALCHEMY_CONSTANT) * quantity;
final int gePrice = quantity * price;
final Color hidden = getHidden(itemComposition.getName(), gePrice, haPrice, itemComposition.isTradeable());

View File

@@ -45,7 +45,6 @@ import net.runelite.client.ui.overlay.tooltip.Tooltip;
import net.runelite.client.ui.overlay.tooltip.TooltipManager;
import net.runelite.client.util.ColorUtil;
import net.runelite.client.util.StackFormatter;
import net.runelite.http.api.item.ItemPrice;
class ItemPricesOverlay extends Overlay
{
@@ -200,11 +199,7 @@ class ItemPricesOverlay extends Overlay
if (config.showGEPrice())
{
final ItemPrice price = itemManager.getItemPrice(id);
if (price != null)
{
gePrice = price.getPrice();
}
gePrice = itemManager.getItemPrice(id);
}
if (config.showHAValue())
{

View File

@@ -42,7 +42,6 @@ import net.runelite.api.Client;
import net.runelite.api.InventoryID;
import net.runelite.api.ItemComposition;
import net.runelite.api.ItemContainer;
import net.runelite.api.ItemID;
import net.runelite.api.NPC;
import net.runelite.api.Player;
import net.runelite.api.SpriteID;
@@ -60,7 +59,6 @@ import net.runelite.client.ui.ClientToolbar;
import net.runelite.client.ui.NavigationButton;
import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.Text;
import net.runelite.http.api.item.ItemPrice;
@PluginDescriptor(
name = "Loot Tracker",
@@ -253,20 +251,7 @@ public class LootTrackerPlugin extends Plugin
{
final ItemComposition itemComposition = itemManager.getItemComposition(itemStack.getId());
final int realItemId = itemComposition.getNote() != -1 ? itemComposition.getLinkedNoteId() : itemStack.getId();
final ItemPrice itemPrice = itemManager.getItemPrice(realItemId);
final long price;
if (itemPrice != null)
{
price = (long) itemPrice.getPrice() * itemStack.getQuantity();
}
else if (realItemId == ItemID.COINS_995)
{
price = itemStack.getQuantity();
}
else
{
price = 0;
}
final long price = (long)itemManager.getItemPrice(realItemId) * (long)itemStack.getQuantity();
return new LootTrackerItemEntry(
itemStack.getId(),