Merge remote-tracking branch 'runelite/master' into 2009-merge

This commit is contained in:
Owain van Brakel
2019-10-03 17:35:19 +02:00
46 changed files with 1855 additions and 522 deletions

View File

@@ -28,6 +28,7 @@ import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.name.Names;
import java.applet.Applet;
import java.io.File;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import javax.annotation.Nullable;
@@ -51,12 +52,15 @@ import net.runelite.client.task.Scheduler;
import net.runelite.client.util.DeferredEventBus;
import net.runelite.client.util.ExecutorServiceExceptionLogger;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.Cache;
import okhttp3.OkHttpClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RuneLiteModule extends AbstractModule
{
private static final int MAX_OKHTTP_CACHE_SIZE = 20 * 1024 * 1024; // 20mb
private final ClientUpdateCheckMode updateCheckMode;
private final boolean developerMode;
@@ -72,7 +76,9 @@ public class RuneLiteModule extends AbstractModule
bindConstant().annotatedWith(Names.named("updateCheckMode")).to(updateCheckMode);
bindConstant().annotatedWith(Names.named("developerMode")).to(developerMode);
bind(ScheduledExecutorService.class).toInstance(new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor()));
bind(OkHttpClient.class).toInstance(RuneLiteAPI.CLIENT);
bind(OkHttpClient.class).toInstance(RuneLiteAPI.CLIENT.newBuilder()
.cache(new Cache(new File(RuneLite.RUNELITE_DIR, "cache" + File.separator + "okhttp"), MAX_OKHTTP_CACHE_SIZE))
.build());
bind(MenuManager.class);
bind(ChatMessageManager.class);
bind(ItemManager.class);

View File

