Merge pull request #1058 from runelite-extended/im-lazy-sue-me
grandexchange: no longer shows that you can afford an item you're selling
This commit is contained in:
@@ -35,6 +35,7 @@ import java.awt.image.BufferedImage;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -99,6 +100,8 @@ import net.runelite.http.api.osbuddy.OSBGrandExchangeClient;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class GrandExchangePlugin extends Plugin
|
public class GrandExchangePlugin extends Plugin
|
||||||
{
|
{
|
||||||
|
static final String SEARCH_GRAND_EXCHANGE = "Search Grand Exchange";
|
||||||
|
private static final int OFFER_TYPE = 18;
|
||||||
private static final int OFFER_CONTAINER_ITEM = 21;
|
private static final int OFFER_CONTAINER_ITEM = 21;
|
||||||
private static final int OFFER_DEFAULT_ITEM_ID = 6512;
|
private static final int OFFER_DEFAULT_ITEM_ID = 6512;
|
||||||
private static final OSBGrandExchangeClient CLIENT = new OSBGrandExchangeClient();
|
private static final OSBGrandExchangeClient CLIENT = new OSBGrandExchangeClient();
|
||||||
@@ -109,9 +112,6 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
private static final TypeToken<Map<Integer, Integer>> BUY_LIMIT_TOKEN = new TypeToken<Map<Integer, Integer>>()
|
private static final TypeToken<Map<Integer, Integer>> BUY_LIMIT_TOKEN = new TypeToken<Map<Integer, Integer>>()
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
static final String SEARCH_GRAND_EXCHANGE = "Search Grand Exchange";
|
|
||||||
|
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
private NavigationButton button;
|
private NavigationButton button;
|
||||||
|
|
||||||
@@ -162,13 +162,26 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
private EventBus eventBus;
|
private EventBus eventBus;
|
||||||
|
|
||||||
private Widget grandExchangeText;
|
private Widget grandExchangeText;
|
||||||
|
private Widget grandExchangeOfferType;
|
||||||
private Widget grandExchangeItem;
|
private Widget grandExchangeItem;
|
||||||
private Map<Integer, Integer> itemGELimits;
|
private Map<Integer, Integer> itemGELimits;
|
||||||
|
|
||||||
private GrandExchangeClient grandExchangeClient;
|
private GrandExchangeClient grandExchangeClient;
|
||||||
|
|
||||||
private int coins = 0;
|
private int coins = 0;
|
||||||
|
private boolean quickLookup;
|
||||||
|
private boolean enableNotifications;
|
||||||
|
private boolean enableOsbPrices;
|
||||||
|
private boolean enableGELimits;
|
||||||
|
private boolean enableAfford;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
private SavedOffer getOffer(int slot)
|
private SavedOffer getOffer(int slot)
|
||||||
{
|
{
|
||||||
@@ -190,12 +203,6 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
configManager.unsetConfiguration("geoffer." + client.getUsername().toLowerCase(), Integer.toString(slot));
|
configManager.unsetConfiguration("geoffer." + client.getUsername().toLowerCase(), Integer.toString(slot));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean quickLookup;
|
|
||||||
private boolean enableNotifications;
|
|
||||||
private boolean enableOsbPrices;
|
|
||||||
private boolean enableGELimits;
|
|
||||||
private boolean enableAfford;
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
GrandExchangeConfig provideConfig(ConfigManager configManager)
|
GrandExchangeConfig provideConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
@@ -246,6 +253,7 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
keyManager.unregisterKeyListener(inputListener);
|
keyManager.unregisterKeyListener(inputListener);
|
||||||
grandExchangeText = null;
|
grandExchangeText = null;
|
||||||
grandExchangeItem = null;
|
grandExchangeItem = null;
|
||||||
|
grandExchangeOfferType = null;
|
||||||
itemGELimits = null;
|
itemGELimits = null;
|
||||||
grandExchangeClient = null;
|
grandExchangeClient = null;
|
||||||
}
|
}
|
||||||
@@ -263,7 +271,6 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged);
|
eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged);
|
||||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onSessionOpen(SessionOpen sessionOpen)
|
private void onSessionOpen(SessionOpen sessionOpen)
|
||||||
@@ -459,14 +466,14 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
{
|
{
|
||||||
switch (event.getGroupId())
|
switch (event.getGroupId())
|
||||||
{
|
{
|
||||||
// Grand exchange was opened.
|
|
||||||
case WidgetID.GRAND_EXCHANGE_GROUP_ID:
|
case WidgetID.GRAND_EXCHANGE_GROUP_ID:
|
||||||
Widget grandExchangeOffer = client.getWidget(WidgetInfo.GRAND_EXCHANGE_OFFER_CONTAINER);
|
Widget grandExchangeOffer = client.getWidget(WidgetInfo.GRAND_EXCHANGE_OFFER_CONTAINER);
|
||||||
grandExchangeText = client.getWidget(WidgetInfo.GRAND_EXCHANGE_OFFER_TEXT);
|
grandExchangeText = client.getWidget(WidgetInfo.GRAND_EXCHANGE_OFFER_TEXT);
|
||||||
grandExchangeItem = grandExchangeOffer.getDynamicChildren()[OFFER_CONTAINER_ITEM];
|
grandExchangeItem = grandExchangeOffer.getDynamicChildren()[OFFER_CONTAINER_ITEM];
|
||||||
|
grandExchangeOfferType = grandExchangeOffer.getDynamicChildren()[OFFER_TYPE];
|
||||||
break;
|
break;
|
||||||
// Grand exchange was closed (if it was open before).
|
|
||||||
case WidgetID.INVENTORY_GROUP_ID:
|
case WidgetID.INVENTORY_GROUP_ID:
|
||||||
|
grandExchangeOfferType = null;
|
||||||
grandExchangeText = null;
|
grandExchangeText = null;
|
||||||
grandExchangeItem = null;
|
grandExchangeItem = null;
|
||||||
break;
|
break;
|
||||||
@@ -508,7 +515,6 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
|
|
||||||
titleBuilder.append(')');
|
titleBuilder.append(')');
|
||||||
|
|
||||||
// Append to title
|
|
||||||
String[] stringStack = client.getStringStack();
|
String[] stringStack = client.getStringStack();
|
||||||
int stringStackSize = client.getStringStackSize();
|
int stringStackSize = client.getStringStackSize();
|
||||||
|
|
||||||
@@ -524,22 +530,21 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
|
|
||||||
final Widget geText = grandExchangeText;
|
final Widget geText = grandExchangeText;
|
||||||
final String geTextString = geText.getText();
|
final String geTextString = geText.getText();
|
||||||
|
final String offerType = grandExchangeOfferType.getText();
|
||||||
final int itemId = grandExchangeItem.getItemId();
|
final int itemId = grandExchangeItem.getItemId();
|
||||||
|
|
||||||
if (itemId == OFFER_DEFAULT_ITEM_ID || itemId == -1)
|
if (itemId == OFFER_DEFAULT_ITEM_ID || itemId == -1)
|
||||||
{
|
{
|
||||||
|
|
||||||
// This item is invalid/nothing has been searched for
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final int currentItemPrice = client.getVar(Varbits.GRAND_EXCHANGE_PRICE_PER_ITEM);
|
final int currentItemPrice = client.getVar(Varbits.GRAND_EXCHANGE_PRICE_PER_ITEM);
|
||||||
|
|
||||||
if (this.enableAfford && itemGELimits != null && !geTextString.contains(AFFORD_GE_TEXT))
|
if (this.enableAfford && offerType.equals("Buy offer") && itemGELimits != null && !geTextString.contains(AFFORD_GE_TEXT))
|
||||||
{
|
{
|
||||||
final ItemContainer itemContainer = client.getItemContainer(InventoryID.INVENTORY);
|
final ItemContainer itemContainer = client.getItemContainer(InventoryID.INVENTORY);
|
||||||
final Item[] items = itemContainer.getItems();
|
final Item[] items = Objects.requireNonNull(itemContainer).getItems();
|
||||||
for (Item item : items)
|
for (Item item : items)
|
||||||
{
|
{
|
||||||
if (item.getId() == COINS_995)
|
if (item.getId() == COINS_995)
|
||||||
@@ -600,12 +605,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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user