Use caching okhttp client for worldclient

This commit is contained in:
Adam
2019-09-27 23:40:56 -04:00
parent 9c5b36cec7
commit f49670cd5b
4 changed files with 26 additions and 10 deletions

View File

@@ -26,21 +26,30 @@
package net.runelite.http.api.worlds;
import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.inject.Inject;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class WorldClient
{
private static final Logger logger = LoggerFactory.getLogger(WorldClient.class);
private final OkHttpClient client;
@Inject
public WorldClient(OkHttpClient client)
{
this.client = client;
}
public WorldResult lookupWorlds() throws IOException
{
HttpUrl url = RuneLiteAPI.getApiBase().newBuilder()
@@ -53,7 +62,7 @@ public class WorldClient
.url(url)
.build();
try (Response response = RuneLiteAPI.CLIENT.newCall(request).execute())
try (Response response = client.newCall(request).execute())
{
if (!response.isSuccessful())
{

View File

@@ -31,9 +31,9 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.events.SessionOpen;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.SessionOpen;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.util.WorldUtil;
@@ -55,7 +55,9 @@ public class DefaultWorldPlugin extends Plugin
@Inject
private DefaultWorldConfig config;
private final WorldClient worldClient = new WorldClient();
@Inject
private WorldClient worldClient;
private int worldCache;
private boolean worldChangeRequired;

View File

@@ -140,6 +140,9 @@ public class WorldHopperPlugin extends Plugin
@Inject
private WorldHopperPingOverlay worldHopperOverlay;
@Inject
private WorldClient worldClient;
private ScheduledExecutorService hopperExecutorService;
private NavigationButton navButton;
@@ -508,7 +511,7 @@ public class WorldHopperPlugin extends Plugin
try
{
WorldResult worldResult = new WorldClient().lookupWorlds();
WorldResult worldResult = worldClient.lookupWorlds();
if (worldResult != null)
{

View File

@@ -33,6 +33,8 @@ import java.util.Random;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import net.runelite.http.api.RuneLiteAPI;
import net.runelite.http.api.worlds.World;
import net.runelite.http.api.worlds.WorldClient;
@Slf4j
@@ -51,11 +53,11 @@ class HostSupplier implements Supplier<String>
try
{
List<String> newHosts = new WorldClient()
List<String> newHosts = new WorldClient(RuneLiteAPI.CLIENT)
.lookupWorlds()
.getWorlds()
.stream()
.map(i -> i.getAddress())
.map(World::getAddress)
.collect(Collectors.toList());
Collections.shuffle(newHosts, random);