@@ -136,7 +136,7 @@ public class ItemManager
private final Client client;
private final ScheduledExecutorService scheduledExecutorService;
private final ClientThread clientThread;
private final ItemClient itemClient = new ItemClient();
private final ItemClient itemClient;
private final ImmutableMap<Integer, ItemStats> itemStatMap;
private final LoadingCache<ImageKey, AsyncBufferedImage> itemImages;
private final LoadingCache<Integer, ItemDefinition> itemDefinitions;
@@ -149,12 +149,14 @@ public class ItemManager
Client client,
ScheduledExecutorService executor,
ClientThread clientThread,
EventBus eventbus
EventBus eventbus,
ItemClient itemClient
)
{
this.client = client;
this.scheduledExecutorService = executor;
this.clientThread = clientThread;
this.itemClient = itemClient;
scheduledExecutorService.scheduleWithFixedDelay(this::loadPrices, 0, 30, TimeUnit.MINUTES);
scheduledExecutorService.submit(this::loadStats);

View File

@@ -29,7 +29,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import java.awt.Shape;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -90,7 +90,7 @@ class AgilityOverlay extends Overlay
}
return;
}
Area objectClickbox = object.getClickbox();
Shape objectClickbox = object.getClickbox();
if (objectClickbox != null)
{
AgilityShortcut agilityShortcut = obstacle.getShortcut();

View File

@@ -27,7 +27,7 @@ package net.runelite.client.plugins.blastfurnace;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Area;
import java.awt.Shape;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Client;
@@ -110,7 +110,7 @@ class BlastFurnaceClickBoxOverlay extends Overlay
if (localLocation.distanceTo(location) <= MAX_DISTANCE)
{
Area objectClickbox = object.getClickbox();
Shape objectClickbox = object.getClickbox();
if (objectClickbox != null)
{
if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY()))

View File

@@ -63,7 +63,9 @@ public class DefaultWorldPlugin extends Plugin
@Inject
private ClientThread clientThread;
private final WorldClient worldClient = new WorldClient();
@Inject
private WorldClient worldClient;
private int worldCache;
private boolean worldChangeRequired;

View File

@@ -32,6 +32,7 @@ import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.Rectangle2D;
import java.util.List;
import javax.inject.Inject;
@@ -326,10 +327,10 @@ class DevToolsOverlay extends Overlay
// Draw a polygon around the convex hull
// of the model vertices
Polygon p = gameObject.getConvexHull();
Shape p = gameObject.getConvexHull();
if (p != null)
{
graphics.drawPolygon(p);
graphics.draw(p);
}
// This is incredibly taxing to run, only uncomment if you know what you're doing.
/*renderGameObjectWireframe(graphics, gameObject, Color.CYAN);*/
@@ -372,16 +373,16 @@ class DevToolsOverlay extends Overlay
OverlayUtil.renderTileOverlay(graphics, decorObject, "ID: " + decorObject.getId(), DEEP_PURPLE);
}
Polygon p = decorObject.getConvexHull();
Shape p = decorObject.getConvexHull();
if (p != null)
{
graphics.drawPolygon(p);
graphics.draw(p);
}
p = decorObject.getConvexHull2();
if (p != null)
{
graphics.drawPolygon(p);
graphics.draw(p);
}
}
}
@@ -553,23 +554,6 @@ class DevToolsOverlay extends Overlay
graphics.drawString(text, textX, textY);
}
private void renderGameObjectWireframe(Graphics2D graphics, GameObject gameObject, Color color)
{
Polygon[] polys = gameObject.getPolygons();
if (polys == null)
{
return;
}
graphics.setColor(color);
for (Polygon p : polys)
{
graphics.drawPolygon(p);
}
}
private void renderPlayerWireframe(Graphics2D graphics, Player player, Color color)
{
Polygon[] polys = player.getPolygons();

View File

@@ -66,13 +66,15 @@ public class FeedPlugin extends Plugin
@Inject
private ScheduledExecutorService executorService;
@Inject
private FeedClient feedClient;
@Inject
private EventBus eventBus;
private FeedPanel feedPanel;
private NavigationButton navButton;
private final FeedClient feedClient = new FeedClient();
private final Supplier<FeedResult> feedSupplier = Suppliers.memoizeWithExpiration(() ->
{
try

View File

@@ -32,6 +32,7 @@ import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
@@ -201,7 +202,7 @@ public class GauntletOverlay extends Overlay
if (plugin.isOverlayBoss())
{
Polygon polygon = boss.getConvexHull();
Shape polygon = boss.getConvexHull();
if (polygon == null)
{
@@ -315,7 +316,7 @@ public class GauntletOverlay extends Overlay
{
// Don't use Convex Hull click box. As the room start to fill up, your FPS will dip.
Polygon polygon = object.getGameObject().getConvexHull();
Shape polygon = object.getGameObject().getConvexHull();
if (polygon == null)
{

View File

@@ -30,6 +30,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.time.Instant;
@@ -46,12 +47,12 @@ import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.util.Text;
import net.runelite.client.graphics.ModelOutlineRenderer;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayUtil;
import net.runelite.api.util.Text;
@Singleton
public class NpcSceneOverlay extends Overlay
@@ -181,8 +182,9 @@ public class NpcSceneOverlay extends Overlay
renderPoly(graphics, color, tilePoly);
break;
case HULL:
final Polygon objectClickbox = actor.getConvexHull();
renderPoly(graphics, color, objectClickbox);
final Shape objectClickbox = actor.getConvexHull();
graphics.setColor(color);
graphics.draw(objectClickbox);
break;
case THIN_OUTLINE:
modelOutliner.drawOutline(actor, 1, color);

View File

@@ -28,8 +28,7 @@ package net.runelite.client.plugins.objectindicators;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import java.awt.Shape;
import static java.lang.Math.floor;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -101,8 +100,8 @@ class ObjectIndicatorsOverlay extends Overlay
}
break;
case HULL:
final Polygon polygon;
Polygon polygon2 = null;
final Shape polygon;
Shape polygon2 = null;
if (object instanceof GameObject)
{
@@ -129,7 +128,7 @@ class ObjectIndicatorsOverlay extends Overlay
}
break;
case CLICKBOX:
Area clickbox = object.getClickbox();
Shape clickbox = object.getClickbox();
if (clickbox != null)
{
OverlayUtil.renderHoverableArea(graphics, object.getClickbox(), client.getMouseCanvasPosition(), TRANSPARENT, objectColor, objectColor.darker());

View File

@@ -30,7 +30,7 @@ import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Player;
@@ -92,12 +92,12 @@ public class GangplankOverlay extends Overlay
if (noviceGangplankTile != null)
{
Polygon polygon = noviceGangplankTile.getGameObjects()[0].getConvexHull();
Shape polygon = noviceGangplankTile.getGameObjects()[0].getConvexHull();
if (polygon != null)
{
graphics.setColor(noviceCbColor);
graphics.setStroke(new BasicStroke(2));
graphics.drawPolygon(polygon);
graphics.draw(polygon);
graphics.setColor(setColorAlpha(noviceCbColor, 45));
graphics.fill(polygon);
@@ -112,12 +112,12 @@ public class GangplankOverlay extends Overlay
if (intermediateGangplankTile != null)
{
Polygon polygon = intermediateGangplankTile.getGameObjects()[0].getConvexHull();
Shape polygon = intermediateGangplankTile.getGameObjects()[0].getConvexHull();
if (polygon != null)
{
graphics.setColor(intermediateCbColor);
graphics.setStroke(new BasicStroke(2));
graphics.drawPolygon(polygon);
graphics.draw(polygon);
graphics.setColor(setColorAlpha(intermediateCbColor, 45));
graphics.fill(polygon);
@@ -132,12 +132,12 @@ public class GangplankOverlay extends Overlay
if (veteranGangplankTile != null)
{
Polygon polygon = veteranGangplankTile.getGameObjects()[0].getConvexHull();
Shape polygon = veteranGangplankTile.getGameObjects()[0].getConvexHull();
if (polygon != null)
{
graphics.setColor(veteranCbColor);
graphics.setStroke(new BasicStroke(2));
graphics.drawPolygon(polygon);
graphics.draw(polygon);
graphics.setColor(setColorAlpha(veteranCbColor, 45));
graphics.fill(polygon);

View File

@@ -31,6 +31,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import java.util.HashMap;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
@@ -141,7 +142,7 @@ public class NpcHighlightOverlay extends Overlay
private void renderHullOverlay(Graphics2D graphics, NPC npc, Color color)
{
Polygon objectClickbox = npc.getConvexHull();
Shape objectClickbox = npc.getConvexHull();
if (objectClickbox != null)
{
graphics.setColor(color);

View File

@@ -30,7 +30,7 @@ import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Area;
import java.awt.Shape;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.GameObject;
@@ -185,7 +185,7 @@ public class RepairOverlay extends Overlay
return null;
}
private void renderObjectOverlay(Graphics2D graphics, Area area, Color color, Point mousePosition)
private void renderObjectOverlay(Graphics2D graphics, Shape area, Color color, Point mousePosition)
{
if (area == null)
{

View File

@@ -27,7 +27,7 @@ package net.runelite.client.plugins.pyramidplunder;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Area;
import java.awt.Shape;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
@@ -119,7 +119,7 @@ public class PyramidPlunderOverlay extends Overlay
objectID = impostor.getId();
}
Area objectClickbox = object.getClickbox();
Shape objectClickbox = object.getClickbox();
if (objectClickbox != null)
{
Color configColor = Color.GREEN;

View File

@@ -2,7 +2,7 @@ package net.runelite.client.plugins.raids.shortcuts;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import java.awt.image.BufferedImage;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -48,7 +48,7 @@ public class ShortcutOverlay extends Overlay
{
if (shortcut.getPlane() == client.getPlane())
{
Polygon poly;
Shape poly;
if ((shortcut instanceof GameObject))
{
poly = ((GameObject) shortcut).getConvexHull();

View File

@@ -28,7 +28,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import java.awt.Shape;
import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Client;
@@ -74,7 +74,7 @@ public class RoguesDenOverlay extends Overlay
{
if (tile.getPlane() == client.getPlane())
{
final Area clickBox = obstacle.getClickbox();
final Shape clickBox = obstacle.getClickbox();
if (clickBox != null)
{
final Point mouse = client.getMouseCanvasPosition();
@@ -93,7 +93,7 @@ public class RoguesDenOverlay extends Overlay
}
else
{
Polygon p;
Shape p;
if (obstacle instanceof GameObject)
{
p = ((GameObject) obstacle).getConvexHull();
@@ -106,7 +106,7 @@ public class RoguesDenOverlay extends Overlay
if (p != null)
{
graphics.setColor(OBJECT_COLOR);
graphics.drawPolygon(p);
graphics.draw(p);
}
}
}

View File

@@ -30,7 +30,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import java.awt.Shape;
import net.runelite.api.Client;
import net.runelite.api.DecorativeObject;
import net.runelite.api.NPC;
@@ -105,7 +105,7 @@ class AbyssOverlay extends Overlay
}
Point mousePosition = client.getMouseCanvasPosition();
Area objectClickbox = object.getClickbox();
Shape objectClickbox = object.getClickbox();
if (objectClickbox != null)
{
if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY()))

View File

@@ -31,6 +31,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import java.util.List;
import java.util.Set;
import javax.inject.Inject;
@@ -43,12 +44,12 @@ import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.util.Text;
import net.runelite.client.graphics.ModelOutlineRenderer;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayUtil;
import net.runelite.api.util.Text;
@Singleton
public class TargetClickboxOverlay extends Overlay
@@ -129,7 +130,7 @@ public class TargetClickboxOverlay extends Overlay
break;
case HULL:
Polygon objectClickbox = actor.getConvexHull();
Shape objectClickbox = actor.getConvexHull();
if (objectClickbox == null)
{

View File

@@ -28,6 +28,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import javax.inject.Inject;
import javax.inject.Singleton;
import lombok.extern.slf4j.Slf4j;
@@ -69,11 +70,11 @@ public class TarnsLairOverlay extends Overlay
{
if (tile.getPlane() == client.getPlane() && obstacle.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE)
{
Polygon p = tile.getGameObjects()[0].getConvexHull();
Shape p = tile.getGameObjects()[0].getConvexHull();
if (p != null)
{
graphics.setColor(Color.GREEN);
graphics.drawPolygon(p);
graphics.draw(p);
}
}
});
@@ -82,11 +83,11 @@ public class TarnsLairOverlay extends Overlay
{
if (tile.getPlane() == client.getPlane() && obstacle.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE)
{
Polygon p = tile.getGameObjects()[0].getConvexHull();
Shape p = tile.getGameObjects()[0].getConvexHull();
if (p != null)
{
graphics.setColor(Color.CYAN);
graphics.drawPolygon(p);
graphics.draw(p);
}
}
});

View File

@@ -5,6 +5,7 @@ import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -248,7 +249,7 @@ public class NyloHandler extends RoomHandler
{
try
{
Polygon objectClickbox = npc.getConvexHull();
Shape objectClickbox = npc.getConvexHull();
Color color;
String name = npc.getName() != null ? npc.getName() : "";
@@ -266,7 +267,8 @@ public class NyloHandler extends RoomHandler
color = Color.LIGHT_GRAY;
}
renderPoly(graphics, color, objectClickbox);
graphics.setColor(color);
graphics.draw(objectClickbox);
}
catch (Exception ex)
{

View File

@@ -141,6 +141,9 @@ public class WorldHopperPlugin extends Plugin
@Inject
private WorldHopperPingOverlay worldHopperOverlay;
@Inject
private WorldClient worldClient;
private ScheduledExecutorService hopperExecutorService;
private NavigationButton navButton;
@@ -533,7 +536,7 @@ public class WorldHopperPlugin extends Plugin
{
log.debug("Fetching worlds");
new WorldClient().lookupWorlds()
worldClient.lookupWorlds()
.subscribeOn(Schedulers.io())
.take(1)
.subscribe(

View File

@@ -30,6 +30,7 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Shape;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.AnimationID;
@@ -174,7 +175,7 @@ public class ZalcanoOverlay extends Overlay
{
if (plugin.getGolem() != null)
{
Polygon hull = plugin.getGolem().getConvexHull();
Shape hull = plugin.getGolem().getConvexHull();
if (hull != null)
{
OverlayUtil.renderPolygon(graphics, hull, new Color(206, 41, 231));
@@ -187,7 +188,7 @@ public class ZalcanoOverlay extends Overlay
{
if (plugin.getZalcano() != null)
{
Polygon hull = plugin.getZalcano().getConvexHull();
Shape hull = plugin.getZalcano().getConvexHull();
if (hull != null)
{
OverlayUtil.renderPolygon(graphics, hull, config.zalcanoHullColor());

View File

@@ -33,8 +33,8 @@ import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.geom.Area;
import java.awt.image.BufferedImage;
import java.util.List;
import net.runelite.api.Actor;
@@ -61,14 +61,14 @@ public class OverlayUtil
private static final int MINIMAP_DOT_RADIUS = 4;
private static final double UNIT = Math.PI / 1024.0d;
public static void renderPolygon(Graphics2D graphics, Polygon poly, Color color)
public static void renderPolygon(Graphics2D graphics, Shape poly, Color color)
{
graphics.setColor(color);
final Stroke originalStroke = graphics.getStroke();
graphics.setStroke(new BasicStroke(2));
graphics.drawPolygon(poly);
graphics.draw(poly);
graphics.setColor(new Color(0, 0, 0, 50));
graphics.fillPolygon(poly);
graphics.fill(poly);
graphics.setStroke(originalStroke);
}
@@ -211,7 +211,7 @@ public class OverlayUtil
renderImageLocation(client, graphics, localLocation, image, 0);
}
public static void renderHoverableArea(Graphics2D graphics, Area area, net.runelite.api.Point mousePosition, Color fillColor, Color borderColor, Color borderHoverColor)
public static void renderHoverableArea(Graphics2D graphics, Shape area, net.runelite.api.Point mousePosition, Color fillColor, Color borderColor, Color borderHoverColor)
{
if (area != null)
{
@@ -326,7 +326,7 @@ public class OverlayUtil
}
}
public static void renderClickBox(Graphics2D graphics, Point mousePosition, Area objectClickbox, Color configColor)
public static void renderClickBox(Graphics2D graphics, Point mousePosition, Shape objectClickbox, Color configColor)
{
if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY()))
{