fps: fix rejectedexecutionexception

This commit is contained in:
7ate9
2019-07-07 14:57:57 -04:00
parent bb8dc5b8e4
commit b40646bf7e

View File

@@ -36,6 +36,7 @@ import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -93,6 +94,10 @@ public class FpsPlugin extends Plugin
private final ScheduledExecutorService pingExecutorService = new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor()); private final ScheduledExecutorService pingExecutorService = new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor());
private boolean loaded = false;
private boolean shutdown;
@Getter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE)
private FpsLimitMode limitMode; private FpsLimitMode limitMode;
@@ -128,6 +133,12 @@ public class FpsPlugin extends Plugin
overlay.onFocusChanged(event); overlay.onFocusChanged(event);
} }
@Subscribe
public void onGameStateChanged(GameStateChanged event)
{
shutdown = event.getGameState() != GameState.LOGGED_IN;
}
@Override @Override
protected void startUp() throws Exception protected void startUp() throws Exception
{ {
@@ -137,7 +148,13 @@ public class FpsPlugin extends Plugin
overlayManager.add(overlay); overlayManager.add(overlay);
drawManager.registerEveryFrameListener(drawListener); drawManager.registerEveryFrameListener(drawListener);
drawListener.reloadConfig(); drawListener.reloadConfig();
pingExecutorService.scheduleAtFixedRate(this::getPingToCurrentWorld, 5, 5, TimeUnit.SECONDS); shutdown = client.getGameState() != GameState.LOGGED_IN;
if (!loaded)
{
pingExecutorService.scheduleAtFixedRate(this::getPingToCurrentWorld, 5, 5, TimeUnit.SECONDS);
loaded = true;
}
} }
@Override @Override
@@ -145,12 +162,12 @@ public class FpsPlugin extends Plugin
{ {
overlayManager.remove(overlay); overlayManager.remove(overlay);
drawManager.unregisterEveryFrameListener(drawListener); drawManager.unregisterEveryFrameListener(drawListener);
pingExecutorService.shutdown(); shutdown = true;
} }
private void getPingToCurrentWorld() private void getPingToCurrentWorld()
{ {
if (client.getGameState().equals(GameState.LOGGED_IN) && drawPing) if (!shutdown && drawPing)
{ {
ping = Ping.ping(String.format("oldschool%d.runescape.com", client.getWorld() - 300)); ping = Ping.ping(String.format("oldschool%d.runescape.com", client.getWorld() - 300));
} }