SyAPI
ModrinthSpigotMCProvides some obscure APIs for the development of other plugins
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
Versions
No version history available. Use the Download button to get the latest from the source.

Comments 0
No comments yet. Be the first to share your thoughts.