
Teams API
TeamsAPI is a passive, server-side bridge plugin for Paper servers, inspired by Vault
Teams API 1.1.0
release4 мая 2026 г.What's new in 1.1.0 - Team Invite API
New: TeamsInviteService interface
An optional, independent service interface for team invitation flows.
Providers that support invitations register an implementation separately
via TeamsAPI.registerInviteProvider(). Existing TeamsService implementations
are not required to support it; the API degrades gracefully when no invite
provider is registered.
Methods:
invitePlayer(UUID teamId, UUID inviterUUID, UUID inviteeUUID) → booleanacceptInvite(UUID teamId, UUID playerUUID) → Optional<Team>declineInvite(UUID teamId, UUID playerUUID) → boolean
New: invite provider management on TeamsAPI
TeamsAPI.getInviteService()- returns the registeredTeamsInviteService, ornullTeamsAPI.isInviteAvailable()- returnstrueif an invite provider is registeredTeamsAPI.registerInviteProvider(Plugin, TeamsInviteService)- registers atNormalpriorityTeamsAPI.registerInviteProvider(Plugin, TeamsInviteService, ServicePriority)- registers at a custom priorityTeamsAPI.unregisterInviteProvider(TeamsInviteService)- unregisters the provider on disable
All methods follow the existing null-safety contract (null arguments are silently ignored).
New events
| Event | Cancellable | When fired |
|---|---|---|
TeamInviteEvent | Yes | Before an invitation is recorded. Cancel to block it. |
TeamInviteAcceptEvent | No | After the player has joined the team. |
TeamInviteDeclineEvent | No | After the pending invitation has been removed. |
Teams API 1.0.1
release20 апреля 2026 г.Initial release of TeamsAPI, a universal, provider-agnostic bridge plugin for Paper servers, modelled on Vault.
What is TeamsAPI?
TeamsAPI decouples plugins that provide team data (faction, clan, guild plugins) from plugins that consume it (scoreboards, chat formatters, quest systems). Neither side needs to know about the other. When the team plugin changes, every consumer keeps working without a recompile.
API highlights
TeamsAPIstatic facade —getService(),isAvailable(),registerProvider(),unregisterProvider()TeamsServiceinterface — team lifecycle, lookup, membership management, and predicate helpersTeam/TeamMember— read-only snapshot interfaces; providers own the backing dataTeamRoleenum —OWNER (100) › ADMIN (50) › MEMBER (10)withoutranks()andcanManage()- 5 cancellable events —
TeamCreateEvent,TeamDeleteEvent,TeamJoinEvent,TeamLeaveEvent,TeamRoleChangeEvent - Graceful fallback — if no provider is registered,
isAvailable()returnsfalseand all facade methods return safe empty/false values
Requirements
- Paper 26.1+
- Java 25+
Installation
Drop teams-api-plugin-1.0.0.jar into your server's plugins/ folder alongside a compatible team plugin, then restart.
For developers
Add the API to your project via JitPack:
- Maven -
com.github.ez-plugins:teams-api:1.0.1(scopeprovided) - Gradle -
compileOnly 'com.github.ez-plugins:teams-api:1.0.1'
See the Developer Guide for provider and consumer integration walkthroughs, and the API Reference for full method tables.
