From af8239c671b3211c17ce8d27f6959845987bb6ae Mon Sep 17 00:00:00 2001 From: ez-plugins Date: Fri, 5 Jun 2026 23:52:22 +0200 Subject: [PATCH 1/3] feat: add getTeamIds, getOwner, getMemberUUIDs and resetPrefixOverride helpers --- CHANGELOG.md | 13 ++++++++++ docs/api.md | 16 ++++++++++--- docs/velocity.md | 7 +++++- .../velocity/bridge/VelocityTeamData.java | 11 +++++++++ .../teamsapi/velocity/model/VelocityTeam.java | 24 ++++++++++++++++++- .../teamsapi/api/TeamsService.java | 24 +++++++++++++------ .../com/skyblockexp/teamsapi/model/Team.java | 13 ++++++++++ .../skyblockexp/teamsapi/model/TeamRole.java | 9 +++++++ .../teamsapi/model/TeamRoleDefinition.java | 9 +++++++ .../api/TeamsServiceContractHarness.java | 11 ++++++--- 10 files changed, 122 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd39f59..046a1ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -106,8 +106,21 @@ TeamRoleDefinition def = member.getRoleDefinition(); Providers that register custom roles should override this method to return the precise custom definition for the member. +#### Convenience methods + +- `TeamsService.getTeamIds()` - returns all team UUIDs for iteration without + loading full team objects. +- `Team.getOwner()` - default method returning the owner's `TeamMember` record. +- `VelocityTeam.getMemberUUIDs()` - returns UUIDs of all members. +- `VelocityTeam.getOwner()` - default method returning the owner's record. + - `TeamsAPI.API_VERSION` updated to `2.4.0`. +### Changed + +- `docs/api.md` Team lookup section now correctly lists `getTeam`, `getTeamByName`, + and `getPlayerTeam` alongside `getAllTeams`, `getTeamCount`, and `getTeamIds`. + ### Migration No behavioural changes for existing providers or consumers. `getPrefix()` still diff --git a/docs/api.md b/docs/api.md index a71593b..2338405 100644 --- a/docs/api.md +++ b/docs/api.md @@ -145,11 +145,12 @@ Implemented by team plugins. Obtained via `TeamsAPI.getService()`. | Method | Returns | Description | |--------|---------|-------------| -| `getTeam(teamId)` | `Optional` | Finds a team by UUID. | -| `getTeamByName(name)` | `Optional` | Finds a team by name (case-insensitive where possible). | -| `getPlayerTeam(playerUUID)` | `Optional` | Returns the team the player belongs to. | +| `getTeam(teamId)` | `Optional` | Retrieves a team by its unique ID. | +| `getTeamByName(name)` | `Optional` | Retrieves a team by name (case-insensitive where possible). | +| `getPlayerTeam(playerUUID)` | `Optional` | The team the given player belongs to. | | `getAllTeams()` | `Collection` | All registered teams. | | `getTeamCount()` | `int` | Total number of teams. | +| `getTeamIds()` | `Collection` | All team UUIDs (convenience). | ### Membership management @@ -363,6 +364,7 @@ A read-only snapshot of a team. Obtain via `TeamsService` lookup methods. | `getMember(playerUUID)` | `Optional` | The member record for the given player. | | `isMember(playerUUID)` | `boolean` | Whether the player is a member (any role). | | `isOwner(playerUUID)` | `boolean` | Whether the player holds the OWNER role. | +| `getOwner()` | `Optional` | Convenience: owner's member record. | ## `TeamMember` (interface) @@ -496,6 +498,7 @@ Helper methods: | `getPrefix()` | Effective display prefix - returns the consumer-supplied override if one is set, otherwise the compile-time default. | | `getDefaultPrefix()` | Compile-time default prefix. Always `"Owner"`, `"Admin"`, or `"Member"` regardless of any active override. | | `setPrefixOverride(prefix)` | Sets or clears (if `null`) a JVM-wide prefix override for this constant. | +| `resetPrefixOverride()` | Clears any prefix override on this role, restoring the built-in default. | | `applyPrefixes(prefixes)` | Static. Applies prefix overrides from a `Map`. A `null` value in the map clears that role's override; `null` keys are silently skipped. | | `resetAllPrefixes()` | Static. Clears prefix overrides on every built-in role constant. | | `outranks(other)` | Returns `true` if this role has a higher priority than `other`. | @@ -516,6 +519,7 @@ Used with the custom role registry on `TeamsAPI` to publish roles beyond the thr | `getPrefix()` | Effective prefix - returns the override if set, otherwise the default. | | `getDefaultPrefix()` | Compile-time default prefix; unaffected by `setPrefixOverride`. | | `setPrefixOverride(String)` | Sets or clears (`null`) a prefix override for this definition. | +| `resetPrefixOverride()` | Clears any prefix override on this role, restoring the built-in default. | | `outranks(other)` | Returns `true` if this definition has higher priority than `other`. | | `canManage(target)` | Returns `true` if this definition can manage the `target` role. | | `of(TeamRole)` | Static factory. Creates a `TeamRoleDefinition` mirroring a built-in role (key = lower-case name). | @@ -605,11 +609,17 @@ Non-breaking additions. No changes required for existing providers or consumers. prefix override for the role constant. - New `TeamRole.applyPrefixes(Map)`: bulk-sets overrides from a map. - New `TeamRole.resetAllPrefixes()`: clears overrides on every built-in role constant. +- New `TeamRole.resetPrefixOverride()`: clears override on a single role constant. - New `TeamRoleDefinition` class: custom role definitions with key, priority, and prefix. +- New `TeamRoleDefinition.resetPrefixOverride()`: clears override on a role definition. - New `TeamsAPI` registry methods: `registerCustomRole`, `unregisterCustomRole`, `getCustomRole`, `getCustomRoles`, `isCustomRoleRegistered`. +- New `TeamsService.getTeamIds()`: convenience method returning all team UUIDs. +- New `Team.getOwner()`: convenience default method returning owner's member record. - New `TeamMember.getRoleDefinition()` default method: wraps the member's `TeamRole` in a `TeamRoleDefinition`. Providers with custom roles should override this. +- New `VelocityTeam.getOwner()`: convenience default method returning owner's member record. +- New `VelocityTeam.getMemberUUIDs()`: returns UUIDs of all team members. ### 2.3.0 diff --git a/docs/velocity.md b/docs/velocity.md index 67a5b1b..00dc9fd 100644 --- a/docs/velocity.md +++ b/docs/velocity.md @@ -198,12 +198,12 @@ All methods return `CompletableFuture` and may complete exceptionally with | `getPlayerTeam(playerUUID)` | `CompletableFuture>` | The team the player belongs to, if any. | | `getTeam(teamId)` | `CompletableFuture>` | Finds a team by UUID. | | `getTeamByName(name)` | `CompletableFuture>` | Finds a team by name. | +| `getAllTeams()` | `CompletableFuture>` | All teams registered on the backend. | | `getTeamCount()` | `CompletableFuture` | Total number of teams on the backend. | | `teamExists(name)` | `CompletableFuture` | Whether a team with that name exists. | | `isMember(teamId, playerUUID)` | `CompletableFuture` | Whether the player is a member of the team. | | `getMemberRole(teamId, playerUUID)` | `CompletableFuture>` | The player's role within the team, if a member. | | `getMemberInfo(teamId, playerUUID)` | `CompletableFuture>` | The player's full membership record, if a member. | -| `getAllTeams()` | `CompletableFuture>` | All teams registered on the backend. | ### `VelocityTeam` (interface) @@ -215,6 +215,11 @@ All methods return `CompletableFuture` and may complete exceptionally with | `getOwnerUUID()` | `UUID` | UUID of the team owner. | | `getSize()` | `int` | Current member count. | | `getMaxSize()` | `int` | Maximum member cap; `-1` means unlimited. | +| `getMembers()` | `Collection` | All members, may be empty if not included in response. | +| `getMemberUUIDs()` | `Collection` | UUIDs of all members. | +| `isMember(playerUUID)` | `boolean` | Whether the player is a member. | +| `isOwner(playerUUID)` | `boolean` | Whether the player is the owner. | +| `getOwner()` | `Optional` | Convenience: owner's member record. | ### `VelocityTeamMember` (interface) diff --git a/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/bridge/VelocityTeamData.java b/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/bridge/VelocityTeamData.java index de07a55..4b650bd 100644 --- a/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/bridge/VelocityTeamData.java +++ b/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/bridge/VelocityTeamData.java @@ -141,4 +141,15 @@ public boolean isMember(final UUID playerUUID) { public boolean isOwner(final UUID playerUUID) { return ownerUUID.equals(playerUUID); } + + /** + * {@inheritDoc} + */ + @Override + public Collection getMemberUUIDs() { + return members.stream() + .map(VelocityTeamMember::getPlayerUUID) + .collect(java.util.stream.Collectors.toUnmodifiableList()); + } + } diff --git a/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/model/VelocityTeam.java b/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/model/VelocityTeam.java index f6c8c79..5ff518a 100644 --- a/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/model/VelocityTeam.java +++ b/teams-api-velocity/src/main/java/com/skyblockexp/teamsapi/velocity/model/VelocityTeam.java @@ -48,7 +48,7 @@ public interface VelocityTeam { */ int getSize(); - /** +/** * Returns the maximum number of members allowed in this team. * A value of {@code -1} means the team size is unlimited. * @@ -64,6 +64,16 @@ public interface VelocityTeam { */ Collection getMembers(); + /** + * Returns the UUIDs of all members in this team, including the owner. + * + *

