ge plugin: ignore offers being cleared on logout
This commit is contained in:
@@ -377,6 +377,13 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
final int slot = offerEvent.getSlot();
|
final int slot = offerEvent.getSlot();
|
||||||
final GrandExchangeOffer offer = offerEvent.getOffer();
|
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: {}",
|
log.debug("GE offer updated: state: {}, slot: {}, item: {}, qty: {}, login: {}",
|
||||||
offer.getState(), slot, offer.getItemId(), offer.getQuantitySold(), loginBurstGeUpdates);
|
offer.getState(), slot, offer.getItemId(), offer.getQuantitySold(), loginBurstGeUpdates);
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,12 @@ import java.util.List;
|
|||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.GrandExchangeOffer;
|
import net.runelite.api.GrandExchangeOffer;
|
||||||
import net.runelite.api.GrandExchangeOfferState;
|
import net.runelite.api.GrandExchangeOfferState;
|
||||||
import net.runelite.api.ItemID;
|
import net.runelite.api.ItemID;
|
||||||
import net.runelite.api.WorldType;
|
import net.runelite.api.WorldType;
|
||||||
|
import net.runelite.api.events.GrandExchangeOfferChanged;
|
||||||
import net.runelite.client.Notifier;
|
import net.runelite.client.Notifier;
|
||||||
import net.runelite.client.account.SessionManager;
|
import net.runelite.client.account.SessionManager;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
@@ -55,6 +57,7 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import static org.mockito.Mockito.lenient;
|
import static org.mockito.Mockito.lenient;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
@@ -218,4 +221,20 @@ public class GrandExchangePluginTest
|
|||||||
assertEquals(10, trade.getTotal());
|
assertEquals(10, trade.getTotal());
|
||||||
assertEquals(25, trade.getSpent());
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user