From 11e175324080b2c54de6531b096a2f79a30625ba Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 14 Nov 2019 10:19:27 -0500 Subject: [PATCH] raid plugin: fix layout command room order --- .../runelite/client/plugins/raids/Raid.java | 21 ++++++++++++++++--- .../client/plugins/raids/RaidsPlugin.java | 7 ++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java index 87181b4085..574dcebb2a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java @@ -136,10 +136,13 @@ public class Raid return builder.toString(); } - public String toRoomString() + /** + * Get the raid rooms in the order they are in the raid + * @return + */ + List getOrderedRooms() { - final StringBuilder sb = new StringBuilder(); - + List orderedRooms = new ArrayList<>(); for (Room r : getLayout().getRooms()) { final int position = r.getPosition(); @@ -150,6 +153,18 @@ public class Raid continue; } + orderedRooms.add(room); + } + + return orderedRooms; + } + + String toRoomString() + { + final StringBuilder sb = new StringBuilder(); + + for (RaidRoom room : getOrderedRooms()) + { switch (room.getType()) { case PUZZLE: diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index f25ba51534..f96f9c0a9d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -32,6 +32,7 @@ import java.text.DecimalFormat; import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -53,7 +54,6 @@ import net.runelite.api.Tile; import net.runelite.api.VarPlayer; import net.runelite.api.Varbits; import net.runelite.api.events.ChatMessage; -import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.client.callback.ClientThread; import net.runelite.client.chat.ChatColorType; @@ -64,6 +64,7 @@ import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ChatInput; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; @@ -665,9 +666,9 @@ public class RaidsPlugin extends Plugin } final String playerName = client.getLocalPlayer().getName(); - RaidRoom[] rooms = raid.getRooms(); + List orderedRooms = raid.getOrderedRooms(); - LayoutRoom[] layoutRooms = Arrays.stream(rooms) + LayoutRoom[] layoutRooms = orderedRooms.stream() .map(room -> LayoutRoom.valueOf(room.name())) .toArray(LayoutRoom[]::new);