This is a convenience method equivalent to mapping {@link #getMembers()} by + * {@link VelocityTeamMember#getPlayerUUID()}.

+ * + * @return an unmodifiable collection of member UUIDs + */ + Collection getMemberUUIDs(); + /** * Looks up a member by their player UUID. * @@ -87,4 +97,16 @@ public interface VelocityTeam { * @return true if the player is the owner */ boolean isOwner(UUID playerUUID); + + /** + * Returns the {@link VelocityTeamMember} record for the team owner. + * + *

This is a convenience method equivalent to {@code getMember(getOwnerUUID())}.

+ * + * @return an {@link Optional} containing the owner's member record + */ + default Optional getOwner() { + return getMember(getOwnerUUID()); + } + } diff --git a/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsService.java b/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsService.java index ef9448c..b9181d0 100644 --- a/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsService.java +++ b/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsService.java @@ -96,13 +96,13 @@ public interface TeamsService { */ Optional getTeamByName(String name); - /** - * Retrieves the team that the given player currently belongs to. - * - * @param playerUUID the UUID of the player; must not be {@code null} - * @return an {@link Optional} containing the player's {@link Team}, or empty if - * the player does not belong to any team - */ +/** + * Retrieves the team that the given player currently belongs to. + * + * @param playerUUID the UUID of the player; must not be {@code null} + * @return an {@link Optional} containing the player's {@link Team}, or empty if + * the player does not belong to any team + */ Optional getPlayerTeam(UUID playerUUID); /** @@ -119,6 +119,16 @@ public interface TeamsService { */ int getTeamCount(); + /** + * Returns the UUIDs of all registered teams. + * + *

This is a convenience method equivalent to mapping {@link #getAllTeams()} by + * {@link com.skyblockexp.teamsapi.model.Team#getId()}.

+ * + * @return an unmodifiable collection of team UUIDs; never {@code null} + */ + Collection getTeamIds(); + // ------------------------------------------------------------------------- // Membership management // ------------------------------------------------------------------------- diff --git a/teams-api/src/main/java/com/skyblockexp/teamsapi/model/Team.java b/teams-api/src/main/java/com/skyblockexp/teamsapi/model/Team.java index 070e2bb..2c3d670 100644 --- a/teams-api/src/main/java/com/skyblockexp/teamsapi/model/Team.java +++ b/teams-api/src/main/java/com/skyblockexp/teamsapi/model/Team.java @@ -116,4 +116,17 @@ public interface Team { * @return {@code true} if the player holds the {@link TeamRole#OWNER} role */ boolean isOwner(UUID playerUUID); + + /** + * Returns the {@link TeamMember} record for the team owner. + * + *

This is a convenience method equivalent to {@code getMember(getOwnerUUID())}.

+ * + * @return an {@link Optional} containing the owner's {@link TeamMember}, or empty + * if the team has no owner (should not occur in valid implementations) + */ + default Optional getOwner() { + return getMember(getOwnerUUID()); + } + } diff --git a/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRole.java b/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRole.java index 187e8eb..cd2647e 100644 --- a/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRole.java +++ b/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRole.java @@ -116,6 +116,15 @@ public void setPrefixOverride(final String prefix) { this.prefixOverride = prefix; } + /** + * Clears any prefix override on this role, restoring the built-in default. + * + *

Equivalent to calling {@link #setPrefixOverride(String) setPrefixOverride(null)}.

+ */ + public void resetPrefixOverride() { + this.prefixOverride = null; + } + /** * Returns {@code true} if this role has a higher priority than {@code other}. * diff --git a/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRoleDefinition.java b/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRoleDefinition.java index 12b74c7..a4a02ec 100644 --- a/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRoleDefinition.java +++ b/teams-api/src/main/java/com/skyblockexp/teamsapi/model/TeamRoleDefinition.java @@ -115,6 +115,15 @@ public void setPrefixOverride(final String prefix) { this.prefixOverride = prefix; } + /** + * Clears any prefix override on this role, restoring the built-in default. + * + *

Equivalent to calling {@link #setPrefixOverride(String) setPrefixOverride(null)}.

+ */ + public void resetPrefixOverride() { + this.prefixOverride = null; + } + /** * Returns {@code true} if this role has a higher priority than {@code other}. * diff --git a/teams-api/src/test/java/com/skyblockexp/teamsapi/api/TeamsServiceContractHarness.java b/teams-api/src/test/java/com/skyblockexp/teamsapi/api/TeamsServiceContractHarness.java index ea4067c..ff80cb3 100644 --- a/teams-api/src/test/java/com/skyblockexp/teamsapi/api/TeamsServiceContractHarness.java +++ b/teams-api/src/test/java/com/skyblockexp/teamsapi/api/TeamsServiceContractHarness.java @@ -233,9 +233,14 @@ public Collection getAllTeams() { return Collections.unmodifiableCollection(new ArrayList<>(teams.values())); } - @Override - public int getTeamCount() { - return teams.size(); +@Override + public int getTeamCount() { + return teams.size(); + } + + @Override + public Collection getTeamIds() { + return Collections.unmodifiableCollection(new ArrayList<>(teams.keySet())); } @Override From f6a8c3d1f0dd7598533fa8e1b06dd52b3190eacc Mon Sep 17 00:00:00 2001 From: ez-plugins Date: Fri, 5 Jun 2026 23:57:08 +0200 Subject: [PATCH 2/3] fix: bumped version & updated changelog --- CHANGELOG.md | 52 ++++++++++++++----- pom.xml | 2 +- teams-api-bungeecord/pom.xml | 2 +- teams-api-extension-betterteams/pom.xml | 2 +- teams-api-extension-kingdomsx/pom.xml | 2 +- teams-api-extension-towny/pom.xml | 2 +- teams-api-plugin/pom.xml | 2 +- teams-api-velocity/pom.xml | 2 +- teams-api/pom.xml | 2 +- .../skyblockexp/teamsapi/api/TeamsAPI.java | 2 +- 10 files changed, 48 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 046a1ce..1164793 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,45 @@ All notable changes to TeamsAPI are documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [2.5.0] + +Non-breaking additions. No changes required for existing providers or consumers. + +### Added + +#### Convenience methods + +- `TeamsService.getTeamIds()` - returns all team UUIDs for iteration without + loading full team objects. +- `Team.getOwner()` - default method returning the owner's `TeamMember` record. +- `VelocityTeam.getMemberUUIDs()` - returns UUIDs of all members. +- `VelocityTeam.getOwner()` - default method returning the owner's record. + +#### Role prefix reset + +New `resetPrefixOverride()` method on both `TeamRole` and `TeamRoleDefinition` +clears any active prefix override, restoring the built-in default: + +```java +TeamRole.OWNER.setPrefixOverride("[Lord]"); +TeamRole.OWNER.resetPrefixOverride(); // back to "Owner" +``` + +Equivalent to calling `setPrefixOverride(null)`. + +- `TeamsAPI.API_VERSION` updated to `2.5.0`. + +### Changed + +- `docs/api.md` Team lookup section now correctly lists `getTeam`, `getTeamByName`, + and `getPlayerTeam` alongside `getAllTeams`, `getTeamCount`, and `getTeamIds`. +- `docs/velocity.md` updated to document `getMemberUUIDs()` and `getOwner()` on + `VelocityTeam`. + +### Migration + +No behavioural changes for existing providers or consumers. + ## [2.4.0] Non-breaking additions. No changes required for existing providers or consumers. @@ -106,21 +145,8 @@ TeamRoleDefinition def = member.getRoleDefinition(); Providers that register custom roles should override this method to return the precise custom definition for the member. -#### Convenience methods - -- `TeamsService.getTeamIds()` - returns all team UUIDs for iteration without - loading full team objects. -- `Team.getOwner()` - default method returning the owner's `TeamMember` record. -- `VelocityTeam.getMemberUUIDs()` - returns UUIDs of all members. -- `VelocityTeam.getOwner()` - default method returning the owner's record. - - `TeamsAPI.API_VERSION` updated to `2.4.0`. -### Changed - -- `docs/api.md` Team lookup section now correctly lists `getTeam`, `getTeamByName`, - and `getPlayerTeam` alongside `getAllTeams`, `getTeamCount`, and `getTeamIds`. - ### Migration No behavioural changes for existing providers or consumers. `getPrefix()` still diff --git a/pom.xml b/pom.xml index b212014..887eaaa 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 pom TeamsAPI Parent Universal Teams API for Minecraft: bridges team plugins with a clean, timeless interface. diff --git a/teams-api-bungeecord/pom.xml b/teams-api-bungeecord/pom.xml index 0245a8f..6006035 100644 --- a/teams-api-bungeecord/pom.xml +++ b/teams-api-bungeecord/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api-extension-betterteams/pom.xml b/teams-api-extension-betterteams/pom.xml index e58384f..173ca72 100644 --- a/teams-api-extension-betterteams/pom.xml +++ b/teams-api-extension-betterteams/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api-extension-kingdomsx/pom.xml b/teams-api-extension-kingdomsx/pom.xml index 2c7d580..685a1b3 100644 --- a/teams-api-extension-kingdomsx/pom.xml +++ b/teams-api-extension-kingdomsx/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api-extension-towny/pom.xml b/teams-api-extension-towny/pom.xml index 5fe5c87..42dfc83 100644 --- a/teams-api-extension-towny/pom.xml +++ b/teams-api-extension-towny/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api-plugin/pom.xml b/teams-api-plugin/pom.xml index 5590e6c..e16fde1 100644 --- a/teams-api-plugin/pom.xml +++ b/teams-api-plugin/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api-velocity/pom.xml b/teams-api-velocity/pom.xml index b4f5126..59e4292 100644 --- a/teams-api-velocity/pom.xml +++ b/teams-api-velocity/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api/pom.xml b/teams-api/pom.xml index 8f78fd7..11763eb 100644 --- a/teams-api/pom.xml +++ b/teams-api/pom.xml @@ -7,7 +7,7 @@ com.github.ez-plugins teams-api-parent - 2.4.0 + 2.5.0 ../pom.xml diff --git a/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsAPI.java b/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsAPI.java index 72b0321..962a32d 100644 --- a/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsAPI.java +++ b/teams-api/src/main/java/com/skyblockexp/teamsapi/api/TeamsAPI.java @@ -56,7 +56,7 @@ public final class TeamsAPI { * compatibility when the API introduces breaking changes. The version follows * Semantic Versioning ({@code MAJOR.MINOR.PATCH}).

*/ - public static final String API_VERSION = "2.4.0"; + public static final String API_VERSION = "2.5.0"; /** * Registry of custom role definitions, keyed by role key. From a130eb8ebbeb333037635596ff10bc16f1368615 Mon Sep 17 00:00:00 2001 From: ez-plugins Date: Sat, 6 Jun 2026 00:03:30 +0200 Subject: [PATCH 3/3] fix: missing adapter functions --- .../betterteams/BetterTeamsServiceAdapter.java | 8 +++++++- .../extension/kingdomsx/KingdomsXServiceAdapter.java | 11 +++++++++++ .../extension/towny/TownyServiceAdapter.java | 12 +++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/teams-api-extension-betterteams/src/main/java/com/skyblockexp/teamsapi/extension/betterteams/BetterTeamsServiceAdapter.java b/teams-api-extension-betterteams/src/main/java/com/skyblockexp/teamsapi/extension/betterteams/BetterTeamsServiceAdapter.java index 70dd23c..b7afaa7 100644 --- a/teams-api-extension-betterteams/src/main/java/com/skyblockexp/teamsapi/extension/betterteams/BetterTeamsServiceAdapter.java +++ b/teams-api-extension-betterteams/src/main/java/com/skyblockexp/teamsapi/extension/betterteams/BetterTeamsServiceAdapter.java @@ -101,7 +101,13 @@ public Collection getAllTeams() { @Override public int getTeamCount() { - return getAllTeams().size(); + return Team.getTeamManager().getLoadedTeamListClone().size(); + } + + @Override + public Collection getTeamIds() { + final Map loaded = Team.getTeamManager().getLoadedTeamListClone(); + return Collections.unmodifiableCollection(new ArrayList<>(loaded.keySet())); } @Override diff --git a/teams-api-extension-kingdomsx/src/main/java/com/skyblockexp/teamsapi/extension/kingdomsx/KingdomsXServiceAdapter.java b/teams-api-extension-kingdomsx/src/main/java/com/skyblockexp/teamsapi/extension/kingdomsx/KingdomsXServiceAdapter.java index d938941..f8678dd 100644 --- a/teams-api-extension-kingdomsx/src/main/java/com/skyblockexp/teamsapi/extension/kingdomsx/KingdomsXServiceAdapter.java +++ b/teams-api-extension-kingdomsx/src/main/java/com/skyblockexp/teamsapi/extension/kingdomsx/KingdomsXServiceAdapter.java @@ -104,6 +104,17 @@ public int getTeamCount() { return Kingdoms.get().getDataCenter().getKingdomManager().getKingdoms().size(); } + @Override + public Collection getTeamIds() { + final Collection kingdoms = + Kingdoms.get().getDataCenter().getKingdomManager().getKingdoms(); + final Collection ids = new ArrayList<>(kingdoms.size()); + for (final Kingdom kingdom : kingdoms) { + ids.add(kingdom.getId()); + } + return Collections.unmodifiableCollection(ids); + } + @Override public boolean addMember(final UUID teamId, final UUID playerUUID, final TeamRole role) { if (teamId == null || playerUUID == null || role == null) { diff --git a/teams-api-extension-towny/src/main/java/com/skyblockexp/teamsapi/extension/towny/TownyServiceAdapter.java b/teams-api-extension-towny/src/main/java/com/skyblockexp/teamsapi/extension/towny/TownyServiceAdapter.java index ad41714..165311f 100644 --- a/teams-api-extension-towny/src/main/java/com/skyblockexp/teamsapi/extension/towny/TownyServiceAdapter.java +++ b/teams-api-extension-towny/src/main/java/com/skyblockexp/teamsapi/extension/towny/TownyServiceAdapter.java @@ -138,6 +138,16 @@ public int getTeamCount() { return getAllTeams().size(); } + @Override + public Collection getTeamIds() { + final Collection teams = getAllTeams(); + final Collection ids = new ArrayList<>(teams.size()); + for (final Team team : teams) { + ids.add(team.getId()); + } + return Collections.unmodifiableCollection(ids); + } + @Override public boolean addMember(final UUID teamId, final UUID playerUUID, final TeamRole role) { if (teamId == null || playerUUID == null || role == null) { @@ -327,4 +337,4 @@ private Object getTownByUuid(final UUID uuid) { } return town; } -} +}