▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
SyAPI

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

CommandDescriptionPermission
/syapiView server statisticssyapi.use
/syapi infoView server statisticssyapi.use
/syapi reloadReload plugin configurationsyapi.admin
/syapi helpDisplay help informationsyapi.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

MethodReturn ValueDescription
getServerStartTimeMillis()longGet server start timestamp (milliseconds)
getServerUptime()StringGet server uptime (formatted string, e.g., "2 days 5 hours 30 minutes")
getServerStartTimeFormatted()StringGet server start time (formatted date, e.g., "2026-04-03 12:30:00")

Player Statistics Related

MethodReturn ValueDescription
getYesterdayJoinCount()intGet yesterday's login count (unique players)
getMaxOnlinePlayers()intGet historical maximum online players
getTotalJoinCount()intGet total login count

Server Performance Related

MethodReturn ValueDescription
getMinTps()doubleGet server minimum TPS
getHighestLatencyPlayer()PlayerGet player object with highest latency
getHighestLatencyPlayerName()StringGet name of player with highest latency
getHighestLatency()longGet maximum latency value (milliseconds)
getPlayerLatency(Player player)longGet 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

PermissionDescriptionDefault
syapi.adminAdmin permissions (reload, etc.)OP
syapi.useUsage 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

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:MIT
Опубликован:2 недели назад
Обновлён:2 недели назад
Главная