54 lines
2.6 KiB
Diff
54 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: MrHua269 <wangxyper@163.com>
|
|
Date: Sat, 30 Nov 2024 12:33:31 +0800
|
|
Subject: [PATCH] FoliaPR Add TPS From Region
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index aecd4c5767a5c91ca60db395b6f412950aa77b26..e8a9351f40fdcd8ea47632677be52308f9f72b5d 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -3109,6 +3109,42 @@ public final class CraftServer implements Server {
|
|
};
|
|
}
|
|
|
|
+ // Folia start
|
|
+ @Override
|
|
+ public double[] getTPS(org.bukkit.Location location) {
|
|
+ final int x = location.blockX() >> 4;
|
|
+ final int z = location.blockZ() >> 4;
|
|
+ final ServerLevel world = ((CraftWorld) location.getWorld()).getHandle();
|
|
+ return getTPSFromRegion(world, x, z);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public double[] getTPS(org.bukkit.Chunk chunk) {
|
|
+ final int x = chunk.getX();
|
|
+ final int z = chunk.getZ();
|
|
+ final ServerLevel world = ((CraftWorld) chunk.getWorld()).getHandle();
|
|
+ return getTPSFromRegion(world, x, z);
|
|
+ }
|
|
+
|
|
+ private double[] getTPSFromRegion(ServerLevel world, int x, int z) {
|
|
+ io.papermc.paper.threadedregions.ThreadedRegionizer.ThreadedRegion<io.papermc.paper.threadedregions.TickRegions.TickRegionData, io.papermc.paper.threadedregions.TickRegions.TickRegionSectionData>
|
|
+ region = world.regioniser.getRegionAtSynchronised(x, z);
|
|
+ if (region == null) {
|
|
+ return null;
|
|
+ } else {
|
|
+ io.papermc.paper.threadedregions.TickRegions.TickRegionData regionData = region.getData();
|
|
+ final long currTime = System.nanoTime();
|
|
+ return new double[] {
|
|
+ regionData.getRegionSchedulingHandle().getTickReport5s(currTime).tpsData().segmentAll().average(),
|
|
+ regionData.getRegionSchedulingHandle().getTickReport15s(currTime).tpsData().segmentAll().average(),
|
|
+ regionData.getRegionSchedulingHandle().getTickReport1m(currTime).tpsData().segmentAll().average(),
|
|
+ regionData.getRegionSchedulingHandle().getTickReport5m(currTime).tpsData().segmentAll().average(),
|
|
+ regionData.getRegionSchedulingHandle().getTickReport15m(currTime).tpsData().segmentAll().average(),
|
|
+ };
|
|
+ }
|
|
+ }
|
|
+ // Folia end
|
|
+
|
|
// Paper start - adventure sounds
|
|
@Override
|
|
public void playSound(final net.kyori.adventure.sound.Sound sound) {
|