Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Tags
Creators
Details
Licensed MIT
Published 2 months ago
SyAPI
SyAPI is a server statistics API plugin for Minecraft Purpur/Paper 1.21.1, providing server runtime status, player statistics, and more.
Features
- ๐ Server uptime statistics
- ๐ Yesterday's login count statistics
- ๐ฅ Historical maximum online players record
- ๐ Total login count statistics
- โก Server minimum TPS monitoring
- ๐ Player latency detection (highest latency player)
Supported Versions
- Server: Paper, Purpur 1.21.1
- Java Version: Java 17+
- API Version: 1.21
Usage
Commands
| Command | Description | Permission |
|---|---|---|
/syapi |
View server statistics | syapi.use |
/syapi info |
View server statistics | syapi.use |
/syapi reload |
Reload plugin configuration | syapi.admin |
/syapi help |
Display help information | syapi.use |
API Usage
Other plugins can call SyAPI in the following way:
import cn.shiyuan.syapi.SyAPI;
import cn.shiyuan.syapi.SyAPIProvider;
// Get API provider
SyAPI syapi = SyAPI.getInstance();
SyAPIProvider api = syapi.getApiProvider();
// Get server start time
long startTime = api.getServerStartTimeMillis();
String uptime = api.getServerUptime();
String startTimeFormatted = api.getServerStartTimeFormatted();
// Get player statistics
int yesterdayJoins = api.getYesterdayJoinCount();
int maxOnline = api.getMaxOnlinePlayers();
int totalJoins = api.getTotalJoinCount();
// Get server performance data
double minTps = api.getMinTps();
// Get latency information
Player highestLatencyPlayer = api.getHighestLatencyPlayer();
String playerName = api.getHighestLatencyPlayerName();
long highestLatency = api.getHighestLatency();
long playerLatency = api.getPlayerLatency(player);
API Method Reference
Server Time Related
| Method | Return Value | Description |
|---|---|---|
getServerStartTimeMillis() |
long |
Get server start timestamp (milliseconds) |
getServerUptime() |
String |
Get server uptime (formatted string, e.g., "2 days 5 hours 30 minutes") |
getServerStartTimeFormatted() |
String |
Get server start time (formatted date, e.g., "2026-04-03 12:30:00") |
Player Statistics Related
| Method | Return Value | Description |
|---|---|---|
getYesterdayJoinCount() |
int |
Get yesterday's login count (unique players) |
getMaxOnlinePlayers() |
int |
Get historical maximum online players |
getTotalJoinCount() |
int |
Get total login count |
Server Performance Related
| Method | Return Value | Description |
|---|---|---|
getMinTps() |
double |
Get server minimum TPS |
getHighestLatencyPlayer() |
Player |
Get player object with highest latency |
getHighestLatencyPlayerName() |
String |
Get name of player with highest latency |
getHighestLatency() |
long |
Get maximum latency value (milliseconds) |
getPlayerLatency(Player player) |
long |
Get specified player's latency (milliseconds) |
Project Structure
SyAPI/
โโโ src/
โ โโโ main/
โ โโโ java/cn/shiyuan/syapi/
โ โ โโโ SyAPI.java # Main class
โ โ โโโ SyAPIProvider.java # API provider
โ โ โโโ StatsManager.java # Statistics manager
โ โ โโโ PlayerListener.java # Player event listener
โ โ โโโ SyAPICommand.java # Command handler
โ โโโ resources/
โ โโโ plugin.yml # Plugin configuration
โ โโโ data.yml # Data storage
โโโ pom.xml # Maven configuration
โโโ README.md # Documentation
Permission Nodes
| Permission | Description | Default |
|---|---|---|
syapi.admin |
Admin permissions (reload, etc.) | OP |
syapi.use |
Usage permissions (view statistics) | All players |
Data Storage
The plugin uses YAML files to store data, located at plugins/SyAPI/data.yml:
total-join-count: Total login countmax-online-players: Historical maximum online playersyesterday-join-count: Yesterday's login counttoday-join-count: Today's login count (automatically resets daily)current-date: Current dateyesterday-players: Yesterday's player UUID list
Scheduled Tasks
The plugin automatically runs the following scheduled tasks after startup:
- TPS Monitoring: Updates minimum TPS every second
- Latency Update: Updates player latency data every second
- Date Check: Checks for date changes every minute, automatically resets today's statistics
- Data Save: Automatically saves data to file every 5 minutes


