Search in sources :

Example 1 with ItemClient

use of net.runelite.http.api.item.ItemClient in project runelite by runelite.

the class GrandExchangeSearchPanel method priceLookup.

private void priceLookup(boolean exactMatch) {
    String lookup = searchBox.getText();
    if (Strings.isNullOrEmpty(lookup)) {
        return;
    }
    // Input is not empty, add searching label
    searchItemsPanel.removeAll();
    showSearchString("Searching...");
    SearchResult result;
    try {
        result = itemManager.searchForItem(lookup);
    } catch (ExecutionException ex) {
        log.warn("Unable to search for item {}", lookup, ex);
        showSearchString("Error performing search");
        return;
    }
    if (result != null && !result.getItems().isEmpty()) {
        itemClient = new ItemClient();
        for (Item item : result.getItems()) {
            int itemId = item.getId();
            ItemComposition itemComp = client.getItemDefinition(itemId);
            if (itemComp == null) {
                continue;
            }
            ItemPrice itemPrice = null;
            try {
                itemPrice = itemManager.getItemPrice(itemId);
            } catch (IOException ex) {
                log.warn("Unable to fetch item price for {}", itemId, ex);
            }
            BufferedImage itemImage = null;
            try {
                itemImage = itemClient.getIcon(itemId);
            } catch (IOException ex) {
                log.warn("Unable to fetch item icon for {}", itemId, ex);
            }
            if (itemImage == null) {
                log.warn("Unable to fetch item icon for {}", itemId);
            }
            ITEMS_LIST.add(new GrandExchangeItems(itemImage, item.getName(), itemId, itemPrice != null ? itemPrice.getPrice() : 0, itemComp.getPrice() * 0.6));
            // If using hotkey to lookup item, stop after finding match.
            if (exactMatch && item.getName().equalsIgnoreCase(lookup)) {
                break;
            }
        }
    }
    SwingUtilities.invokeLater(() -> {
        for (GrandExchangeItems item : ITEMS_LIST) {
            GrandExchangeItemPanel panel = new GrandExchangeItemPanel(item.getIcon(), item.getName(), item.getItemId(), item.getGePrice(), item.getHaPrice());
            searchItemsPanel.add(panel);
        }
        ITEMS_LIST.clear();
        // Remove searching label after search is complete
        showSearchString(null);
    });
}
Also used : Item(net.runelite.http.api.item.Item) ItemClient(net.runelite.http.api.item.ItemClient) ItemPrice(net.runelite.http.api.item.ItemPrice) ItemComposition(net.runelite.api.ItemComposition) SearchResult(net.runelite.http.api.item.SearchResult) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException) BufferedImage(java.awt.image.BufferedImage)

Aggregations

BufferedImage (java.awt.image.BufferedImage)1 IOException (java.io.IOException)1 ExecutionException (java.util.concurrent.ExecutionException)1 ItemComposition (net.runelite.api.ItemComposition)1 Item (net.runelite.http.api.item.Item)1 ItemClient (net.runelite.http.api.item.ItemClient)1 ItemPrice (net.runelite.http.api.item.ItemPrice)1 SearchResult (net.runelite.http.api.item.SearchResult)1