From 1b7dadeb68033c5eeed780762f75e99dd3aaa9d4 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 16 Jun 2020 17:21:39 -0400 Subject: [PATCH] overlay: optimize some menu handling code --- .../java/net/runelite/client/events/OverlayMenuClicked.java | 6 ++---- .../java/net/runelite/client/ui/overlay/OverlayManager.java | 5 ++--- .../net/runelite/client/ui/overlay/OverlayRenderer.java | 5 +++++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java b/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java index 6394e7c799..8b02c808f1 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java +++ b/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java @@ -24,16 +24,14 @@ */ package net.runelite.client.events; -import lombok.AllArgsConstructor; -import lombok.Data; +import lombok.Value; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayMenuEntry; /** * Event fired when an overlay menu entry is clicked. */ -@Data -@AllArgsConstructor +@Value public class OverlayMenuClicked { private OverlayMenuEntry entry; 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 e5f52668e0..183f92a5c7 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 @@ -143,10 +143,9 @@ public class OverlayManager event.consume(); - Optional optionalOverlay = overlays.stream().filter(o -> overlays.indexOf(o) == event.getId()).findAny(); - if (optionalOverlay.isPresent()) + Overlay overlay = overlays.get(event.getId()); + if (overlay != null) { - Overlay overlay = optionalOverlay.get(); List menuEntries = overlay.getMenuEntries(); Optional optionalOverlayMenuEntry = menuEntries.stream() .filter(me -> me.getOption().equals(event.getMenuOption())) 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 ddf0a44bd4..0a903d5e3e 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 @@ -792,6 +792,11 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener private MenuEntry[] createRightClickMenuEntries(Overlay overlay) { List menuEntries = overlay.getMenuEntries(); + if (menuEntries.isEmpty()) + { + return null; + } + final MenuEntry[] entries = new MenuEntry[menuEntries.size()]; // Add in reverse order so they display correctly in the right-click menu