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 a7b151f409..a0baabe691 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 @@ -134,4 +134,49 @@ public class Raid return builder.toString(); } + + public String toRoomString() + { + final StringBuilder sb = new StringBuilder(); + + for (Room r : getLayout().getRooms()) + { + final int position = r.getPosition(); + final RaidRoom room = getRoom(position); + + if (room == null || !(room.getType() == RaidRoom.Type.COMBAT || room.getType() == RaidRoom.Type.PUZZLE)) + { + continue; + } + + switch (room.getType()) + { + case PUZZLE: + final RaidRoom.Puzzle puzzle = room.getPuzzle(); + sb.append(puzzle.getName()); + + if (puzzle == RaidRoom.Puzzle.UNKNOWN) + { + sb.append(" (puzzle)"); + } + + sb.append(", "); + break; + case COMBAT: + final RaidRoom.Boss boss = room.getBoss(); + sb.append(boss.getName()); + + if (boss == RaidRoom.Boss.UNKNOWN) + { + sb.append(" (combat)"); + } + + sb.append(", "); + break; + } + } + + final String roomsString = sb.toString(); + return roomsString.substring(0, roomsString.length() - 2); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java index 9b6e62e633..5ca7214b57 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java @@ -86,7 +86,7 @@ public class RaidsOverlay extends Overlay } Color color = Color.WHITE; - String layout = plugin.getRaid().getLayout().toCode().replaceAll("#", "").replaceAll("¤", ""); + String layout = plugin.getRaid().getLayout().toCodeString(); if (config.enableLayoutWhitelist() && !plugin.getLayoutWhitelist().contains(layout.toLowerCase())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/Layout.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/Layout.java index d913f8080c..3bee58d4fc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/Layout.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/Layout.java @@ -62,4 +62,9 @@ public class Layout return builder.toString(); } + + public String toCodeString() + { + return toCode().replaceAll("#", "").replaceAll("¤", ""); + } }