GroupManager Integration (Dependency)
GroupManager is a companion plugin that provides the party/group system used by ArenaPvP. When installed, players can form groups and queue together for team-based arena modes.
Requirements
- Place
GroupManager.jarin themods/folder alongsideArenapvp.jar. - ArenaPvP detects GroupManager automatically at startup — no extra configuration needed.
What It Provides
| Feature | Description |
|---|---|
| Permanent groups | Players create groups with /group invite <player> that persist between matches |
| Temporary groups | The matchmaking system auto-creates temporary groups when pairing solo players for team modes |
| Group queuing | Group leaders can queue the entire group with /arena join <category> |
| Team placement | All group members are guaranteed to be on the same team |
| Group management | Full set of commands to invite, kick, transfer leadership, disband, and more |
| Group UI | Graphical interface for managing groups (/group) |
| HUD integration | GroupManager provides its own HUD for group members via AutoMultiHud |
Commands
All group commands use the /group prefix (aliases: /arena g, /arena party, /arena p):
| Command | Description | Permission |
|---|---|---|
/group invite <player> | Invite a player | groupmanager.group.invite |
/group accept <groupId> | Accept an invitation | groupmanager.group.accept |
/group decline <groupId> | Decline an invitation | groupmanager.group.decline |
/group leave | Leave your current group | groupmanager.group.leave |
/group kick <player> | Remove a member (leader only) | groupmanager.group.kick |
/group transfer <player> | Transfer leadership (leader only) | groupmanager.group.transfer |
/group disband | Dissolve the group (leader only) | groupmanager.group.disband |
/group info | View group information | groupmanager.group.info |
/group help | Show commands info | — |
/group | Open group management UI | groupmanager.group.ui |
/group confirm | Toggle invitation confirmation UI | groupmanager.group.confirm |
Permissions
GroupManager uses its own permission namespace:
| Permission | Description |
|---|---|
haporelab.groupmanager.command.group | Base permission to use the group system |
groupmanager.group.* | Grants all group permissions |
groupmanager.group.invite | Create groups and invite players |
groupmanager.group.accept | Accept group invitations |
groupmanager.group.decline | Decline group invitations |
groupmanager.group.leave | Leave a group |
groupmanager.group.kick | Kick members from a group (leader only) |
groupmanager.group.transfer | Transfer group leadership |
groupmanager.group.disband | Disband a group |
groupmanager.group.info | View group information |
groupmanager.group.help | Show commands info |
groupmanager.group.confirm | Toggle invitation confirmation UI |
For the recommended permission setup including GroupManager, see Permissions.
How ArenaPvP Uses GroupManager
When GroupManager is detected:
- Queue integration — When a group leader runs
/arena join, ArenaPvP checks the group through GroupManager's API and queues all members together. - Team placement — Group members are placed on the same team in team-based modes (Team, TDM, TCTO).
- Busy checks — ArenaPvP marks players as busy when they are in arenas, preventing group actions while fighting.
- HUD coordination — ArenaPvP and GroupManager coordinate HUD display through GroupManager's
pauseHud/resumeHudAPI so arena HUDs and group HUDs don't conflict.
Without GroupManager
If GroupManager is not installed:
- Players can only queue individually.
- Team assignment in team modes is fully automatic (random pairing).
- Group-related commands (
/group) will not be available. - All arena features work normally — groups are entirely optional.
Developer API
GroupManager exposes its own Java API through GroupService. See the GroupManager documentation for details on querying groups, creating groups programmatically, and listening to group events.
// Example: Check if a player is in a group via GroupManager
GroupService groupService = GroupManagerProvider.get();
Optional<GroupInfo> group = groupService.getPlayerGroup(playerUuid);