diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLinkMicBattleEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLinkMicBattleEvent.java index cbe2439e..87f77781 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLinkMicBattleEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLinkMicBattleEvent.java @@ -128,4 +128,37 @@ private boolean isTeamsTie() { int referencePoints = teams.get(0).getTotalPoints(); return teams.stream().allMatch(team -> team.getTotalPoints() == referencePoints); } + + /** + * @param battleHostName name of host to search + * @return Team instance containing name of host or null if no team found */ + public Team getTeam(String battleHostName) { + List list = getTeams(battleHostName); + return list.isEmpty() ? null : list.get(0); + } + + /** + * @param battleHostName name of host to search + * @return Team instances not containing name of host */ + public List getOpponentTeams(String battleHostName) { + List list = getTeams(battleHostName); + return list.isEmpty() ? null : list; + } + + /** + * @param battleHostName name of host to search + * @return {@link List} with host team first, then opponent teams + *

If host is in neither or teams is empty, returns empty + *

Otherwise always teams.length in length; + */ + public List getTeams(String battleHostName) { + if (teams.isEmpty() || teams.stream().noneMatch(team -> team.contains(battleHostName))) + return Collections.EMPTY_LIST; + Team hostTeam = teams.stream().filter(team -> team.contains(battleHostName)).findFirst().orElseThrow(); + List opponentTeams = teams.stream().filter(team -> !team.contains(battleHostName)).toList(); + List teams = new ArrayList<>(); + teams.add(hostTeam); + teams.addAll(opponentTeams); + return teams; + } } \ No newline at end of file diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/battles/Team.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/battles/Team.java index f11072ef..03edff74 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/battles/Team.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/battles/Team.java @@ -81,4 +81,8 @@ public Team(WebcastLinkMicBattle.BattleUserInfo anchorInfo, WebcastLinkMicBattle this(anchorInfo); this.winStreak = (int) battleCombo.getComboCount(); } + + public boolean contains(String name) { + return hosts.stream().anyMatch(user -> user.getName().equals(name)); + } } \ No newline at end of file