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: Wed, 31 Jul 2024 14:51: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 60b10a6e1fcc06430c5cacd4c49d92e1de6e4778..956207ae37269884ba2852123c6503fcc2e0b9ba 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -3071,6 +3071,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) {
|