Language

SyAPI

SyAPI

ModrinthSpigotMC

Provides some obscure APIs for the development of other plugins

22 downloads 1 followers updated 2mo ago
Modrinth
Paper Purpur 1.21 – 1.21.11 ManagementUtility

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

| 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") |

| 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 |

| 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 count
  • max-online-players: Historical maximum online players
  • yesterday-join-count: Yesterday's login count
  • today-join-count: Today's login count (automatically resets daily)
  • current-date: Current date
  • yesterday-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.

Download SyAPI

SpigotMC

Files are served directly from the original source. Modgrid does not host or modify them.