Skip to content

Commit

Permalink
More SparklyPaper patches
Browse files Browse the repository at this point in the history
  • Loading branch information
AlphaKR93 committed May 4, 2024
1 parent a21f3ba commit e765830
Show file tree
Hide file tree
Showing 3 changed files with 234 additions and 13 deletions.
89 changes: 87 additions & 2 deletions patches/server/0009-Port-SparklyPaper-patches.patch
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,60 @@ Subject: [PATCH] Port SparklyPaper patches
SparklyPower
Copyright (C) 2024 SparklyPower

Based on commit: e59f4a805cbfd6f95725a1848a3f352c0a9eb479
Based on commit: 29212936a832106c4d68e2a2017acbea2fdd3cc4

diff --git a/src/main/java/io/papermc/paper/command/MSPTCommand.java b/src/main/java/io/papermc/paper/command/MSPTCommand.java
index 8b5293b0c696ef21d0101493ffa41b60bf0bc86b..03be23690a94a14d7343526acad67ccf53b85c70 100644
--- a/src/main/java/io/papermc/paper/command/MSPTCommand.java
+++ b/src/main/java/io/papermc/paper/command/MSPTCommand.java
@@ -78,6 +78,47 @@ public final class MSPTCommand extends Command {
)
)
);
+
+ // Plazma start - Port SparklyPaper patches; Track World specific MSPT
+ sender.sendMessage(text());
+ sender.sendMessage(text().content("World tick times ").color(GOLD)
+ .append(text().color(YELLOW)
+ .append(
+ text("("),
+ text("avg", GRAY),
+ text("/"),
+ text("min", GRAY),
+ text("/"),
+ text("max", GRAY),
+ text(")")
+ )
+ ).append(
+ text(" from last 5s"),
+ text(",", GRAY),
+ text(" 10s"),
+ text(",", GRAY),
+ text(" 1m"),
+ text(":", YELLOW)
+ )
+ );
+ for (net.minecraft.server.level.ServerLevel level: server.getAllLevels()) {
+ List<Component> worldTimes = new ArrayList<>();
+ worldTimes.addAll(eval(level.tickTimes5s.getTimes()));
+ worldTimes.addAll(eval(level.tickTimes10s.getTimes()));
+ worldTimes.addAll(eval(level.tickTimes60s.getTimes()));
+
+ sender.sendMessage(text().content("◴ " + level.getWorld().getName() + ": ").color(GOLD)
+ .append(text().color(GRAY)
+ .append(
+ worldTimes.get(0), SLASH, worldTimes.get(1), SLASH, worldTimes.get(2), text(", ", YELLOW),
+ worldTimes.get(3), SLASH, worldTimes.get(4), SLASH, worldTimes.get(5), text(", ", YELLOW),
+ worldTimes.get(6), SLASH, worldTimes.get(7), SLASH, worldTimes.get(8)
+ )
+ )
+ );
+ }
+ // Plazma end - Port SparklyPaper patches; Track World specific MSPT
+
return true;
}

diff --git a/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java b/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java
index 62484ebf4550b05182f693a3180bbac5d5fd906d..8b39c463b90db2d4faa33471ddce65f775908f2f 100644
--- a/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java
Expand Down Expand Up @@ -85,7 +137,7 @@ index f164256d59b761264876ca0c85f812d101bfd5de..deaeb134c47da8710afa747bf980bd00
final TrackedChunk chunk = this.byChunk.get(CoordinateUtils.getChunkKey(chunkX, chunkZ));

diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2903c9a2480ac505f0931d29ac3c5013037e65f1..5af9b69d58d5364e405f67257fd55fc5e89caa53 100644
index 2903c9a2480ac505f0931d29ac3c5013037e65f1..39f7a4d3711a182b30d5b8eb77c2354170b26720 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -323,6 +323,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Expand Down Expand Up @@ -123,6 +175,22 @@ index 2903c9a2480ac505f0931d29ac3c5013037e65f1..5af9b69d58d5364e405f67257fd55fc5
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
//this.profiler.push("commandFunctions"); // Purpur
@@ -1808,7 +1807,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa

