Skip to content

开发者 API ​

spark 的 API 允许插件/模组开发者获取 spark 所记录的信息,并将它们为己所用。

推荐开发者使用本文介绍的 API,而不是硬拆内部代码。如果 API 提供的内容没有你想要的,先来问问我们,我们可能会为你添加!

导入 API ​

API 成品会发布到 Sonatype Snapshots 仓库中。

你可以通过 Gradle 或者 Maven 将它导入至你的项目,或将其用作依赖。可以根据需要添加下文的构建脚本或 pom。

访问 API ​

API 的主包为 me.lucko.spark.api,API 的主接口为 me.lucko.spark.api.Spark。

Spark 接口在拥有 ServiceManager 的平台上,被作为“服务”提供。另外,你也可以通过 SparkProvider 的单个示例获取接口。

例如,在 Bukkit 核心上,你可以这么写:

Java
RegisteredServiceProvider<Spark> provider = Bukkit.getServicesManager().getRegistration(Spark.class);
if (provider != null) {
    Spark spark = provider.getProvider();
}

在其他所有的平台上,你可以这么写:

Java
Spark spark = SparkProvider.get();

注意: 在 spark 尚未载入的时候使用 #get 方法会导致抛出 IllegalStateException 错误!

使用 API ​

spark API 当前能提供一系列的统计数据,这些数据都是由 spark 记录/计算的。这些可以通过 Spark 接口获取。

TPS ​

获取由 spark 计算的 TPS 数值...

Java
// 获取 TPS 数据 (在不存在滴答的服务端上会返回 null!)
DoubleStatistic<StatisticWindow.TicksPerSecond> tps = spark.tps();

// 返回最近 10 秒 / 5 分钟的平均 TPS
double tpsLast10Secs = tps.poll(StatisticWindow.TicksPerSecond.SECONDS_10);
double tpsLast5Mins = tps.poll(StatisticWindow.TicksPerSecond.MINUTES_5);

MSPT ​

获取由 spark 计算的 MSPT(每刻毫秒数) 数值...

Java
// 获取 MSPT 数值 (在不支持此类计算的服务端上会返回 null!)
GenericStatistic<DoubleAverageInfo, StatisticWindow.MillisPerTick> mspt = spark.mspt();

// 返回最近一分钟内的平均值
DoubleAverageInfo msptLastMin = mspt.poll(StatisticWindow.MillisPerTick.MINUTES_1);
double msptMean = msptLastMin.mean();
double mspt95Percentile = msptLastMin.percentile95th();

CPU 使用情况 ​

获取 CPU 使用情况的信息...

Java
// 获取 CPU 使用情况的相关信息
DoubleStatistic<StatisticWindow.CpuUsage> cpuUsage = spark.cpuSystem();

// 返回最近一分钟内的平均用量
double usagelastMin = cpuUsage.poll(StatisticWindow.CpuUsage.MINUTES_1);

GC ​

获取 GC 活动的相关信息...

Java
// 返回自服务器启动以来的 GC 活动情况
Map<String, GarbageCollector> gc = spark.gc();

for (GarbageCollector collector : gc.values()) {
    String name = collector.name();
    long frequency = collector.avgFrequency();
    double time = collector.avgTime();
}

另见 ​

贡献者

页面历史