This commit is contained in:
Chayapak 2023-06-11 18:38:43 +07:00
parent 572dfbc9f7
commit 6af27156df
2 changed files with 54 additions and 58 deletions
src/main/java/land/chipmunk/chayapak/chomens_bot

View file

@ -14,7 +14,6 @@ import java.util.List;
@AllArgsConstructor
public class Team {
@Getter @Setter private String teamName;
@Getter private List<String> players;
@Getter @Setter private Component displayName;
@Getter @Setter private boolean friendlyFire;
@Getter @Setter private boolean seeFriendlyInvisibles;

View file

@ -7,11 +7,12 @@ import land.chipmunk.chayapak.chomens_bot.Bot;
import land.chipmunk.chayapak.chomens_bot.data.Team;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
public class TeamPlugin extends Bot.Listener {
@Getter private final List<Team> teams = new ArrayList<>();
@Getter private final Map<String, Team> teams = new HashMap<>();
@Getter private final Map<String, Team> teamsByPlayer = new HashMap<>();
public TeamPlugin (Bot bot) {
bot.addListener(this);
@ -23,11 +24,11 @@ public class TeamPlugin extends Bot.Listener {
}
public void packetReceived(ClientboundSetPlayerTeamPacket packet) {
try {
switch (packet.getAction()) {
case CREATE -> {
final Team team = new Team(
packet.getTeamName(),
List.of(packet.getPlayers()),
packet.getDisplayName(),
packet.isFriendlyFire(),
packet.isSeeFriendlyInvisibles(),
@ -38,14 +39,11 @@ public class TeamPlugin extends Bot.Listener {
packet.getSuffix()
);
teams.add(team);
teams.put(packet.getTeamName(), team);
}
case REMOVE -> teams.removeIf(team -> team.teamName().equals(packet.getTeamName()));
case REMOVE -> teams.remove(packet.getTeamName());
case UPDATE -> {
final Team team = teams
.stream()
.filter(eachTeam -> eachTeam.teamName().equals(packet.getTeamName()))
.toArray(Team[]::new)[0];
final Team team = teams.get(packet.getTeamName());
if (team == null) return;
@ -60,25 +58,24 @@ public class TeamPlugin extends Bot.Listener {
team.suffix(packet.getSuffix());
}
case ADD_PLAYER -> {
final Team team = teams
.stream()
.filter(eachTeam -> eachTeam.teamName().equals(packet.getTeamName()))
.toArray(Team[]::new)[0];
final Team team = teams.get(packet.getTeamName());
if (team == null) return;
team.players().addAll(List.of(packet.getPlayers()));
for (String player : packet.getPlayers()) teamsByPlayer.put(player, team);
}
case REMOVE_PLAYER -> {
final Team team = teams
.stream()
.filter(eachTeam -> eachTeam.teamName().equals(packet.getTeamName()))
.toArray(Team[]::new)[0];
final Team team = teams.get(packet.getTeamName());
if (team == null) return;
team.players().removeAll(List.of(packet.getPlayers()));
for (String player : packet.getPlayers()) teamsByPlayer.remove(player);
}
}
} catch (Exception e) { e.printStackTrace(); }
}
public Team getTeamByUsername (String username) {
return teamsByPlayer.get(username);
}
}