ge plugin: ignore offers being cleared on logout

This commit is contained in:
Adam
2020-06-04 12:12:55 -04:00
parent b9e660a939
commit a45d208eb6
2 changed files with 26 additions and 0 deletions

View File

@@ -377,6 +377,13 @@ public class GrandExchangePlugin extends Plugin
final int slot = offerEvent.getSlot();
final GrandExchangeOffer offer = offerEvent.getOffer();
if (offer.getState() == GrandExchangeOfferState.EMPTY && client.getGameState() != GameState.LOGGED_IN)
{
// Trades are cleared by the client during LOGIN_SCREEN/HOPPING/LOGGING_IN, ignore those so we don't
// zero and re-submit the trade on login as an update
return;
}
log.debug("GE offer updated: state: {}, slot: {}, item: {}, qty: {}, login: {}",
offer.getState(), slot, offer.getItemId(), offer.getQuantitySold(), loginBurstGeUpdates);

View File

@@ -33,10 +33,12 @@ import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.GrandExchangeOffer;
import net.runelite.api.GrandExchangeOfferState;
import net.runelite.api.ItemID;
import net.runelite.api.WorldType;
import net.runelite.api.events.GrandExchangeOfferChanged;
import net.runelite.client.Notifier;
import net.runelite.client.account.SessionManager;
import net.runelite.client.config.ConfigManager;
@@ -55,6 +57,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import org.mockito.Mock;
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
@@ -218,4 +221,20 @@ public class GrandExchangePluginTest
assertEquals(10, trade.getTotal());
assertEquals(25, trade.getSpent());
}
@Test
public void testHop()
{
when(client.getGameState()).thenReturn(GameState.HOPPING);
GrandExchangeOffer grandExchangeOffer = mock(GrandExchangeOffer.class);
when(grandExchangeOffer.getState()).thenReturn(GrandExchangeOfferState.EMPTY);
GrandExchangeOfferChanged grandExchangeOfferChanged = new GrandExchangeOfferChanged();
grandExchangeOfferChanged.setOffer(grandExchangeOffer);
grandExchangePlugin.onGrandExchangeOfferChanged(grandExchangeOfferChanged);
verify(configManager, never()).unsetConfiguration(anyString(), anyString());
}
}