try {
//worldserver.timings.doTick.startTiming(); // Spigot // Purpur
+ // Plazma start - Port SparklyPaper patches; Track World specific MSPT
+ long before = Util.getNanos();
worldserver.tick(shouldKeepTicking);
+ long after = Util.getNanos() - before;
+
+ worldserver.tickTimes5s.add(this.tickCount, after);
+ worldserver.tickTimes10s.add(this.tickCount, after);
+ worldserver.tickTimes60s.add(this.tickCount, after);
+ // Plazma end - Port SparklyPaper patches; Track World specific MSPT
// Paper start
for (final io.papermc.paper.chunk.SingleThreadChunkRegionManager regionManager : worldserver.getChunkSource().chunkMap.regionManagers) {
regionManager.recalculateRegions();
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 4e6fccec4f5ca14562bf5bae495ac36c14982d85..9162c6338dbb516ce60f4853e57da6e49be79282 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
Expand Down Expand Up @@ -182,6 +250,23 @@ index 39e7dcf3c92c9203c190782be401c00c010b8aeb..b86ae3929ec5d3c4eb69d92774dc445a
}

if (packet1 != null) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f03b59754f5900fa47985b4118cacccadf04920f..94c61a1ace5b736e770a801990414f49ef8831e9 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -233,6 +233,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
public boolean hasRidableMoveEvent = false; // Purpur

+ // Plazma start - Port SparklyPaper patches; Track World specific MSPT
+ public final MinecraftServer.TickTimes tickTimes5s = new MinecraftServer.TickTimes(100);
+ public final MinecraftServer.TickTimes tickTimes10s = new MinecraftServer.TickTimes(200);
+ public final MinecraftServer.TickTimes tickTimes60s = new MinecraftServer.TickTimes(1200);
+ // Plazma end - Port SparklyPaper patches; Track World specific MSPT
+
public LevelChunk getChunkIfLoaded(int x, int z) {
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
}
diff --git a/src/main/java/net/minecraft/stats/ServerStatsCounter.java b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
index f890738d3bb9fb5e70a9d323c6cec97f9948f9cf..eb3fc1af68768383d524cf0f50c4f4b304b9d5ca 100644
--- a/src/main/java/net/minecraft/stats/ServerStatsCounter.java
Expand Down
22 changes: 11 additions & 11 deletions patches/server/0015-Completely-remove-Mojang-Profiler.patch
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ index f626a2f28f2aebb3237cebb6afef3c4fa1a6cb37..467e17bfce31d0919d603698c9d88a04
public int forkLimit() {
return this.forkLimit;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5af9b69d58d5364e405f67257fd55fc5e89caa53..be39e6292e4d6571f3b8a92358e35f9496ec8cde 100644
index 39f7a4d3711a182b30d5b8eb77c2354170b26720..d1dec1a4671f59fb1b7fe6a2188bd7581a33e40e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -104,18 +104,18 @@ import net.minecraft.util.datafix.DataFixers;
Expand Down Expand Up @@ -120,7 +120,7 @@ index 5af9b69d58d5364e405f67257fd55fc5e89caa53..be39e6292e4d6571f3b8a92358e35f94
private ServerConnectionListener connection;
public final ChunkProgressListenerFactory progressListenerFactory;
@Nullable
@@ -2576,10 +2576,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2584,10 +2584,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}

Expand All @@ -133,15 +133,15 @@ index 5af9b69d58d5364e405f67257fd55fc5e89caa53..be39e6292e4d6571f3b8a92358e35f94

public abstract boolean isSingleplayerOwner(GameProfile profile);

@@ -2823,6 +2825,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2831,6 +2833,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// CraftBukkit end

+ /* // Plazma - Completely remove Mojang's Profiler
private void startMetricsRecordingTick() {
if (false && this.willStartRecordingMetrics) { // Purpur
this.metricsRecorder = ActiveMetricsRecorder.createStarted(new ServerMetricsSamplersProvider(Util.timeSource, this.isDedicatedServer()), Util.timeSource, Util.ioPool(), new MetricsPersister("server"), this.onMetricsRecordingStopped, (path) -> {
@@ -2849,12 +2852,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2857,12 +2860,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}

public void startRecordingMetrics(Consumer<ProfileResults> resultConsumer, Consumer<Path> dumpConsumer) {
Expand All @@ -156,39 +156,39 @@ index 5af9b69d58d5364e405f67257fd55fc5e89caa53..be39e6292e4d6571f3b8a92358e35f94
}

public void stopRecordingMetrics() {
@@ -2869,6 +2872,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2877,6 +2880,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
//this.metricsRecorder.cancel(); // Purpur
//this.profiler = this.metricsRecorder.getProfiler(); // Purpur
}
+ */ // Plazma - Completely remove Mojang's Profiler

public Path getWorldPath(LevelResource worldSavePath) {
return this.storageSource.getLevelPath(worldSavePath);
@@ -2919,6 +2923,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2927,6 +2931,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return this.isSaving;
}

+ /* // Plazma - Completely remove Mojang's Profiler
public boolean isTimeProfilerRunning() {
return false; //this.debugCommandProfilerDelayStart || this.debugCommandProfiler != null; // Purpur
}
@@ -2937,6 +2942,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2945,6 +2950,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return methodprofilerresults;
}
}
+ */ // Plazma - Completely remove Mojang's Profiler

public int getMaxChainedNeighborUpdates() {
return 1000000;
@@ -2988,6 +2994,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2996,6 +3002,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}

+ /* // Plazma - Completely remove Mojang's Profiler
private static class TimeProfiler {

final long startNanos;
@@ -3037,6 +3044,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -3045,6 +3052,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
};
}
}
Expand Down Expand Up @@ -405,7 +405,7 @@ index 53c0b48966558f43bb9bd7d29d9588f9d83e0de7..7ff845a0ddb308e8b69881f05086105f
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.ai.village.poi.PoiManager;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f03b59754f5900fa47985b4118cacccadf04920f..7a864b55555adbe8bb88a816bbfdbbb59afc6d52 100644
index 94c61a1ace5b736e770a801990414f49ef8831e9..49307871db084a7f22a0f8570a27c9aa8f7f2f30 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -79,7 +79,7 @@ import net.minecraft.util.ProgressListener;
Expand All @@ -417,7 +417,7 @@ index f03b59754f5900fa47985b4118cacccadf04920f..7a864b55555adbe8bb88a816bbfdbbb5
import net.minecraft.util.valueproviders.IntProvider;
import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.DifficultyInstance;
@@ -700,15 +700,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -706,15 +706,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error

// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
Expand Down
Loading

0 comments on commit e765830

Please sign in to comment.