
SyAPI
Provides some obscure APIs for the development of other plugins
2
1
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
Создатели
Детали
Лицензия:MIT
Опубликован:2 недели назад
Обновлён:2 недели назад
