From e93f0df92b69f19ba9f54100e618e4b42467e5c0 Mon Sep 17 00:00:00 2001 From: Kamiel Date: Fri, 23 Feb 2018 16:41:17 +0100 Subject: [PATCH 1/2] Fix minor issues - Remove "plugin" from the name - Cache colours on startup - Use regex to split config string --- .../net/runelite/client/plugins/raids/RaidsPlugin.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 4c3cfe81aa..8730de7d06 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 @@ -61,7 +61,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @PluginDescriptor( - name = "Raids Plugin" + name = "Raids" ) @Slf4j public class RaidsPlugin extends Plugin @@ -127,6 +127,9 @@ public class RaidsPlugin extends Plugin updateInfoBoxState(); } + if (config.pointsMessage()) + cacheColors(); + updateBlacklist(); } @@ -266,7 +269,7 @@ public class RaidsPlugin extends Plugin private void updateBlacklist() { blacklist.clear(); - blacklist.addAll(Arrays.asList(config.blacklistedRooms().toLowerCase().split(", "))); + blacklist.addAll(Arrays.asList(config.blacklistedRooms().toLowerCase().split("\\s*,\\s*"))); } private void cacheColors() From 854369f04de6e9d1eb2970b61dfe74a7ce5c3a14 Mon Sep 17 00:00:00 2001 From: Kamiel Date: Sun, 25 Feb 2018 04:40:07 +0100 Subject: [PATCH 2/2] Follow java coding conventions --- .../runelite/client/plugins/raids/Raid.java | 18 +++++++++ .../client/plugins/raids/RaidRoom.java | 6 +++ .../client/plugins/raids/RaidsPlugin.java | 38 +++++++++++++++++++ .../client/plugins/raids/RaidsTimer.java | 6 +++ .../client/plugins/raids/solver/Layout.java | 2 + .../plugins/raids/solver/LayoutSolver.java | 8 +++- .../plugins/raids/solver/RotationSolver.java | 26 ++++++++++++- 7 files changed, 101 insertions(+), 3 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 f37699c826..caf2207f14 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 @@ -41,14 +41,18 @@ public class Raid public void updateLayout(Layout layout) { if (layout == null) + { return; + } this.layout = layout; for (int i = 0; i < rooms.length; i++) { if (layout.getRoomAt(i) == null) + { continue; + } RaidRoom room = rooms[i]; @@ -58,10 +62,14 @@ public class Raid room = new RaidRoom(null, type); if (type == RaidRoom.Type.COMBAT) + { room.setBoss(RaidRoom.Boss.UNKNOWN); + } if (type == RaidRoom.Type.PUZZLE) + { room.setPuzzle(RaidRoom.Puzzle.UNKNOWN); + } setRoom(room, i); } @@ -76,7 +84,9 @@ public class Raid public void setRoom(RaidRoom room, int position) { if (position < rooms.length) + { rooms[position] = room; + } } public RaidRoom[] getCombatRooms() @@ -86,10 +96,14 @@ public class Raid for (Room room : layout.getRooms()) { if (room == null) + { continue; + } if (rooms[room.getPosition()].getType() == RaidRoom.Type.COMBAT) + { combatRooms.add(rooms[room.getPosition()]); + } } return combatRooms.toArray(new RaidRoom[combatRooms.size()]); @@ -102,9 +116,13 @@ public class Raid for (RaidRoom room : rooms) { if (room != null) + { builder.append(room.getType().getCode()); + } else + { builder.append(" "); + } } return builder.toString(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidRoom.java index 417df399c7..23df0ff407 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidRoom.java @@ -55,7 +55,9 @@ public class RaidRoom for (Type type : Type.values()) { if (type.getCode().equalsIgnoreCase(String.valueOf(code))) + { return type; + } } return Type.EMPTY; @@ -83,7 +85,9 @@ public class RaidRoom for (Boss boss : Boss.values()) { if (boss.getName().equalsIgnoreCase(name)) + { return boss; + } } return null; @@ -107,7 +111,9 @@ public class RaidRoom for (Puzzle puzzle : Puzzle.values()) { if (puzzle.getName().equalsIgnoreCase(name)) + { return puzzle; + } } return null; 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 8730de7d06..e9fa977526 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 @@ -128,7 +128,9 @@ public class RaidsPlugin extends Plugin } if (config.pointsMessage()) + { cacheColors(); + } updateBlacklist(); } @@ -137,20 +139,28 @@ public class RaidsPlugin extends Plugin protected void shutDown() throws Exception { if (timer != null) + { infoBoxManager.removeInfoBox(timer); + } } @Subscribe public void onConfigChanged(ConfigChanged event) { if (config.pointsMessage()) + { cacheColors(); + } if (event.getKey().equals("raidsTimer")) + { updateInfoBoxState(); + } if (event.getKey().equals("blacklistedRooms")) + { updateBlacklist(); + } } @Subscribe @@ -215,7 +225,9 @@ public class RaidsPlugin extends Plugin if (message.startsWith(RAID_COMPLETE_MESSAGE)) { if (timer != null) + { timer.setStopped(true); + } if (config.pointsMessage()) { @@ -257,12 +269,18 @@ public class RaidsPlugin extends Plugin if (timer != null) { if (inRaidChambers && config.raidsTimer()) + { infoBoxManager.addInfoBox(timer); + } else + { infoBoxManager.removeInfoBox(timer); + } if (!inRaidChambers) + { timer = null; + } } } @@ -290,10 +308,14 @@ public class RaidsPlugin extends Plugin for (int y = 0; y < SCENE_SIZE; y++) { if (tiles[x][y] == null || tiles[x][y].getWallObject() == null) + { continue; + } if (tiles[x][y].getWallObject().getId() == ObjectID.NULL_12231) + { return tiles[x][y].getRegionLocation(); + } } } @@ -305,7 +327,9 @@ public class RaidsPlugin extends Plugin Point gridBase = findLobbyBase(); if (gridBase == null) + { return null; + } Raid raid = new Raid(); Tile[][] tiles; @@ -317,9 +341,13 @@ public class RaidsPlugin extends Plugin tiles = client.getRegion().getTiles()[plane]; if (tiles[gridBase.getX() + RaidRoom.ROOM_MAX_SIZE][gridBase.getY()] == null) + { position = 1; + } else + { position = 0; + } for (int i = 1; i > -2; i--) { @@ -331,10 +359,14 @@ public class RaidsPlugin extends Plugin offsetX = 0; if (x > SCENE_SIZE && position > 1 && position < 4) + { position++; + } if (x < 0) + { offsetX = Math.abs(x) + 1; //add 1 because the tile at x=0 will always be null + } if (x < SCENE_SIZE && y >= 0 && y < SCENE_SIZE) { @@ -350,7 +382,9 @@ public class RaidsPlugin extends Plugin } if (position == 0 && startX != j) + { startX = j; + } Tile base = tiles[offsetX > 0 ? 1 : x][y]; RaidRoom room = determineRoom(base); @@ -371,7 +405,9 @@ public class RaidsPlugin extends Plugin InstanceTemplates template = InstanceTemplates.findMatch(chunkData); if (template == null) + { return room; + } switch (template) { @@ -461,7 +497,9 @@ public class RaidsPlugin extends Plugin private BufferedImage getRaidsIcon() { if (raidsIcon != null) + { return raidsIcon; + } InputStream in = RaidsPlugin.class.getResourceAsStream("raids_icon.png"); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java index dc6e574f0a..562105924a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java @@ -52,7 +52,9 @@ public class RaidsTimer extends InfoBox public String getText() { if (startTime == null) + { return ""; + } if (!stopped) { @@ -61,7 +63,9 @@ public class RaidsTimer extends InfoBox } if (time.getHour() > 0) + { return time.format(DateTimeFormatter.ofPattern("HH:mm")); + } return time.format(DateTimeFormatter.ofPattern("mm:ss")); } @@ -70,7 +74,9 @@ public class RaidsTimer extends InfoBox public Color getTextColor() { if (stopped) + { return Color.GREEN; + } return Color.WHITE; } 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 6392f63bc3..d913f8080c 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 @@ -43,7 +43,9 @@ public class Layout for (Room room : rooms) { if (room.getPosition() == position) + { return room; + } } return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/LayoutSolver.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/LayoutSolver.java index 0a2410fb6c..fa8bd87360 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/LayoutSolver.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/LayoutSolver.java @@ -119,9 +119,11 @@ public class LayoutSolver } if (matches == 1) + { return solution; - else - return null; + } + + return null; } private int calcStart(String directions) @@ -173,7 +175,9 @@ public class LayoutSolver Matcher match = regex.matcher(code); if (!match.find()) + { continue; + } String symbols, directions; int position = calcStart(match.group(3)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/RotationSolver.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/RotationSolver.java index e5654bc0fa..1acf3ed2df 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/RotationSolver.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/solver/RotationSolver.java @@ -43,7 +43,9 @@ public class RotationSolver public E get(int index) { if (index < 0) + { index = index + size(); + } return super.get(index % size()); } @@ -59,8 +61,10 @@ public class RotationSolver public static boolean solve(RaidRoom[] rooms) { - if (rooms == null) + if (rooms == null) + { return false; + } Rotation match = null; Integer start = null; @@ -70,19 +74,27 @@ public class RotationSolver for (int i = 0; i < rooms.length; i++) { if (rooms[i] == null || rooms[i].getBoss() == null || rooms[i].getBoss() == Boss.UNKNOWN) + { continue; + } if (start == null) + { start = i; + } known++; } if (known < 2) + { return false; + } if (known == rooms.length) + { return true; + } for (Rotation rotation : ROTATIONS) { @@ -94,14 +106,20 @@ public class RotationSolver for (int j = start + 1; j < rooms.length; j++) { if (rooms[j].getBoss() == null || rooms[j].getBoss() == Boss.UNKNOWN) + { continue; + } if (rooms[j].getBoss() != rotation.get(i + j - start)) + { break COMPARE; + } } if (match != null && match != rotation) + { return false; + } index = i - start; match = rotation; @@ -110,15 +128,21 @@ public class RotationSolver } if (match == null) + { return false; + } for (int i = 0; i < rooms.length; i++) { if (rooms[i] == null) + { continue; + } if (rooms[i].getBoss() == null || rooms[i].getBoss() == Boss.UNKNOWN) + { rooms[i].setBoss(match.get(index + i)); + } } return true;