From f49670cd5b494daf6b59e916b9ae0f3aa52394b5 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 27 Sep 2019 23:40:56 -0400 Subject: [PATCH] Use caching okhttp client for worldclient --- .../runelite/http/api/worlds/WorldClient.java | 19 ++++++++++++++----- .../defaultworld/DefaultWorldPlugin.java | 6 ++++-- .../worldhopper/WorldHopperPlugin.java | 5 ++++- .../net/runelite/client/rs/HostSupplier.java | 6 ++++-- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/http-api/src/main/java/net/runelite/http/api/worlds/WorldClient.java b/http-api/src/main/java/net/runelite/http/api/worlds/WorldClient.java index 668e088404..8e08d0c9b1 100644 --- a/http-api/src/main/java/net/runelite/http/api/worlds/WorldClient.java +++ b/http-api/src/main/java/net/runelite/http/api/worlds/WorldClient.java @@ -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()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java index d68791d289..ef987c2cc7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java @@ -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; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java index 96aad43f11..09fa7b747b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java @@ -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) { diff --git a/runelite-client/src/main/java/net/runelite/client/rs/HostSupplier.java b/runelite-client/src/main/java/net/runelite/client/rs/HostSupplier.java index b92f9bb074..cd75157ac1 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/HostSupplier.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/HostSupplier.java @@ -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 try { - List newHosts = new WorldClient() + List newHosts = new WorldClient(RuneLiteAPI.CLIENT) .lookupWorlds() .getWorlds() .stream() - .map(i -> i.getAddress()) + .map(World::getAddress) .collect(Collectors.toList()); Collections.shuffle(newHosts, random);