Skip to main content

Overview

The IPlayerData interface provides methods to access and modify player information, including clan membership, rank, activity tracking, and contribution statistics.

Interface Methods

Player Identity

getPlayerName()
String
Returns the player’s username.
setPlayerName(String playerName)
void
Sets the player’s username.Parameters:
  • playerName - The player’s Minecraft username
getUUID()
String
Returns the player’s unique identifier (UUID).
setUUID(String UUID)
void
Sets the player’s UUID.Parameters:
  • UUID - The player’s Minecraft UUID as a string

Clan Membership

getClan()
String
Returns the name of the clan the player belongs to, or null if not in a clan.
setClan(String clan)
void
Sets the player’s clan membership.Parameters:
  • clan - The clan name, or null to remove from clan
getRank()
Rank
Returns the player’s rank within their clan (LEADER, MANAGER, or MEMBER).
setRank(Rank rank)
void
Sets the player’s clan rank.Parameters:
  • rank - The player’s rank from the Rank enum

Timestamps

getJoinDate()
long
Returns the timestamp when the player joined their current clan, in milliseconds.
setJoinDate(long joinDate)
void
Sets the clan join timestamp.Parameters:
  • joinDate - Unix timestamp in milliseconds
getLastActivated()
long
Returns the timestamp of the player’s last activity, in milliseconds.
setLastActivated(long lastActivated)
void
Sets the last activity timestamp.Parameters:
  • lastActivated - Unix timestamp in milliseconds

Statistics

getScoreCollected()
long
Returns the total score the player has contributed to their clan.
setScoreCollected(long scoreCollected)
void
Sets the player’s total contributed score.Parameters:
  • scoreCollected - The cumulative score value

Usage Example

import com.cortezromeo.clansplus.api.storage.IPlayerData;
import com.cortezromeo.clansplus.api.enums.Rank;
import org.bukkit.entity.Player;

// Get player data from API
Player player = ...; // Bukkit player object
IPlayerData playerData = clansPlusAPI.getPlayerData(player.getUniqueId().toString());

// Check clan membership
if (playerData.getClan() != null) {
    String clanName = playerData.getClan();
    Rank rank = playerData.getRank();
    
    System.out.println(player.getName() + " is a " + rank + " in clan " + clanName);
    
    // Check if player is a leader or manager
    if (rank == Rank.LEADER || rank == Rank.MANAGER) {
        System.out.println("Player has management permissions");
    }
} else {
    System.out.println(player.getName() + " is not in a clan");
}

// View player statistics
long scoreContributed = playerData.getScoreCollected();
long joinTimestamp = playerData.getJoinDate();
long lastActive = playerData.getLastActivated();

System.out.println("Score contributed: " + scoreContributed);

// Update player data
playerData.setScoreCollected(scoreContributed + 100);
playerData.setLastActivated(System.currentTimeMillis());

Common Use Cases

Checking Leadership Status

public boolean canManageClan(IPlayerData playerData) {
    Rank rank = playerData.getRank();
    return rank == Rank.LEADER || rank == Rank.MANAGER;
}

Calculating Membership Duration

public long getDaysInClan(IPlayerData playerData) {
    long joinDate = playerData.getJoinDate();
    long currentTime = System.currentTimeMillis();
    long millisInDay = 1000L * 60 * 60 * 24;
    
    return (currentTime - joinDate) / millisInDay;
}

Tracking Activity

public boolean isPlayerActive(IPlayerData playerData) {
    long lastActive = playerData.getLastActivated();
    long currentTime = System.currentTimeMillis();
    long inactiveDays = 7;
    long inactiveThreshold = inactiveDays * 24 * 60 * 60 * 1000L;
    
    return (currentTime - lastActive) < inactiveThreshold;
}

See Also

Build docs developers (and LLMs) love