Code Patterns

Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.

← Back to Patterns
player

Player Profile Lookup

Look up player profile by username, checking online players first then auth service

Example Code

java
@Nullable
public static ProfileServiceClient.PublicGameProfile getProfile(String playerName) {
    // First check online players
    for (World world : Universe.get().getWorlds().values()) {
        Collection<PlayerRef> playerRefs = world.getPlayerRefs();
        PlayerRef playerRef = NameMatching.DEFAULT.find(playerRefs, playerName, PlayerRef::getUsername);
        if (playerRef != null) {
            return new ProfileServiceClient.PublicGameProfile(playerRef.getUuid(), playerRef.getUsername());
        }
    }

    // Fall back to auth service
    ServerAuthManager authManager = ServerAuthManager.getInstance();
    String sessionToken = authManager.getSessionToken();
    if (sessionToken == null) {
        return null;
    }
    ProfileServiceClient profileClient = authManager.getProfileServiceClient();
    return profileClient.getProfileByUsername(playerName, sessionToken);
}