Skip to content

Commit 8cd640f

Browse files
committed
Converted list of teams to just 2 teams as we know the size is always 2 and updated methods accordingly.
1 parent ca741ed commit 8cd640f

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

API/src/main/java/io/github/jwdeveloper/tiktok/data/events/TikTokLinkMicBattleEvent.java

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
2929
import io.github.jwdeveloper.tiktok.messages.enums.LinkMicBattleStatus;
3030
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastLinkMicBattle;
31-
import lombok.*;
32-
33-
import java.util.*;
31+
import lombok.Getter;
3432

3533
/**
3634
* Triggered every time a battle starts & ends
@@ -44,23 +42,22 @@ public class TikTokLinkMicBattleEvent extends TikTokHeaderEvent
4442
true if battle is finished otherwise false
4543
*/
4644
private final boolean finished;
47-
private final List<Team> teams;
45+
private final Team team1, team2;
4846

4947
public TikTokLinkMicBattleEvent(WebcastLinkMicBattle msg) {
5048
super(msg.getCommon());
5149
battleId = msg.getId();
5250
finished = msg.getBattleStatus() == LinkMicBattleStatus.BATTLE_FINISHED;
53-
teams = new ArrayList<>();
5451
if (msg.getHostTeamCount() == 2) { // 1v1 battle
55-
teams.add(new Team1v1(msg.getHostTeam(0), msg));
56-
teams.add(new Team1v1(msg.getHostTeam(1), msg));
52+
team1 = new Team1v1(msg.getHostTeam(0), msg);
53+
team2 = new Team1v1(msg.getHostTeam(1), msg);
5754
} else { // 2v2 battle
5855
if (isFinished()) {
59-
teams.add(new Team2v2(msg.getHostData2V2List().stream().filter(data -> data.getTeamNumber() == 1).findFirst().orElse(null), msg));
60-
teams.add(new Team2v2(msg.getHostData2V2List().stream().filter(data -> data.getTeamNumber() == 2).findFirst().orElse(null), msg));
56+
team1 = new Team2v2(msg.getHostData2V2List().stream().filter(data -> data.getTeamNumber() == 1).findFirst().orElse(null), msg);
57+
team2 = new Team2v2(msg.getHostData2V2List().stream().filter(data -> data.getTeamNumber() == 2).findFirst().orElse(null), msg);
6158
} else {
62-
teams.add(new Team2v2(msg.getHostTeam(0), msg.getHostTeam(1), msg));
63-
teams.add(new Team2v2(msg.getHostTeam(2), msg.getHostTeam(3), msg));
59+
team1 = new Team2v2(msg.getHostTeam(0), msg.getHostTeam(1), msg);
60+
team2 = new Team2v2(msg.getHostTeam(2), msg.getHostTeam(3), msg);
6461
}
6562
}
6663

@@ -70,29 +67,38 @@ public TikTokLinkMicBattleEvent(WebcastLinkMicBattle msg) {
7067
// - msg.getHostTeamCount() always is 2 for 1v1 or 4 for 2v2
7168
}
7269

70+
/**
71+
* @param battleHostName name of host to search
72+
* @return Team1v1 instance containing name of host or null if no team found */
7373
public Team1v1 get1v1Team(String battleHostName) {
7474
if (!is1v1())
7575
throw new TikTokLiveException("Teams are not instance of 1v1 battle!");
76-
return teams.stream().filter(team -> team.getAs1v1Team().getHost().getName().equals(battleHostName)).findFirst().map(Team::getAs1v1Team).orElse(null);
76+
if (team1.getAs1v1Team().getHost().getName().equals(battleHostName))
77+
return team1.getAs1v1Team();
78+
if (team2.getAs1v1Team().getHost().getName().equals(battleHostName))
79+
return team2.getAs1v1Team();
80+
return null;
7781
}
7882

7983
public Team2v2 get2v2Team(String battleHostName) {
8084
if (!is2v2())
8185
throw new TikTokLiveException("Teams are not instance of 2v2 battle!");
82-
return teams.stream().filter(team ->
83-
team.getAs2v2Team().getHosts().stream().anyMatch(user ->
84-
user.getName().equals(battleHostName))).findFirst().map(Team::getAs2v2Team).orElse(null);
86+
if (team1.getAs2v2Team().getHosts().stream().anyMatch(user -> user.getName().equals(battleHostName)))
87+
return team1.getAs2v2Team();
88+
if (team2.getAs2v2Team().getHosts().stream().anyMatch(user -> user.getName().equals(battleHostName)))
89+
return team2.getAs2v2Team();
90+
return null;
8591
}
8692

8793
public boolean is1v1() {
88-
return teams.get(0) instanceof Team1v1;
94+
return team1.is1v1Team() || team2.is1v1Team();
8995
}
9096

9197
public boolean is2v2() {
92-
return teams.get(0) instanceof Team2v2;
98+
return team1.is2v2Team() || team2.is2v2Team();
9399
}
94100

95101
public boolean isTie() {
96-
return isFinished() && teams.get(0).getTotalPoints() == teams.get(1).getTotalPoints();
102+
return isFinished() && team1.getTotalPoints() == team2.getTotalPoints();
97103
}
98104
}

0 commit comments

Comments
 (0)