From c7c1b70a30e2ebdb42c410ec7e38ddd37fe87873 Mon Sep 17 00:00:00 2001 From: Stefan Zopfi Date: Mon, 16 May 2022 15:19:11 +0200 Subject: [PATCH 01/21] itemcharges: add imbued ring of wealth --- .../runelite/client/plugins/itemcharges/ItemWithCharge.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java index 733440c6d0..25883f06d2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java @@ -308,6 +308,11 @@ enum ItemWithCharge ROW3(TELEPORT, RING_OF_WEALTH_3, 3), ROW4(TELEPORT, RING_OF_WEALTH_4, 4), ROW5(TELEPORT, RING_OF_WEALTH_5, 5), + ROWI1(TELEPORT, RING_OF_WEALTH_I1, 1), + ROWI2(TELEPORT, RING_OF_WEALTH_I2, 2), + ROWI3(TELEPORT, RING_OF_WEALTH_I3, 3), + ROWI4(TELEPORT, RING_OF_WEALTH_I4, 4), + ROWI5(TELEPORT, RING_OF_WEALTH_I5, 5), SACK_CABBAGES1(SACK, CABBAGES1, 1), SACK_CABBAGES2(SACK, CABBAGES2, 2), SACK_CABBAGES3(SACK, CABBAGES3, 3), From 5732e3f6bd5e76a1db81fe08ccd5fe92de2c82a1 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 15 May 2022 09:50:09 -0400 Subject: [PATCH 02/21] widget overlay: change minimap position back to top_right Otherwise layouted overlays don't get layouted around the minimap --- .../java/net/runelite/client/ui/overlay/WidgetOverlay.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java index 77a00e59ec..b0a0067964 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java @@ -46,12 +46,12 @@ public class WidgetOverlay extends Overlay new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_CHATBOX_PARENT, OverlayPosition.DETACHED, OverlayPriority.HIGH), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_CHATBOX_PARENT, OverlayPosition.DETACHED, OverlayPriority.HIGH), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_PARENT, OverlayPosition.DETACHED), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.DETACHED, OverlayPriority.MED), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT, OverlayPriority.MED), // modern resizable new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS1, OverlayPosition.DETACHED), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS2, OverlayPosition.DETACHED), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_PARENT, OverlayPosition.DETACHED), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.DETACHED, OverlayPriority.MED), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT, OverlayPriority.MED), // The client forces the oxygen bar below the xp tracker, so set its priority lower new WidgetOverlay(client, WidgetInfo.FOSSIL_ISLAND_OXYGENBAR, OverlayPosition.TOP_CENTER, OverlayPriority.HIGH), new XpTrackerWidgetOverlay(overlayManager, client, WidgetInfo.EXPERIENCE_TRACKER_WIDGET, OverlayPosition.TOP_RIGHT), From 11ce994b72859d706fe0edeb326b299b4b03a317 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 15 May 2022 10:58:49 -0400 Subject: [PATCH 03/21] overlay: add movable and snappable overlay flags This merges DETACHED and DYNAMIC into one position, DYNAMIC. And, allows detached/dynamic overlays to be snappable. --- .../ScreenMarkerCreationOverlay.java | 3 +- .../screenmarkers/ScreenMarkerOverlay.java | 3 +- .../ScreenMarkerWidgetHighlightOverlay.java | 3 +- .../runelite/client/ui/overlay/Overlay.java | 36 +++- .../client/ui/overlay/OverlayManager.java | 32 ++-- .../client/ui/overlay/OverlayPosition.java | 2 + .../client/ui/overlay/OverlayRenderer.java | 165 ++++++++---------- .../client/ui/overlay/WidgetOverlay.java | 16 +- 8 files changed, 147 insertions(+), 113 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java index 98b2c9a73b..81e25192ed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerCreationOverlay.java @@ -42,9 +42,10 @@ class ScreenMarkerCreationOverlay extends Overlay private ScreenMarkerCreationOverlay(final ScreenMarkerPlugin plugin) { this.plugin = plugin; - setPosition(OverlayPosition.DETACHED); + setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); setPriority(OverlayPriority.HIGH); + setMovable(true); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java index c991f58f2e..5341f75af8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerOverlay.java @@ -45,9 +45,10 @@ public class ScreenMarkerOverlay extends Overlay { this.marker = marker; this.screenMarkerRenderable = new ScreenMarkerRenderable(); - setPosition(OverlayPosition.DETACHED); + setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ALWAYS_ON_TOP); setPriority(OverlayPriority.HIGH); + setMovable(true); setResizable(true); setMinimumSize(16); setResettable(false); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerWidgetHighlightOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerWidgetHighlightOverlay.java index 718ea93903..9868b0f322 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerWidgetHighlightOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerWidgetHighlightOverlay.java @@ -51,9 +51,10 @@ class ScreenMarkerWidgetHighlightOverlay extends Overlay { this.plugin = plugin; this.client = client; - setPosition(OverlayPosition.DETACHED); + setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); setPriority(OverlayPriority.HIGH); + setMovable(true); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java index dd36bf167e..a63dca7d2d 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/Overlay.java @@ -64,12 +64,25 @@ public abstract class Overlay implements LayoutableRenderableEntity @Setter(AccessLevel.PROTECTED) private boolean dragTargetable; + /** + * Whether this overlay can be moved with alt + */ + @Setter(AccessLevel.PROTECTED) + private boolean movable = true; + + /** + * Whether this overlay can be moved to a snap corner + * and have its preferredPosition changed + */ + @Setter(AccessLevel.PROTECTED) + private boolean snappable = true; + protected Overlay() { plugin = null; } - protected Overlay(Plugin plugin) + protected Overlay(@Nullable Plugin plugin) { this.plugin = plugin; } @@ -161,4 +174,25 @@ public abstract class Overlay implements LayoutableRenderableEntity public void revalidate() { } + + public void setPosition(OverlayPosition position) + { + this.position = position; + + switch (position) + { + case TOOLTIP: + case DYNAMIC: + movable = false; + snappable = false; + break; + case DETACHED: + movable = true; + snappable = false; + break; + default: + movable = true; + snappable = true; + } + } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index 5811f98936..4ad59bf541 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -313,21 +313,29 @@ public class OverlayManager private void loadOverlay(final Overlay overlay) { final Point location = loadOverlayLocation(overlay); - overlay.setPreferredLocation(location); final Dimension size = loadOverlaySize(overlay); - overlay.setPreferredSize(size); final OverlayPosition position = loadOverlayPosition(overlay); - if (position != null) + + if (overlay.isMovable()) { - if (overlay.getPosition() != OverlayPosition.DYNAMIC && overlay.getPosition() != OverlayPosition.TOOLTIP) - { - overlay.setPreferredPosition(position); - } - else - { - log.info("Resetting preferred position of dynamic overlay {}", overlay.getClass().getSimpleName()); - saveOverlayPosition(overlay); - } + overlay.setPreferredLocation(location); + } + else + { + log.info("Resetting preferred location of non-movable overlay {} (class {})", overlay.getName(), overlay.getClass().getName()); + saveOverlayLocation(overlay); + } + + overlay.setPreferredSize(size); + + if (overlay.isSnappable()) + { + overlay.setPreferredPosition(position); + } + else + { + log.info("Resetting preferred position of non-snappable overlay {} (class {})", overlay.getName(), overlay.getClass().getName()); + saveOverlayPosition(overlay); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java index 14edc0dd05..9464c87520 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java @@ -28,7 +28,9 @@ public enum OverlayPosition { /** * Not attached anywhere, but still movable + * Deprecated. Use DYNAMIC and setMovable(true) */ + @Deprecated DETACHED, /** * Overlay places itself where it wants diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 9cd09225ee..2217a8d3ec 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -256,7 +256,7 @@ public class OverlayRenderer extends MouseAdapter OverlayUtil.setGraphicProperties(graphics); // Draw snap corners - if (inOverlayDraggingMode && layer == OverlayLayer.UNDER_WIDGETS && currentManagedOverlay != null && currentManagedOverlay.getPosition() != OverlayPosition.DETACHED) + if (inOverlayDraggingMode && layer == OverlayLayer.UNDER_WIDGETS && currentManagedOverlay != null && currentManagedOverlay.isSnappable()) { final OverlayBounds translatedSnapCorners = snapCorners.translated( -SNAP_CORNER_SIZE.width, @@ -288,102 +288,87 @@ public class OverlayRenderer extends MouseAdapter for (Overlay overlay : overlays) { final OverlayPosition overlayPosition = getCorrectedOverlayPosition(overlay); + final Rectangle bounds = overlay.getBounds(); + final Dimension dimension = bounds.getSize(); + final Point preferredLocation = overlay.getPreferredLocation(); + Point location; + Rectangle snapCorner = null; - if (overlayPosition == OverlayPosition.DYNAMIC || overlayPosition == OverlayPosition.TOOLTIP) + // If the final position is not modified, layout it + if (overlayPosition != OverlayPosition.DYNAMIC && overlayPosition != OverlayPosition.TOOLTIP + && overlayPosition != OverlayPosition.DETACHED && preferredLocation == null) { - safeRender(client, overlay, layer, graphics, new Point()); - - // Restore graphics2d properties - graphics.setTransform(transform); - graphics.setStroke(stroke); - graphics.setComposite(composite); - graphics.setPaint(paint); - graphics.setRenderingHints(renderingHints); - graphics.setBackground(background); + snapCorner = snapCorners.forPosition(overlayPosition); + final Point translation = OverlayUtil.transformPosition(overlayPosition, dimension); // offset from corner + // Target x/y to draw the overlay + int destX = snapCorner.x + translation.x; + int destY = snapCorner.y + translation.y; + // Clamp the target position to ensure it is on screen or within parent bounds + location = clampOverlayLocation(destX, destY, dimension.width, dimension.height, overlay); } else { - final Rectangle bounds = overlay.getBounds(); - final Dimension dimension = bounds.getSize(); - final Point preferredLocation = overlay.getPreferredLocation(); - Point location; - Rectangle snapCorner = null; + location = preferredLocation != null ? preferredLocation : bounds.getLocation(); - // If the final position is not modified, layout it - if (overlayPosition != OverlayPosition.DETACHED && (preferredLocation == null || overlay.getPreferredPosition() != null)) + // Clamp the overlay position to ensure it is on screen or within parent bounds + location = clampOverlayLocation(location.x, location.y, dimension.width, dimension.height, overlay); + } + + if (overlay.getPreferredSize() != null) + { + bounds.setSize(overlay.getPreferredSize()); + } + + safeRender(client, overlay, layer, graphics, location); + + // Adjust snap corner based on where the overlay was drawn + if (snapCorner != null && bounds.width + bounds.height > 0) + { + OverlayUtil.shiftSnapCorner(overlayPosition, snapCorner, bounds, PADDING); + } + + // Restore graphics2d properties prior to drawing bounds + graphics.setTransform(transform); + graphics.setStroke(stroke); + graphics.setComposite(composite); + graphics.setPaint(paint); + graphics.setRenderingHints(renderingHints); + graphics.setBackground(background); + + if (!bounds.isEmpty()) + { + if (inOverlayManagingMode) { - snapCorner = snapCorners.forPosition(overlayPosition); - final Point translation = OverlayUtil.transformPosition(overlayPosition, dimension); // offset from corner - // Target x/y to draw the overlay - int destX = snapCorner.x + translation.x; - int destY = snapCorner.y + translation.y; - // Clamp the target position to ensure it is on screen or within parent bounds - location = clampOverlayLocation(destX, destY, dimension.width, dimension.height, overlay); - } - else - { - location = preferredLocation != null ? preferredLocation : bounds.getLocation(); - - // Clamp the overlay position to ensure it is on screen or within parent bounds - location = clampOverlayLocation(location.x, location.y, dimension.width, dimension.height, overlay); - } - - if (overlay.getPreferredSize() != null) - { - bounds.setSize(overlay.getPreferredSize()); - } - - safeRender(client, overlay, layer, graphics, location); - - // Adjust snap corner based on where the overlay was drawn - if (snapCorner != null && bounds.width + bounds.height > 0) - { - OverlayUtil.shiftSnapCorner(overlayPosition, snapCorner, bounds, PADDING); - } - - // Restore graphics2d properties prior to drawing bounds - graphics.setTransform(transform); - graphics.setStroke(stroke); - graphics.setComposite(composite); - graphics.setPaint(paint); - graphics.setRenderingHints(renderingHints); - graphics.setBackground(background); - - if (!bounds.isEmpty()) - { - if (inOverlayManagingMode) + Color boundsColor; + if (inOverlayResizingMode && currentManagedOverlay == overlay) { - Color boundsColor; - if (inOverlayResizingMode && currentManagedOverlay == overlay) - { - boundsColor = MOVING_OVERLAY_RESIZING_COLOR; - } - else if (inOverlayDraggingMode && currentManagedOverlay == overlay) - { - boundsColor = MOVING_OVERLAY_ACTIVE_COLOR; - } - else if (inOverlayDraggingMode && overlay.isDragTargetable() && currentManagedOverlay.isDragTargetable() - && currentManagedOverlay.getBounds().intersects(bounds)) - { - boundsColor = MOVING_OVERLAY_TARGET_COLOR; - assert currentManagedOverlay != overlay; - dragTargetOverlay = overlay; - } - else - { - boundsColor = MOVING_OVERLAY_COLOR; - } - - graphics.setColor(boundsColor); - graphics.draw(bounds); - graphics.setPaint(paint); + boundsColor = MOVING_OVERLAY_RESIZING_COLOR; + } + else if (inOverlayDraggingMode && currentManagedOverlay == overlay) + { + boundsColor = MOVING_OVERLAY_ACTIVE_COLOR; + } + else if (inOverlayDraggingMode && overlay.isDragTargetable() && currentManagedOverlay.isDragTargetable() + && currentManagedOverlay.getBounds().intersects(bounds)) + { + boundsColor = MOVING_OVERLAY_TARGET_COLOR; + assert currentManagedOverlay != overlay; + dragTargetOverlay = overlay; + } + else + { + boundsColor = MOVING_OVERLAY_COLOR; } - if (!client.isMenuOpen() && !client.getSpellSelected() && bounds.contains(mouse)) - { - hoveredOverlay = overlay; - overlay.onMouseOver(); - } + graphics.setColor(boundsColor); + graphics.draw(bounds); + graphics.setPaint(paint); + } + + if (!client.isMenuOpen() && !client.getSpellSelected() && bounds.contains(mouse)) + { + hoveredOverlay = overlay; + overlay.onMouseOver(); } } } @@ -511,7 +496,7 @@ public class OverlayRenderer extends MouseAdapter // ABOVE_SCENE overlays aren't managed .filter(c -> layerOrder.contains(c.getLayer())) // never allow moving dynamic or tooltip overlays - .filter(c -> c.getPosition() != OverlayPosition.DYNAMIC && c.getPosition() != OverlayPosition.TOOLTIP) + .filter(Overlay::isMovable) .sorted( Comparator.comparingInt(c -> layerOrder.indexOf(c.getLayer())) .thenComparing(OverlayManager.OVERLAY_COMPARATOR) @@ -686,8 +671,8 @@ public class OverlayRenderer extends MouseAdapter } } - // Check if the overlay is over a snapcorner and move it if so, unless it is a detached overlay - if (currentManagedOverlay.getPosition() != OverlayPosition.DETACHED && inOverlayDraggingMode) + // Check if the overlay is over a snapcorner and snap it if so + if (currentManagedOverlay.isSnappable() && inOverlayDraggingMode) { final OverlayBounds snapCorners = this.emptySnapCorners.translated(-SNAP_CORNER_SIZE.width, -SNAP_CORNER_SIZE.height); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java index b0a0067964..5d2080dcbd 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java @@ -43,14 +43,14 @@ public class WidgetOverlay extends Overlay { return Arrays.asList( // classic resizable - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_CHATBOX_PARENT, OverlayPosition.DETACHED, OverlayPriority.HIGH), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_CHATBOX_PARENT, OverlayPosition.DETACHED, OverlayPriority.HIGH), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_PARENT, OverlayPosition.DETACHED), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_CHATBOX_PARENT, OverlayPosition.DYNAMIC, OverlayPriority.HIGH), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_CHATBOX_PARENT, OverlayPosition.DYNAMIC, OverlayPriority.HIGH), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_PARENT, OverlayPosition.DYNAMIC), new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT, OverlayPriority.MED), // modern resizable - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS1, OverlayPosition.DETACHED), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS2, OverlayPosition.DETACHED), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_PARENT, OverlayPosition.DETACHED), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS1, OverlayPosition.DYNAMIC), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS2, OverlayPosition.DYNAMIC), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_PARENT, OverlayPosition.DYNAMIC), new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT, OverlayPriority.MED), // The client forces the oxygen bar below the xp tracker, so set its priority lower new WidgetOverlay(client, WidgetInfo.FOSSIL_ISLAND_OXYGENBAR, OverlayPosition.TOP_CENTER, OverlayPriority.HIGH), @@ -84,7 +84,7 @@ public class WidgetOverlay extends Overlay new WidgetOverlay(client, WidgetInfo.TEMPOROSS_STATUS_INDICATOR, OverlayPosition.TOP_LEFT), new WidgetOverlay(client, WidgetInfo.BA_HEAL_TEAMMATES, OverlayPosition.BOTTOM_LEFT), new WidgetOverlay(client, WidgetInfo.BA_TEAM, OverlayPosition.TOP_RIGHT), - new WidgetOverlay(client, WidgetInfo.PVP_WILDERNESS_SKULL_CONTAINER, OverlayPosition.DETACHED) + new WidgetOverlay(client, WidgetInfo.PVP_WILDERNESS_SKULL_CONTAINER, OverlayPosition.DYNAMIC) ); } @@ -105,6 +105,8 @@ public class WidgetOverlay extends Overlay setPriority(overlayPriority); setLayer(OverlayLayer.UNDER_WIDGETS); setPosition(overlayPosition); + setMovable(true); + setSnappable(true); // It's almost possible to drawAfterInterface(widgetInfo.getGroupId()) here, but that fires // *after* the native components are drawn, which is too late. } From 30fb555809011546256df65d303f228c37ef7466 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 15 May 2022 12:32:41 -0400 Subject: [PATCH 04/21] overlay: disallow transformPosition with dynamic/tooltip --- .../main/java/net/runelite/client/ui/overlay/OverlayUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java index 89d9e3c803..e49c8c4140 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java @@ -240,8 +240,6 @@ public class OverlayUtil switch (position) { - case DYNAMIC: - case TOOLTIP: case TOP_LEFT: break; case TOP_CENTER: @@ -258,6 +256,8 @@ public class OverlayUtil case TOP_RIGHT: result.x = -dimension.width; break; + default: + throw new IllegalArgumentException(); } return result; From b90d793eb71e0b7c2d3ee502865fe3d078bee3f6 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 15 May 2022 12:22:48 -0400 Subject: [PATCH 05/21] overlay: set g2d clip per layer --- .../client/ui/overlay/OverlayRenderer.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 2217a8d3ec..3a08e1508a 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -244,7 +244,7 @@ public class OverlayRenderer extends MouseAdapter overlayManager.setWidgetItems(Collections.emptyList()); } - private void renderOverlays(Graphics2D graphics, Collection overlays, OverlayLayer layer) + private void renderOverlays(final Graphics2D graphics, Collection overlays, final OverlayLayer layer) { if (overlays == null || overlays.isEmpty() @@ -285,6 +285,9 @@ public class OverlayRenderer extends MouseAdapter final RenderingHints renderingHints = graphics.getRenderingHints(); final Color background = graphics.getBackground(); + final Rectangle clip = clipBounds(layer); + graphics.setClip(clip); + for (Overlay overlay : overlays) { final OverlayPosition overlayPosition = getCorrectedOverlayPosition(overlay); @@ -319,7 +322,7 @@ public class OverlayRenderer extends MouseAdapter bounds.setSize(overlay.getPreferredSize()); } - safeRender(client, overlay, layer, graphics, location); + safeRender(overlay, graphics, location); // Adjust snap corner based on where the overlay was drawn if (snapCorner != null && bounds.width + bounds.height > 0) @@ -334,6 +337,10 @@ public class OverlayRenderer extends MouseAdapter graphics.setPaint(paint); graphics.setRenderingHints(renderingHints); graphics.setBackground(background); + if (!graphics.getClip().equals(clip)) + { + graphics.setClip(clip); + } if (!bounds.isEmpty()) { @@ -702,20 +709,23 @@ public class OverlayRenderer extends MouseAdapter return mouseEvent; } - private void safeRender(Client client, Overlay overlay, OverlayLayer layer, Graphics2D graphics, Point point) + private Rectangle clipBounds(OverlayLayer layer) { if (!isResizeable && (layer == OverlayLayer.ABOVE_SCENE || layer == OverlayLayer.UNDER_WIDGETS)) { - graphics.setClip(client.getViewportXOffset(), + return new Rectangle(client.getViewportXOffset(), client.getViewportYOffset(), client.getViewportWidth(), client.getViewportHeight()); } else { - graphics.setClip(0, 0, client.getCanvasWidth(), client.getCanvasHeight()); + return new Rectangle(0, 0, client.getCanvasWidth(), client.getCanvasHeight()); } + } + private void safeRender(Overlay overlay, Graphics2D graphics, Point point) + { final OverlayPosition position = overlay.getPosition(); // Set font based on configuration From 6b81e0c7d1c0a436ddd9a8fc989d97104d8fd0bb Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 15 May 2022 20:28:25 -0400 Subject: [PATCH 06/21] overlay: worldmap: prefer rect2d as g2d clip shape --- .../ui/overlay/worldmap/WorldMapOverlay.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java index 16ca444f8a..d4241daa10 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java @@ -31,6 +31,7 @@ import java.awt.Dimension; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.geom.Area; import java.awt.image.BufferedImage; import java.util.List; @@ -119,10 +120,10 @@ public class WorldMapOverlay extends Overlay bottomBar.setHasListener(true); final Rectangle worldMapRectangle = widget.getBounds(); - final Area mapViewArea = getWorldMapClipArea(worldMapRectangle); + final Shape mapViewArea = getWorldMapClipArea(worldMapRectangle); final Rectangle canvasBounds = new Rectangle(0, 0, client.getCanvasWidth(), client.getCanvasHeight()); - final Area canvasViewArea = getWorldMapClipArea(canvasBounds); - Area currentClip = null; + final Shape canvasViewArea = getWorldMapClipArea(canvasBounds); + Shape currentClip = null; Point mousePos = client.getMouseCanvasPosition(); if (!mapViewArea.contains(mousePos.getX(), mousePos.getY())) @@ -297,24 +298,29 @@ public class WorldMapOverlay extends Overlay * @return An {@link Area} representing baseRectangle, with the area * of visible widgets overlaying the world map clipped from it. */ - private Area getWorldMapClipArea(Rectangle baseRectangle) + private Shape getWorldMapClipArea(Rectangle baseRectangle) { final Widget overview = client.getWidget(WidgetInfo.WORLD_MAP_OVERVIEW_MAP); final Widget surfaceSelector = client.getWidget(WidgetInfo.WORLD_MAP_SURFACE_SELECTOR); Area clipArea = new Area(baseRectangle); + boolean subtracted = false; if (overview != null && !overview.isHidden()) { clipArea.subtract(new Area(overview.getBounds())); + subtracted = true; } if (surfaceSelector != null && !surfaceSelector.isHidden()) { clipArea.subtract(new Area(surfaceSelector.getBounds())); + subtracted = true; } - return clipArea; + // The sun g2d implementation is much more efficient at applying clips which are subclasses of rectangle2d, + // so use that as the clip shape if possible + return subtracted ? clipArea : baseRectangle; } private void drawTooltip(Graphics2D graphics, WorldMapPoint worldPoint) @@ -336,7 +342,7 @@ public class WorldMapOverlay extends Overlay drawPoint = new Point(drawPoint.getX() + TOOLTIP_OFFSET_WIDTH, drawPoint.getY() + TOOLTIP_OFFSET_HEIGHT); final Rectangle bounds = new Rectangle(0, 0, client.getCanvasWidth(), client.getCanvasHeight()); - final Area mapArea = getWorldMapClipArea(bounds); + final Shape mapArea = getWorldMapClipArea(bounds); graphics.setClip(mapArea); graphics.setColor(JagexColors.TOOLTIP_BACKGROUND); graphics.setFont(FontManager.getRunescapeFont()); From 1ed37f561dcbf5357ab34b08c279569a73cc2a81 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sun, 15 May 2022 18:31:05 -0600 Subject: [PATCH 07/21] overlay: do not move snap points backwards because WidgetOverlays in their default position render in the vanilla position it can cause other overlays to occlude previous overlays when they should not --- .../java/net/runelite/client/ui/overlay/OverlayUtil.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java index e49c8c4140..a9f68d6b92 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java @@ -213,19 +213,19 @@ public class OverlayUtil switch (overlayPosition) { case BOTTOM_LEFT: - sX = bounds.x + bounds.width + padding; + sX = Math.max(sX, bounds.x + bounds.width + padding); break; case BOTTOM_RIGHT: - sX = bounds.x - padding; + sX = Math.min(sX, bounds.x - padding); break; case TOP_LEFT: case TOP_CENTER: case CANVAS_TOP_RIGHT: case TOP_RIGHT: - sY = bounds.y + bounds.height + padding; + sY = Math.max(sY, bounds.y + bounds.height + padding); break; case ABOVE_CHATBOX_RIGHT: - sY = bounds.y - padding; + sY = Math.min(sY, bounds.y - padding); break; default: throw new IllegalArgumentException(); From cbb0730a3872b721b2df6a7a60ec34dba03e4c7f Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Thu, 12 May 2022 12:06:51 -0700 Subject: [PATCH 08/21] chat commands: Update clear word and clear line defaults Ctrl + backspace is an overwhelmingly common keybind for clearing the word before the cursor. Meanwhile, clearing the current line is not as common a keybind, so having an unset default is more sensible here for users to decide for themselves what keybind they would prefer. --- .../client/plugins/chatcommands/ChatCommandsConfig.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsConfig.java index 859aa9f9d1..4ed53b575f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsConfig.java @@ -197,7 +197,7 @@ public interface ChatCommandsConfig extends Config ) default Keybind clearSingleWord() { - return new Keybind(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK); + return new Keybind(KeyEvent.VK_BACK_SPACE, InputEvent.CTRL_DOWN_MASK); } @ConfigItem( @@ -208,6 +208,6 @@ public interface ChatCommandsConfig extends Config ) default Keybind clearChatBox() { - return new Keybind(KeyEvent.VK_BACK_SPACE, InputEvent.CTRL_DOWN_MASK); + return Keybind.NOT_SET; } } From 573a66abf1dc1c0486ff5e3a5b0541a31defe7dc Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 16 May 2022 18:05:53 -0400 Subject: [PATCH 09/21] devtools: allow pgup/down to cycle through previous commands Co-authored-by: Max Weber --- .../client/plugins/devtools/DevToolsPlugin.java | 10 ++++++++++ runelite-client/src/main/scripts/CommandScript.rs2asm | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index 0fc56b8f50..52151e61ea 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -48,6 +48,7 @@ import net.runelite.api.VarbitComposition; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.MenuEntryAdded; +import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.StatChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.api.kit.KitType; @@ -488,4 +489,13 @@ public class DevToolsPlugin extends Plugin entry.setTarget(entry.getTarget() + " " + ColorUtil.prependColorTag("(" + info + ")", JagexColors.MENU_TARGET)); } } + + @Subscribe + public void onScriptCallbackEvent(ScriptCallbackEvent ev) + { + if ("devtoolsEnabled".equals(ev.getEventName())) + { + client.getIntStack()[client.getIntStackSize() - 1] = 1; + } + } } diff --git a/runelite-client/src/main/scripts/CommandScript.rs2asm b/runelite-client/src/main/scripts/CommandScript.rs2asm index 0cb44b4ee8..073d229c35 100644 --- a/runelite-client/src/main/scripts/CommandScript.rs2asm +++ b/runelite-client/src/main/scripts/CommandScript.rs2asm @@ -870,6 +870,9 @@ LABEL724: if_icmpgt LABEL728 jump LABEL791 LABEL728: + ; move chatout_add under if ($length2 > 2) to only add for :: commands + get_varc_string 335 + invoke 77 ; chatout_add get_varc_string 335 sconst "::toggleroof" iconst 0 @@ -962,8 +965,11 @@ LABEL798: iload 9 invoke 5517 LABEL804: + ; see comment above + jump AFTER_CHATOUT_ADD get_varc_string 335 invoke 77 +AFTER_CHATOUT_ADD: sconst "" set_varc_string 335 LABEL808: @@ -975,6 +981,8 @@ LABEL809: jump LABEL819 LABEL813: iload 3 + sconst "devtoolsEnabled" + runelite_callback iconst 1 if_icmpeq LABEL817 jump LABEL818 @@ -989,6 +997,8 @@ LABEL819: jump LABEL829 LABEL823: iload 3 + sconst "devtoolsEnabled" + runelite_callback iconst 1 if_icmpeq LABEL827 jump LABEL828 From 09949d344e8d47dd97dfed8fb250d74ee80655e0 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 16 May 2022 23:30:34 -0400 Subject: [PATCH 10/21] overlay: use hovered overlay for picking managed overlay Hovered overlay already accounts for render order, with the exception of the vanilla WidgetOverlays which are drawn prior to any of our overlays being drawn. Instead we order them in render-order, which works for the dynamic-layer ones. The minimap must be top_right so that our overlays layout around it correctly, which currently causes it to be picked up first over dynamic overlays due to the way overlay sorting is done. --- .../client/ui/overlay/OverlayRenderer.java | 80 ++++++------------- .../client/ui/overlay/WidgetOverlay.java | 10 +-- 2 files changed, 29 insertions(+), 61 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 3a08e1508a..81fad24a4f 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -25,7 +25,6 @@ package net.runelite.client.ui.overlay; import com.google.common.base.MoreObjects; -import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import java.awt.Color; import java.awt.Composite; @@ -41,7 +40,6 @@ import java.awt.event.MouseEvent; import java.awt.geom.AffineTransform; import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; @@ -104,7 +102,8 @@ public class OverlayRenderer extends MouseAdapter private boolean inOverlayResizingMode; private boolean inOverlayDraggingMode; private boolean startedMovingOverlay; - private Overlay hoveredOverlay; // for building menu entries + private Overlay curHoveredOverlay; // for building menu entries + private Overlay lastHoveredOverlay; // for off-thread access // Overlay state validation private Rectangle viewportBounds; @@ -166,14 +165,16 @@ public class OverlayRenderer extends MouseAdapter resetOverlayManagementMode(); } - hoveredOverlay = null; + curHoveredOverlay = null; } } @Subscribe protected void onClientTick(ClientTick t) { - final Overlay overlay = hoveredOverlay; + lastHoveredOverlay = curHoveredOverlay; + + final Overlay overlay = curHoveredOverlay; if (overlay == null || client.isMenuOpen()) { return; @@ -207,7 +208,7 @@ public class OverlayRenderer extends MouseAdapter @Subscribe public void onBeforeRender(BeforeRender event) { - hoveredOverlay = null; + curHoveredOverlay = null; if (client.getGameState() == GameState.LOGGED_IN) { @@ -273,10 +274,6 @@ public class OverlayRenderer extends MouseAdapter graphics.setColor(previous); } - // Get mouse position - final net.runelite.api.Point mouseCanvasPosition = client.getMouseCanvasPosition(); - final Point mouse = new Point(mouseCanvasPosition.getX(), mouseCanvasPosition.getY()); - // Save graphics2d properties so we can restore them later final AffineTransform transform = graphics.getTransform(); final Stroke stroke = graphics.getStroke(); @@ -372,9 +369,9 @@ public class OverlayRenderer extends MouseAdapter graphics.setPaint(paint); } - if (!client.isMenuOpen() && !client.getSpellSelected() && bounds.contains(mouse)) + if (!client.isMenuOpen() && !client.getSpellSelected() && bounds.contains(mousePosition)) { - hoveredOverlay = overlay; + curHoveredOverlay = overlay; overlay.onMouseOver(); } } @@ -384,17 +381,16 @@ public class OverlayRenderer extends MouseAdapter @Override public MouseEvent mousePressed(MouseEvent mouseEvent) { + final Point mousePoint = mouseEvent.getPoint(); + mousePosition.setLocation(mousePoint); + if (!inOverlayManagingMode) { return mouseEvent; } - final Point mousePoint = mouseEvent.getPoint(); - mousePosition.setLocation(mousePoint); - // See if we've clicked on an overlay - currentManagedOverlay = findMangedOverlay(mousePoint); - + currentManagedOverlay = lastHoveredOverlay; if (currentManagedOverlay == null) { return mouseEvent; @@ -430,17 +426,17 @@ public class OverlayRenderer extends MouseAdapter @Override public MouseEvent mouseMoved(MouseEvent mouseEvent) { + final Point mousePoint = mouseEvent.getPoint(); + mousePosition.setLocation(mousePoint); + if (!inOverlayManagingMode) { return mouseEvent; } - final Point mousePoint = mouseEvent.getPoint(); - mousePosition.setLocation(mousePoint); - if (!inOverlayResizingMode && !inOverlayDraggingMode) { - currentManagedOverlay = findMangedOverlay(mousePoint); + currentManagedOverlay = lastHoveredOverlay; } if (currentManagedOverlay == null || !currentManagedOverlay.isResizable()) @@ -487,46 +483,17 @@ public class OverlayRenderer extends MouseAdapter return mouseEvent; } - /** - * Find an overlay to manage which is under the given mouse point - * @param mousePoint - * @return - */ - private Overlay findMangedOverlay(Point mousePoint) - { - synchronized (overlayManager) - { - // render order is roughly: under -> manual -> above -> always on top - final List layerOrder = ImmutableList.of(OverlayLayer.UNDER_WIDGETS, OverlayLayer.MANUAL, OverlayLayer.ABOVE_WIDGETS, OverlayLayer.ALWAYS_ON_TOP); - return overlayManager.getOverlays() - .stream() - // ABOVE_SCENE overlays aren't managed - .filter(c -> layerOrder.contains(c.getLayer())) - // never allow moving dynamic or tooltip overlays - .filter(Overlay::isMovable) - .sorted( - Comparator.comparingInt(c -> layerOrder.indexOf(c.getLayer())) - .thenComparing(OverlayManager.OVERLAY_COMPARATOR) - // pick order is reversed from render order - .reversed() - ) - .filter(o -> o.getBounds().contains(mousePoint)) - .findFirst() - .orElse(null); - } - } - @Override public MouseEvent mouseDragged(MouseEvent mouseEvent) { + final Point p = mouseEvent.getPoint(); + mousePosition.setLocation(p); + if (!inOverlayManagingMode) { return mouseEvent; } - final Point p = mouseEvent.getPoint(); - mousePosition.setLocation(p); - if (currentManagedOverlay == null) { return mouseEvent; @@ -661,13 +628,14 @@ public class OverlayRenderer extends MouseAdapter @Override public MouseEvent mouseReleased(MouseEvent mouseEvent) { + final Point mousePoint = mouseEvent.getPoint(); + mousePosition.setLocation(mousePoint); + if (!inOverlayManagingMode || currentManagedOverlay == null || (!inOverlayDraggingMode && !inOverlayResizingMode)) { return mouseEvent; } - mousePosition.setLocation(-1, -1); - if (dragTargetOverlay != null) { if (dragTargetOverlay.onDrag(currentManagedOverlay)) @@ -685,7 +653,7 @@ public class OverlayRenderer extends MouseAdapter for (Rectangle snapCorner : snapCorners.getBounds()) { - if (snapCorner.contains(mouseEvent.getPoint())) + if (snapCorner.contains(mousePoint)) { OverlayPosition position = snapCorners.fromBounds(snapCorner); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java index 5d2080dcbd..5806234f65 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetOverlay.java @@ -42,16 +42,16 @@ public class WidgetOverlay extends Overlay public static Collection createOverlays(final OverlayManager overlayManager, final Client client) { return Arrays.asList( - // classic resizable - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_CHATBOX_PARENT, OverlayPosition.DYNAMIC, OverlayPriority.HIGH), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_CHATBOX_PARENT, OverlayPosition.DYNAMIC, OverlayPriority.HIGH), + // classic resizable - these are in render order for managed overlay picking + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_CHATBOX_PARENT, OverlayPosition.DYNAMIC), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_PARENT, OverlayPosition.DYNAMIC), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT, OverlayPriority.MED), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT), // modern resizable + new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_CHATBOX_PARENT, OverlayPosition.DYNAMIC), + new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS1, OverlayPosition.DYNAMIC), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_TABS2, OverlayPosition.DYNAMIC), new WidgetOverlay(client, WidgetInfo.RESIZABLE_VIEWPORT_BOTTOM_LINE_INVENTORY_PARENT, OverlayPosition.DYNAMIC), - new WidgetOverlay(client, WidgetInfo.RESIZABLE_MINIMAP_STONES_WIDGET, OverlayPosition.CANVAS_TOP_RIGHT, OverlayPriority.MED), // The client forces the oxygen bar below the xp tracker, so set its priority lower new WidgetOverlay(client, WidgetInfo.FOSSIL_ISLAND_OXYGENBAR, OverlayPosition.TOP_CENTER, OverlayPriority.HIGH), new XpTrackerWidgetOverlay(overlayManager, client, WidgetInfo.EXPERIENCE_TRACKER_WIDGET, OverlayPosition.TOP_RIGHT), From 69cd60df03f390512d4a0b10743c61c7127ac295 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 17 May 2022 12:17:46 -0600 Subject: [PATCH 11/21] Update Item IDs to 2022-5-18 --- .../src/main/java/net/runelite/api/ItemID.java | 12 ++++++++++++ .../src/main/java/net/runelite/api/NullItemID.java | 2 ++ 2 files changed, 14 insertions(+) diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java index 675dceb08c..1f2c1d054d 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -12665,5 +12665,17 @@ public final class ItemID public static final int AMULET_OF_THE_EYE_26990 = 26990; public static final int AMULET_OF_THE_EYE_26992 = 26992; public static final int AMULET_OF_THE_EYE_26994 = 26994; + public static final int ENSOULED_HELLHOUND_HEAD = 26996; + public static final int ENSOULED_HELLHOUND_HEAD_26997 = 26997; + public static final int VOID_KNIGHT_TOP_LOR = 27000; + public static final int VOID_KNIGHT_ROBE_LOR = 27001; + public static final int VOID_KNIGHT_GLOVES_LOR = 27002; + public static final int ELITE_VOID_TOP_LOR = 27003; + public static final int ELITE_VOID_ROBE_LOR = 27004; + public static final int VOID_MAGE_HELM_LOR = 27005; + public static final int VOID_RANGER_HELM_LOR = 27006; + public static final int VOID_MELEE_HELM_LOR = 27007; + public static final int DRAGON_DEFENDER_LT = 27008; + public static final int RUNE_DEFENDER_LT = 27009; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java index 162fe7f1b4..97ac498d04 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -14120,5 +14120,7 @@ public final class NullItemID public static final int NULL_26991 = 26991; public static final int NULL_26993 = 26993; public static final int NULL_26995 = 26995; + public static final int NULL_26998 = 26998; + public static final int NULL_26999 = 26999; /* This file is automatically generated. Do not edit. */ } From f24519d40c83cda451d7798303a03d86ab51a820 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 17 May 2022 12:17:46 -0600 Subject: [PATCH 12/21] Update Scripts to 2022-5-18 --- .../main/scripts/OptionsPanelRebuilder.hash | 2 +- .../main/scripts/OptionsPanelRebuilder.rs2asm | 511 ++++++++++-------- 2 files changed, 273 insertions(+), 240 deletions(-) diff --git a/runelite-client/src/main/scripts/OptionsPanelRebuilder.hash b/runelite-client/src/main/scripts/OptionsPanelRebuilder.hash index 7be7e6e664..9b39c0e8c5 100644 --- a/runelite-client/src/main/scripts/OptionsPanelRebuilder.hash +++ b/runelite-client/src/main/scripts/OptionsPanelRebuilder.hash @@ -1 +1 @@ -DE7A8C35396859C56E56307E45F4C3DC35EBA1FAAEBE871FAEC01E47C479AF43 \ No newline at end of file +C0218EBB7488D74689407A1A1E7C23F18E6B9C92F27BF184AA7EEE839DBEBA29 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/OptionsPanelRebuilder.rs2asm b/runelite-client/src/main/scripts/OptionsPanelRebuilder.rs2asm index 31535593c8..d818f5492a 100644 --- a/runelite-client/src/main/scripts/OptionsPanelRebuilder.rs2asm +++ b/runelite-client/src/main/scripts/OptionsPanelRebuilder.rs2asm @@ -1,7 +1,7 @@ .id 909 .int_stack_count 2 .string_stack_count 0 -.int_var_count 21 +.int_var_count 23 .string_var_count 0 iconst 73 iconst 73 @@ -27,31 +27,31 @@ iconst 10551311 enum istore 5 + iconst -1 + istore 6 iconst 103 iconst 105 iconst 1960 iload 1 enum - istore 6 + istore 7 iconst 103 iconst 105 iconst 1961 iload 1 enum - istore 7 + istore 8 iconst 103 iconst 105 iconst 1135 iload 1 enum - istore 8 + istore 9 iconst 103 iconst 105 iconst 1136 iload 1 enum - istore 9 - iconst 0 istore 10 iconst 0 istore 11 @@ -63,42 +63,71 @@ istore 14 iconst 0 istore 15 - iload 0 - if_getwidth + iconst 0 istore 16 iload 0 - if_getheight + if_getwidth istore 17 + iload 0 + if_getheight + istore 18 + iconst 0 + istore 19 iload 1 iconst 1745 - if_icmpeq LABEL70 - jump LABEL84 -LABEL70: - iconst 0 - iload 16 - iconst 39387155 - if_getwidth - sub - invoke 1045 - istore 14 + if_icmpeq LABEL74 + jump LABEL111 +LABEL74: iconst 0 iload 17 iconst 39387155 - if_getheight + if_getwidth sub invoke 1045 istore 15 -LABEL84: + iconst 0 + iload 18 + iconst 39387155 + if_getheight + sub + invoke 1045 + istore 16 + iconst 73 + iconst 73 + iload 1 + iconst 10551329 + enum + istore 6 + iload 6 + iconst -1 + if_icmpne LABEL98 + jump LABEL111 +LABEL98: + iconst -1 + invoke 5357 + iconst 1 + if_icmpeq LABEL103 + jump LABEL111 +LABEL103: + get_varc_int 381 + iconst 16384 + iload 6 + if_getwidth + scale + iconst 42 + add + istore 19 +LABEL111: get_varbit 4606 iconst 0 - if_icmpne LABEL88 - jump LABEL279 -LABEL88: + if_icmpne LABEL115 + jump LABEL308 +LABEL115: get_varbit 4606 iconst 2 - if_icmpeq LABEL92 - jump LABEL101 -LABEL92: + if_icmpeq LABEL119 + jump LABEL128 +LABEL119: iconst 512 iconst 220 viewport_setfov @@ -107,36 +136,36 @@ LABEL92: iconst 0 iconst 0 viewport_clampfov - jump LABEL132 -LABEL101: + jump LABEL159 +LABEL128: get_varbit 4606 iconst 3 - if_icmpeq LABEL105 - jump LABEL124 -LABEL105: + if_icmpeq LABEL132 + jump LABEL151 +LABEL132: iconst 256 iconst 256 viewport_setfov iload 1 iconst 1129 - if_icmpeq LABEL112 - jump LABEL118 -LABEL112: + if_icmpeq LABEL139 + jump LABEL145 +LABEL139: iconst 512 iconst 512 iconst 512 iconst 512 viewport_clampfov - jump LABEL123 -LABEL118: + jump LABEL150 +LABEL145: iconst 640 iconst 768 iconst 512 iconst 512 viewport_clampfov -LABEL123: - jump LABEL132 -LABEL124: +LABEL150: + jump LABEL159 +LABEL151: iconst 256 iconst 256 viewport_setfov @@ -145,52 +174,54 @@ LABEL124: iconst 512 iconst 512 viewport_clampfov -LABEL132: +LABEL159: iconst 50 cam_setfollowheight iload 2 iconst -1 - if_icmpne LABEL138 - jump LABEL278 -LABEL138: + if_icmpne LABEL165 + jump LABEL307 +LABEL165: iload 3 iconst -1 - if_icmpne LABEL142 - jump LABEL278 -LABEL142: + if_icmpne LABEL169 + jump LABEL307 +LABEL169: viewport_geteffectivesize + istore 12 istore 11 - istore 10 - iconst 0 - iload 16 - iload 10 - sub - invoke 1045 iconst 0 iload 17 iload 11 sub invoke 1045 + iconst 0 + iload 18 + iload 12 + sub + invoke 1045 + istore 14 istore 13 - istore 12 - iload 10 iload 11 + iload 12 iconst 0 iconst 0 iload 2 if_setsize - iload 10 - iconst 0 - iload 14 - iload 12 - sub - invoke 1045 - sub iload 11 iconst 0 iload 15 iload 13 sub + iload 19 + sub + invoke 1045 + sub + iload 12 + iconst 0 + iload 16 + iload 14 + sub invoke 1045 sub iconst 0 @@ -199,38 +230,26 @@ LABEL142: if_setsize iload 4 iconst -1 - if_icmpne LABEL185 - jump LABEL268 -LABEL185: + if_icmpne LABEL214 + jump LABEL297 +LABEL214: iload 5 iconst -1 - if_icmpne LABEL189 - jump LABEL268 -LABEL189: - iload 12 - iload 14 - sub - iconst 2 - div + if_icmpne LABEL218 + jump LABEL297 +LABEL218: iload 13 iload 15 sub iconst 2 div + iload 14 + iload 16 + sub + iconst 2 + div + istore 14 istore 13 - istore 12 - iconst 0 - iload 6 - iload 12 - sub - invoke 1045 - iconst 0 - iload 8 - iload 12 - sub - invoke 1045 - istore 8 - istore 6 iconst 0 iload 7 iload 13 @@ -243,34 +262,46 @@ LABEL189: invoke 1045 istore 9 istore 7 - iload 6 + iconst 0 + iload 8 + iload 14 + sub + invoke 1045 + iconst 0 + iload 10 + iload 14 + sub + invoke 1045 + istore 10 + istore 8 iload 7 + iload 8 iconst 0 iconst 0 iload 4 if_setposition - iload 6 iload 7 + iload 8 iconst 0 iconst 0 iload 5 if_setposition - iload 6 - iload 8 - add iload 7 iload 9 add + iload 8 + iload 10 + add iconst 1 iconst 1 iload 4 if_setsize - iload 6 - iload 8 - add iload 7 iload 9 add + iload 8 + iload 10 + add iconst 1 iconst 1 iload 5 @@ -282,11 +313,11 @@ LABEL189: iconst 10551310 enum iload 5 - iload 8 iload 9 + iload 10 invoke 910 - jump LABEL278 -LABEL268: + jump LABEL307 +LABEL297: iload 1 iconst 73 iconst 73 @@ -297,9 +328,9 @@ LABEL268: iconst 0 iconst 0 invoke 910 -LABEL278: - jump LABEL395 -LABEL279: +LABEL307: + jump LABEL426 +LABEL308: iconst 0 iconst 0 iconst 0 @@ -309,106 +340,108 @@ LABEL279: iconst 128 sconst "outerZoomLimit" runelite_callback - if_icmpge LABEL288 - jump LABEL304 -LABEL288: + if_icmpge LABEL317 + jump LABEL333 +LABEL317: get_varc_int 73 iconst 896 sconst "innerZoomLimit" runelite_callback - if_icmple LABEL292 - jump LABEL304 -LABEL292: + if_icmple LABEL321 + jump LABEL333 +LABEL321: get_varc_int 74 iconst 128 sconst "outerZoomLimit" runelite_callback - if_icmpge LABEL296 - jump LABEL304 -LABEL296: + if_icmpge LABEL325 + jump LABEL333 +LABEL325: get_varc_int 74 iconst 896 sconst "innerZoomLimit" runelite_callback - if_icmple LABEL300 - jump LABEL304 -LABEL300: + if_icmple LABEL329 + jump LABEL333 +LABEL329: get_varc_int 73 get_varc_int 74 invoke 42 - jump LABEL307 -LABEL304: + jump LABEL336 +LABEL333: iconst 512 iconst 512 invoke 42 -LABEL307: +LABEL336: viewport_geteffectivesize + istore 12 istore 11 - istore 10 iload 2 iconst -1 - if_icmpne LABEL314 - jump LABEL395 -LABEL314: + if_icmpne LABEL343 + jump LABEL426 +LABEL343: iload 3 iconst -1 - if_icmpne LABEL318 - jump LABEL395 -LABEL318: - iload 10 + if_icmpne LABEL347 + jump LABEL426 +LABEL347: iload 11 + iload 12 iconst 0 iconst 0 iload 2 if_setsize - iload 10 - iload 14 - sub iload 11 iload 15 sub + iload 19 + sub + iload 12 + iload 16 + sub iconst 0 iconst 0 iload 3 if_setsize iload 4 iconst -1 - if_icmpne LABEL338 - jump LABEL385 -LABEL338: + if_icmpne LABEL369 + jump LABEL416 +LABEL369: iload 5 iconst -1 - if_icmpne LABEL342 - jump LABEL385 -LABEL342: - iload 6 + if_icmpne LABEL373 + jump LABEL416 +LABEL373: iload 7 + iload 8 iconst 0 iconst 0 iload 4 if_setposition - iload 6 iload 7 + iload 8 iconst 0 iconst 0 iload 5 if_setposition - iload 6 - iload 8 - add iload 7 iload 9 add + iload 8 + iload 10 + add iconst 1 iconst 1 iload 4 if_setsize - iload 6 - iload 8 - add iload 7 iload 9 add + iload 8 + iload 10 + add iconst 1 iconst 1 iload 5 @@ -420,11 +453,11 @@ LABEL342: iconst 10551310 enum iload 5 - iload 8 iload 9 + iload 10 invoke 910 - jump LABEL395 -LABEL385: + jump LABEL426 +LABEL416: iload 1 iconst 73 iconst 73 @@ -435,86 +468,86 @@ LABEL385: iconst 0 iconst 0 invoke 910 -LABEL395: +LABEL426: iconst 73 iconst 73 iload 1 iconst 10551312 enum - istore 18 - iload 18 + istore 20 + iload 20 iconst -1 - if_icmpne LABEL405 - jump LABEL449 -LABEL405: + if_icmpne LABEL436 + jump LABEL480 +LABEL436: invoke 1972 iconst 0 - if_icmpeq LABEL409 - jump LABEL443 -LABEL409: - iload 18 + if_icmpeq LABEL440 + jump LABEL474 +LABEL440: + iload 20 if_hassub iconst 1 - if_icmpeq LABEL414 - jump LABEL443 -LABEL414: + if_icmpeq LABEL445 + jump LABEL474 +LABEL445: get_varc_int 173 iconst -2 - if_icmpeq LABEL418 - jump LABEL425 -LABEL418: + if_icmpeq LABEL449 + jump LABEL456 +LABEL449: iconst 512 iconst 0 iconst 0 iconst 1 - iload 18 + iload 20 if_setsize - jump LABEL442 -LABEL425: + jump LABEL473 +LABEL456: get_varc_int 173 iconst -3 - if_icmpeq LABEL429 - jump LABEL436 -LABEL429: + if_icmpeq LABEL460 + jump LABEL467 +LABEL460: iconst 0 iconst 0 iconst 1 iconst 1 - iload 18 + iload 20 if_setsize - jump LABEL442 -LABEL436: + jump LABEL473 +LABEL467: iconst 512 iconst 334 iconst 0 iconst 0 - iload 18 + iload 20 if_setsize -LABEL442: - jump LABEL449 -LABEL443: +LABEL473: + jump LABEL480 +LABEL474: iconst 512 iconst 334 iconst 0 iconst 0 - iload 18 + iload 20 if_setsize -LABEL449: +LABEL480: iconst 73 iconst 73 iload 1 iconst 10551314 enum - istore 18 - iconst 0 - istore 19 - iconst 0 istore 20 - iload 18 + iconst 0 + istore 21 + iconst 0 + istore 22 + iload 20 iconst -1 - if_icmpne LABEL463 - jump LABEL511 -LABEL463: + if_icmpne LABEL494 + jump LABEL542 +LABEL494: iconst 73 iconst 73 iload 1 @@ -522,101 +555,101 @@ LABEL463: enum if_hassub iconst 1 - if_icmpeq LABEL472 - jump LABEL481 -LABEL472: + if_icmpeq LABEL503 + jump LABEL512 +LABEL503: get_varbit 4692 iconst 0 - if_icmpne LABEL476 - jump LABEL479 -LABEL476: + if_icmpne LABEL507 + jump LABEL510 +LABEL507: iconst 0 - istore 20 - jump LABEL481 -LABEL479: + istore 22 + jump LABEL512 +LABEL510: iconst 38 - istore 20 -LABEL481: + istore 22 +LABEL512: invoke 1972 iconst 1 - if_icmpeq LABEL485 - jump LABEL503 -LABEL485: + if_icmpeq LABEL516 + jump LABEL534 +LABEL516: get_varbit 542 iconst 0 - if_icmpeq LABEL489 - jump LABEL503 -LABEL489: + if_icmpeq LABEL520 + jump LABEL534 +LABEL520: get_varbit 6254 iconst 0 - if_icmpeq LABEL493 - jump LABEL498 -LABEL493: + if_icmpeq LABEL524 + jump LABEL529 +LABEL524: iconst 182 iconst 4 add - istore 19 - jump LABEL502 -LABEL498: + istore 21 + jump LABEL533 +LABEL529: iconst 120 iconst 4 add - istore 19 -LABEL502: - jump LABEL505 -LABEL503: + istore 21 +LABEL533: + jump LABEL536 +LABEL534: iconst 0 - istore 19 -LABEL505: - iload 19 - iload 20 + istore 21 +LABEL536: + iload 21 + iload 22 iconst 2 iconst 0 - iload 18 + iload 20 if_setposition -LABEL511: +LABEL542: iconst 73 iconst 73 iload 1 iconst 10551305 enum - istore 18 + istore 20 iconst 0 - istore 19 - iload 18 + istore 21 + iload 20 iconst -1 - if_icmpne LABEL523 - jump LABEL545 -LABEL523: + if_icmpne LABEL554 + jump LABEL576 +LABEL554: invoke 1972 iconst 1 - if_icmpeq LABEL527 - jump LABEL537 -LABEL527: + if_icmpeq LABEL558 + jump LABEL568 +LABEL558: get_varbit 6254 iconst 0 - if_icmpeq LABEL531 - jump LABEL534 -LABEL531: + if_icmpeq LABEL562 + jump LABEL565 +LABEL562: iconst 182 - istore 19 - jump LABEL536 -LABEL534: + istore 21 + jump LABEL567 +LABEL565: iconst 120 - istore 19 -LABEL536: - jump LABEL539 -LABEL537: + istore 21 +LABEL567: + jump LABEL570 +LABEL568: iconst 0 - istore 19 -LABEL539: - iload 19 + istore 21 +LABEL570: + iload 21 iconst 0 iconst 1 iconst 1 - iload 18 + iload 20 if_setsize -LABEL545: +LABEL576: iconst 73 iconst 73 iload 1 From 6f887464d8751c37f1dcb17b6fbb6ce087499721 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 17 May 2022 12:17:46 -0600 Subject: [PATCH 13/21] Update Item variations to 2022-5-18 --- .../src/main/resources/item_variations.json | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json index b16f6c354b..bada1e25f8 100644 --- a/runelite-client/src/main/resources/item_variations.json +++ b/runelite-client/src/main/resources/item_variations.json @@ -6239,13 +6239,15 @@ 8839, 20465, 24177, - 26463 + 26463, + 27000 ], "void knight robe": [ 8840, 20469, 24179, - 26465 + 26465, + 27001 ], "void knight mace": [ 8841, @@ -6256,7 +6258,8 @@ 8842, 20475, 24182, - 26467 + 26467, + 27002 ], "bronze defender": [ 8844, @@ -6292,7 +6295,8 @@ 8850, 20461, 23230, - 24142 + 24142, + 27009 ], "zanik": [ 8870, @@ -7397,19 +7401,22 @@ 11663, 20477, 24183, - 26473 + 26473, + 27005 ], "void ranger helm": [ 11664, 20479, 24184, - 26475 + 26475, + 27006 ], "void melee helm": [ 11665, 20481, 24185, - 26477 + 26477, + 27007 ], "void seal": [ 11666, @@ -8076,7 +8083,8 @@ 19722, 20463, 23597, - 24143 + 24143, + 27008 ], "bronze set": [ 12960, @@ -8190,13 +8198,15 @@ 13072, 20467, 24178, - 26469 + 26469, + 27003 ], "elite void robe": [ 13073, 20471, 24180, - 26471 + 26471, + 27004 ], "crystal halberd": [ 13080, @@ -10673,5 +10683,9 @@ "circlet of water": [ 26967, 26969 + ], + "ensouled hellhound head": [ + 26996, + 26997 ] } \ No newline at end of file From 4d43876e854bee408b306ed70c2b2226a5141328 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 17 May 2022 12:17:46 -0600 Subject: [PATCH 14/21] Update Object IDs to 2022-5-18 --- runelite-api/src/main/java/net/runelite/api/NullObjectID.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index 804877dae7..fe126902af 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -21640,6 +21640,9 @@ public final class NullObjectID public static final int NULL_43847 = 43847; public static final int NULL_43848 = 43848; public static final int NULL_43850 = 43850; + public static final int NULL_43851 = 43851; + public static final int NULL_43852 = 43852; + public static final int NULL_43853 = 43853; public static final int NULL_43871 = 43871; public static final int NULL_43872 = 43872; public static final int NULL_43874 = 43874; From 78bab629fef6c1811c3c90a6f86ed776ad61448a Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 17 May 2022 12:17:46 -0600 Subject: [PATCH 15/21] Update NPC IDs to 2022-5-18 --- runelite-api/src/main/java/net/runelite/api/NpcID.java | 1 + 1 file changed, 1 insertion(+) diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index 1dcf3dd2b6..b53d5b0587 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -9648,6 +9648,7 @@ public final class NpcID public static final int THE_GREAT_GUARDIAN_11455 = 11455; public static final int THE_GREAT_GUARDIAN_11456 = 11456; public static final int MENAPHITE_SHADOW = 11462; + public static final int REANIMATED_HELLHOUND = 11463; public static final int TARIK_11473 = 11473; public static final int MAISA_11474 = 11474; public static final int MAISA_11475 = 11475; From 23bd23a064b957a41cb87b756dc422bda01fe319 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Wed, 18 May 2022 05:11:32 -0600 Subject: [PATCH 16/21] fairyring: add isle of souls ring --- .../java/net/runelite/client/plugins/fairyring/FairyRings.java | 1 + 1 file changed, 1 insertion(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java index 5fd9f83c3a..dd5b1d36ef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java @@ -48,6 +48,7 @@ public enum FairyRings BIP("(Island) South-west of Mort Myre"), BIQ("Kalphite Hive"), BIS("Ardougne Zoo - Unicorns"), + BJP("(Island) Isle of Souls"), BJR("Realm of the Fisher King"), BJS("(Island) Near Zul-Andra", "zulrah"), BKP("South of Castle Wars"), From 55147bfd374f6a9ea7af0b03d290e77bc94bccf8 Mon Sep 17 00:00:00 2001 From: RuneLite updater Date: Wed, 18 May 2022 11:22:47 +0000 Subject: [PATCH 17/21] Release 1.8.20 --- cache-client/pom.xml | 2 +- cache-updater/pom.xml | 2 +- cache/pom.xml | 2 +- pom.xml | 4 ++-- runelite-api/pom.xml | 2 +- runelite-client/pom.xml | 2 +- runelite-jshell/pom.xml | 2 +- runelite-script-assembler-plugin/pom.xml | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cache-client/pom.xml b/cache-client/pom.xml index 816de5ab88..5b2b4fef7e 100644 --- a/cache-client/pom.xml +++ b/cache-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 cache-client diff --git a/cache-updater/pom.xml b/cache-updater/pom.xml index f1772f58f3..a8081e558b 100644 --- a/cache-updater/pom.xml +++ b/cache-updater/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 Cache Updater diff --git a/cache/pom.xml b/cache/pom.xml index 1f704ced83..93927bbf6b 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 cache diff --git a/pom.xml b/pom.xml index f87c1e5965..bf666a141c 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 pom RuneLite @@ -63,7 +63,7 @@ https://github.com/runelite/runelite scm:git:git://github.com/runelite/runelite scm:git:git@github.com:runelite/runelite - HEAD + runelite-parent-1.8.20 diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 6f42b539de..170e423d7c 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 runelite-api diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index 3c3dc26cca..eb4abffb80 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 client diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index 5a6f697f5c..f476a1f468 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 jshell diff --git a/runelite-script-assembler-plugin/pom.xml b/runelite-script-assembler-plugin/pom.xml index a58ba56eef..f23ce82623 100644 --- a/runelite-script-assembler-plugin/pom.xml +++ b/runelite-script-assembler-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20-SNAPSHOT + 1.8.20 script-assembler-plugin From f201c6f63bac2b8a555f364900e56d27ee1f9dae Mon Sep 17 00:00:00 2001 From: RuneLite updater Date: Wed, 18 May 2022 11:22:51 +0000 Subject: [PATCH 18/21] Bump for 1.8.21-SNAPSHOT [ci skip] --- cache-client/pom.xml | 2 +- cache-updater/pom.xml | 2 +- cache/pom.xml | 2 +- pom.xml | 4 ++-- runelite-api/pom.xml | 2 +- runelite-client/pom.xml | 2 +- runelite-jshell/pom.xml | 2 +- runelite-script-assembler-plugin/pom.xml | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cache-client/pom.xml b/cache-client/pom.xml index 5b2b4fef7e..761d70a4d2 100644 --- a/cache-client/pom.xml +++ b/cache-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT cache-client diff --git a/cache-updater/pom.xml b/cache-updater/pom.xml index a8081e558b..e528e1f47d 100644 --- a/cache-updater/pom.xml +++ b/cache-updater/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT Cache Updater diff --git a/cache/pom.xml b/cache/pom.xml index 93927bbf6b..ae5c972f2c 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT cache diff --git a/pom.xml b/pom.xml index bf666a141c..069561dc2e 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT pom RuneLite @@ -63,7 +63,7 @@ https://github.com/runelite/runelite scm:git:git://github.com/runelite/runelite scm:git:git@github.com:runelite/runelite - runelite-parent-1.8.20 + HEAD diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 170e423d7c..356e26f104 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT runelite-api diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index eb4abffb80..72c5a43118 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT client diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index f476a1f468..adcb471eb7 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT jshell diff --git a/runelite-script-assembler-plugin/pom.xml b/runelite-script-assembler-plugin/pom.xml index f23ce82623..1801dfb2a7 100644 --- a/runelite-script-assembler-plugin/pom.xml +++ b/runelite-script-assembler-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.8.20 + 1.8.21-SNAPSHOT script-assembler-plugin From f4190e23ec42c1b6b2ececcb95060c1e3e944ccf Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Wed, 18 May 2022 17:09:27 +0200 Subject: [PATCH 19/21] project(version): Bump RL version --- buildSrc/src/main/kotlin/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 3851c487fb..a0b5cb9b38 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -25,7 +25,7 @@ object ProjectVersions { const val launcherVersion = "3.0.0" - const val rlVersion = "1.8.19" + const val rlVersion = "1.8.20" const val openosrsVersion = "4.26.1" From 9f653af68150b19b1aa3f1ccfa40fc9fde99ea1f Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Wed, 18 May 2022 17:09:44 +0200 Subject: [PATCH 20/21] project(version): Bump OpenOSRS version --- buildSrc/src/main/kotlin/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index a0b5cb9b38..1cc2ad50ef 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -27,7 +27,7 @@ object ProjectVersions { const val launcherVersion = "3.0.0" const val rlVersion = "1.8.20" - const val openosrsVersion = "4.26.1" + const val openosrsVersion = "4.27.0" const val rsversion = 205 const val cacheversion = 165 From ff2cf1365ac743dcf035750fb45b7647a9284401 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Wed, 18 May 2022 17:21:46 +0200 Subject: [PATCH 21/21] project(checkstyle): Checkstyle --- .../java/net/runelite/client/ui/overlay/OverlayRenderer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 6ad7787f5f..cd27715bd2 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -65,7 +65,6 @@ import net.runelite.client.input.MouseAdapter; import net.runelite.client.input.MouseManager; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.JagexColors; -import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.TooltipManager; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.HotkeyListener;