Skip to main content

Events

GroupManager fires events when group state changes. External plugins can listen for these events by implementing the GroupEventListener interface.

Registering a Listener​

import com.groupmanager.api.GroupEventListener;
import com.groupmanager.api.GroupManagerProvider;
import com.groupmanager.api.GroupService;

GroupService api = GroupManagerProvider.get();

api.registerEventListener(new GroupEventListener() {
@Override
public void onGroupCreated(UUID groupId, UUID leaderUuid) {
// Handle group creation
}
});

Unregistering​

api.unregisterEventListener(myListener);
tip

Always unregister your listeners in your plugin's shutdown() method to avoid memory leaks.


Event Types​

All methods in GroupEventListener have default (no-op) implementations, so you only need to override the events you care about.

onGroupCreated(UUID groupId, UUID leaderUuid)​

Fired when a new group is created (permanent or temporary).

ParameterTypeDescription
groupIdUUIDThe new group's ID
leaderUuidUUIDUUID of the group leader
@Override
public void onGroupCreated(UUID groupId, UUID leaderUuid) {
log("Group " + groupId + " created by " + leaderUuid);
}

onGroupDissolved(UUID groupId)​

Fired when a group is dissolved (disbanded or all members left).

ParameterTypeDescription
groupIdUUIDThe dissolved group's ID

onMemberJoined(UUID groupId, UUID playerUuid)​

Fired when a player joins a group (via accepting an invitation or API call).

ParameterTypeDescription
groupIdUUIDThe group's ID
playerUuidUUIDUUID of the player who joined

onMemberLeft(UUID groupId, UUID playerUuid)​

Fired when a player voluntarily leaves a group.

ParameterTypeDescription
groupIdUUIDThe group's ID
playerUuidUUIDUUID of the player who left

onMemberKicked(UUID groupId, UUID playerUuid, UUID kickedBy)​

Fired when a member is kicked from a group by the leader.

ParameterTypeDescription
groupIdUUIDThe group's ID
playerUuidUUIDUUID of the kicked player
kickedByUUIDUUID of the leader who kicked them

onLeadershipTransferred(UUID groupId, UUID oldLeaderUuid, UUID newLeaderUuid)​

Fired when group leadership is transferred to a different member.

ParameterTypeDescription
groupIdUUIDThe group's ID
oldLeaderUuidUUIDUUID of the previous leader
newLeaderUuidUUIDUUID of the new leader

onGroupMembersChanged(UUID groupId)​

Generic event fired whenever the group's member list changes (join, leave, kick). This is a convenience event — it fires in addition to the more specific events above.

ParameterTypeDescription
groupIdUUIDThe group's ID

Complete Example​

public class MyGamePlugin extends JavaPlugin {

private GroupEventListener groupListener;

@Override
public void start() {
GroupService api = GroupManagerProvider.get();
if (api == null) return;

groupListener = new GroupEventListener() {
@Override
public void onGroupCreated(UUID groupId, UUID leaderUuid) {
getLogger().at(Level.INFO).log("Group created: " + groupId);
}

@Override
public void onMemberJoined(UUID groupId, UUID playerUuid) {
// Update team assignments
updateTeamForGroup(groupId);
}

@Override
public void onMemberLeft(UUID groupId, UUID playerUuid) {
// Remove from team
removeFromTeam(playerUuid);
}

@Override
public void onGroupDissolved(UUID groupId) {
// Clean up team data
cleanupTeam(groupId);
}
};

api.registerEventListener(groupListener);
}

@Override
public void shutdown() {
GroupService api = GroupManagerProvider.get();
if (api != null && groupListener != null) {
api.unregisterEventListener(groupListener);
}
}
}