raids plugin: clean up whitelist matching code
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user