diff --git a/docs/developers/modules/team.mdx b/docs/developers/modules/team.mdx index daa96353..48896594 100644 --- a/docs/developers/modules/team.mdx +++ b/docs/developers/modules/team.mdx @@ -45,9 +45,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -89,20 +87,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamApiExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamApiExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); Apollo.getPlayerManager().getPlayer(player.getUniqueId()) @@ -130,11 +128,12 @@ public class Team { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); - this.members.forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) + this.members.values().forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) .ifPresent(apolloPlayer -> TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates))); } @@ -142,8 +141,8 @@ public class Team { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override @@ -256,9 +255,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -300,20 +297,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamProtoExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamProtoExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); ResetTeamMembersMessage message = ResetTeamMembersMessage.getDefaultInstance(); @@ -336,7 +333,7 @@ public class Team { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values().stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); @@ -344,15 +341,15 @@ public class Team { .addAllMembers(teammates) .build(); - this.members.forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override @@ -399,9 +396,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -443,20 +438,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamJsonExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamJsonExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); JsonObject message = new JsonObject(); @@ -482,7 +477,8 @@ public class Team { // The refresh method used for updating members locations public void refresh() { - JsonArray teammates = this.members.stream().filter(Player::isOnline) + JsonArray teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(JsonArray::new, JsonArray::add, JsonArray::addAll); @@ -490,15 +486,15 @@ public class Team { message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); message.add("members", teammates); - this.members.forEach(member -> JsonPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> JsonPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java index c25a5fa9..6985a24a 100644 --- a/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java +++ b/example/bukkit/api/src/main/java/com/lunarclient/apollo/example/api/module/TeamApiExample.java @@ -24,7 +24,6 @@ package com.lunarclient.apollo.example.api.module; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.lunarclient.apollo.Apollo; import com.lunarclient.apollo.common.location.ApolloLocation; import com.lunarclient.apollo.example.ApolloExamplePlugin; @@ -33,10 +32,11 @@ import com.lunarclient.apollo.module.team.TeamMember; import com.lunarclient.apollo.module.team.TeamModule; import java.awt.Color; +import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -71,9 +71,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -115,20 +113,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamApiExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamApiExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); Apollo.getPlayerManager().getPlayer(player.getUniqueId()) @@ -156,11 +154,12 @@ private TeamMember createTeamMember(Player member) { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); - this.members.forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) + this.members.values().forEach(member -> Apollo.getPlayerManager().getPlayer(member.getUniqueId()) .ifPresent(apolloPlayer -> TeamApiExample.this.teamModule.updateTeamMembers(apolloPlayer, teammates))); } @@ -168,8 +167,8 @@ public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java index 4aa4afba..8683030d 100644 --- a/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java +++ b/example/bukkit/json/src/main/java/com/lunarclient/apollo/example/json/module/TeamJsonExample.java @@ -24,7 +24,6 @@ package com.lunarclient.apollo.example.json.module; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.lunarclient.apollo.example.ApolloExamplePlugin; @@ -34,9 +33,10 @@ import com.lunarclient.apollo.example.module.impl.TeamExample; import com.lunarclient.apollo.example.util.ServerUtil; import java.awt.Color; +import java.util.Collection; +import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import net.kyori.adventure.text.Component; @@ -67,9 +67,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -111,20 +109,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamJsonExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamJsonExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); JsonObject message = new JsonObject(); @@ -150,7 +148,8 @@ private JsonObject createTeamMember(Player member) { // The refresh method used for updating members locations public void refresh() { - JsonArray teammates = this.members.stream().filter(Player::isOnline) + JsonArray teammates = this.members.values() + .stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(JsonArray::new, JsonArray::add, JsonArray::addAll); @@ -158,15 +157,15 @@ public void refresh() { message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.team.v1.UpdateTeamMembersMessage"); message.add("members", teammates); - this.members.forEach(member -> JsonPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> JsonPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override diff --git a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java index 24f995b2..35726cea 100644 --- a/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java +++ b/example/bukkit/proto/src/main/java/com/lunarclient/apollo/example/proto/module/TeamProtoExample.java @@ -24,7 +24,6 @@ package com.lunarclient.apollo.example.proto.module; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.lunarclient.apollo.example.ApolloExamplePlugin; import com.lunarclient.apollo.example.module.impl.TeamExample; import com.lunarclient.apollo.example.proto.util.AdventureUtil; @@ -35,10 +34,11 @@ import com.lunarclient.apollo.team.v1.TeamMember; import com.lunarclient.apollo.team.v1.UpdateTeamMembersMessage; import java.awt.Color; +import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -70,9 +70,7 @@ private void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); this.getByPlayerUuid(player.getUniqueId()).ifPresent(team -> { - if (team.getMembers().size() == 1) { - this.deleteTeam(team.getTeamId()); - } + team.removeMember(player); }); } @@ -114,20 +112,20 @@ private void runFoliaTeamUpdateTask() { public class Team { private final UUID teamId; - private final Set members; + private final Map members; public Team() { this.teamId = UUID.randomUUID(); - this.members = Sets.newHashSet(); + this.members = new HashMap<>(); } public void addMember(Player player) { - this.members.add(player); + this.members.put(player.getUniqueId(), player); TeamProtoExample.this.teamsByPlayerUuid.put(player.getUniqueId(), this); } public void removeMember(Player player) { - this.members.remove(player); + this.members.remove(player.getUniqueId()); TeamProtoExample.this.teamsByPlayerUuid.remove(player.getUniqueId()); ResetTeamMembersMessage message = ResetTeamMembersMessage.getDefaultInstance(); @@ -150,7 +148,7 @@ private TeamMember createTeamMember(Player member) { // The refresh method used for updating members locations public void refresh() { - List teammates = this.members.stream().filter(Player::isOnline) + List teammates = this.members.values().stream().filter(Player::isOnline) .map(this::createTeamMember) .collect(Collectors.toList()); @@ -158,15 +156,15 @@ public void refresh() { .addAllMembers(teammates) .build(); - this.members.forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); + this.members.values().forEach(member -> ProtobufPacketUtil.sendPacket(member, message)); } public UUID getTeamId() { return this.teamId; } - public Set getMembers() { - return this.members; + public Collection getMembers() { + return this.members.values(); } @Override