raids plugin: clean up whitelist matching code

This commit is contained in:
Adam
2019-10-28 18:03:41 -04:00
parent 19b27d11fc
commit fce1b9518d
2 changed files with 10 additions and 42 deletions

View File

@@ -24,9 +24,7 @@
*/ */
package net.runelite.client.plugins.raids; package net.runelite.client.plugins.raids;
import com.google.common.base.Joiner;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import lombok.Getter; import lombok.Getter;
import net.runelite.client.plugins.raids.solver.Layout; import net.runelite.client.plugins.raids.solver.Layout;
@@ -80,7 +78,7 @@ public class Raid
} }
} }
public RaidRoom[] getCombatRooms() RaidRoom[] getCombatRooms()
{ {
List<RaidRoom> combatRooms = new ArrayList<>(); List<RaidRoom> combatRooms = new ArrayList<>();
@@ -97,12 +95,7 @@ public class Raid
} }
} }
return combatRooms.toArray(new RaidRoom[combatRooms.size()]); return combatRooms.toArray(new RaidRoom[0]);
}
public String getRotationString()
{
return Joiner.on(",").join(Arrays.stream(getCombatRooms()).map(RaidRoom::getName).toArray());
} }
public String toCode() public String toCode()

View File

@@ -29,9 +29,10 @@ import com.google.inject.Provides;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.Arrays;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -407,39 +408,13 @@ public class RaidsPlugin extends Plugin
int getRotationMatches() int getRotationMatches()
{ {
String rotation = raid.getRotationString().toLowerCase(); RaidRoom[] combatRooms = raid.getCombatRooms();
List<String> bosses = Text.fromCSV(rotation); String rotation = Arrays.stream(combatRooms)
.map(RaidRoom::getName)
.map(String::toLowerCase)
.collect(Collectors.joining(","));
if (rotationWhitelist.contains(rotation)) return rotationWhitelist.contains(rotation) ? combatRooms.length : 0;
{
return bosses.size();
}
for (String whitelisted : rotationWhitelist)
{
int matches = 0;
List<String> whitelistedBosses = Text.fromCSV(whitelisted);
for (int i = 0; i < whitelistedBosses.size(); i++)
{
if (i < bosses.size() && whitelistedBosses.get(i).equals(bosses.get(i)))
{
matches++;
}
else
{
matches = 0;
break;
}
}
if (matches >= 2)
{
return matches;
}
}
return 0;
} }
private Point findLobbyBase() private Point findLobbyBase()