Skip to main content

API: Statistics

Methods for retrieving player order statistics.

Get Statisticsโ€‹

getPlayerStatisticsโ€‹

Get player order statistics.

Signature:

CompletableFuture<PlayerStats> getPlayerStatistics(UUID playerUuid)

Parameters:

  • playerUuid - UUID of the player

Returns: CompletableFuture<PlayerStats> - Player statistics

PlayerStats fields:

MethodReturnsDescription
getOrdersCreated()intTotal orders created (all statuses)
getOrdersFulfilled()intDistinct orders player has delivered to
getItemsDelivered()intTotal quantity of items delivered
getTotalSpent()doubleTotal money spent creating orders
getTotalEarned()doubleTotal money earned from deliveries
hasActivity()booleanWhether the player has any order activity

Example:

CompletableFuture<PlayerStats> future = ordersAPI.getPlayerStatistics(
player.getUniqueId()
);

future.thenAccept(stats -> {
if (stats == null || !stats.hasActivity()) {
player.sendMessage("No order activity yet!");
return;
}

player.sendMessage("=== Order Statistics ===");
player.sendMessage("Orders Created: " + stats.getOrdersCreated());
player.sendMessage("Orders Fulfilled: " + stats.getOrdersFulfilled());
player.sendMessage("Items Delivered: " + stats.getItemsDelivered());
player.sendMessage("Total Spent: " + ordersAPI.formatCurrency(stats.getTotalSpent()));
player.sendMessage("Total Earned: " + ordersAPI.formatCurrency(stats.getTotalEarned()));

double profit = stats.getTotalEarned() - stats.getTotalSpent();
player.sendMessage("Net Profit: " + ordersAPI.formatCurrency(profit));
});

Always check hasActivity() before displaying, and use formatCurrency() for any money values.

See Alsoโ€‹