diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RotationSolver.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RotationSolver.java index b9179cea1b..5bbc354785 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RotationSolver.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RotationSolver.java @@ -24,6 +24,7 @@ */ package net.runelite.client.plugins.raids; +import static java.lang.Math.floorMod; import java.util.Arrays; import java.util.List; import static net.runelite.client.plugins.raids.RaidRoom.GUARDIANS; @@ -97,7 +98,7 @@ class RotationSolver continue; } - if (rooms[j] != rotation.get((i + j - start) % rotation.size())) + if (rooms[j] != rotation.get(floorMod(i + j - start, rotation.size()))) { break COMPARE; } @@ -128,7 +129,7 @@ class RotationSolver if (rooms[i].getType() != RoomType.COMBAT || rooms[i] == UNKNOWN_COMBAT) { - rooms[i] = match.get((index + i) % match.size()); + rooms[i] = match.get(floorMod(index + i, match.size())); } } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java index 38039ca832..7bacba91ce 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java @@ -77,4 +77,12 @@ public class RotationSolverTest RotationSolver.solve(rooms); assertArrayEquals(new RaidRoom[]{GUARDIANS, VESPULA, SHAMANS, VASA}, rooms); } + + @Test + public void testSolve6() + { + RaidRoom[] rooms = new RaidRoom[]{UNKNOWN_COMBAT, UNKNOWN_COMBAT, TEKTON, MUTTADILES}; + RotationSolver.solve(rooms); + assertArrayEquals(new RaidRoom[]{VANGUARDS, MYSTICS, TEKTON, MUTTADILES}, rooms); + } } \ No newline at end of file