Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@681c013 Bundle spark (#11093)
PaperMC/Paper@5fee9c6 Move configuration option to a system property
PaperMC/Paper@aa3b356 Improve server startup logging (#11110)
PaperMC/Paper@9aea240 Properly lookup plugin classes when looked up by spark
PaperMC/Paper@7e91a2c Update the bundled spark version
This commit is contained in:
granny
2024-07-20 14:51:24 -07:00
parent 936c29ae2a
commit 032697e7ac
63 changed files with 92 additions and 231 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index 1a734293c9416f13324bb0edf8f950c9029f8bc4..42fa7df2badca3fe26258ce0db934ba33f9cec80 100644
index 421f6b3dc8890d63d2e7aa774d0bf8f7e15890ab..409a46eb82262b00a626683072f2734255f2c2b8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -28,7 +28,7 @@ index 1a734293c9416f13324bb0edf8f950c9029f8bc4..42fa7df2badca3fe26258ce0db934ba3
testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -80,14 +84,14 @@ tasks.jar {
@@ -84,14 +88,14 @@ tasks.jar {
val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
@@ -48,7 +48,7 @@ index 1a734293c9416f13324bb0edf8f950c9029f8bc4..42fa7df2badca3fe26258ce0db934ba3
"Build-Number" to (build ?: ""),
"Build-Time" to Instant.now().toString(),
"Git-Branch" to gitBranch, // Paper
@@ -144,7 +148,7 @@ fun TaskContainer.registerRunTask(
@@ -148,7 +152,7 @@ fun TaskContainer.registerRunTask(
name: String,
block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) {

View File

@@ -72,12 +72,12 @@ index 2d344df35d47b4b1ecddf32ccaa4dae41e5f58cb..2f7ed5b38e8930b3a615f160cdf4c5b0
boolean flag1 = this.source.acceptsSuccess() && !this.silent;
boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent;
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 7d82cc6b847124cf4225428ba310309544928148..04fd1172b47a74b16955cf93fc20f64fd056b16e 100644
index dd56c8e041116ef3602a9f89c998c8208ab89b51..a96e7df92b7d45e1c6750368fda647be026f657b 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -236,6 +236,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized
@@ -238,6 +238,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
+ // Purpur start
+ try {
@@ -112,10 +112,10 @@ index e2a0487089eb5a7bdc1433e4c75f69d8e9f9d5f9..04953d12a6aab561b9510adad145918a
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 3a91faeb6957e4e783b1de3e1145e7d1d164a857..3e22545aead92a6bd5eb4e0b67b658c18d965c8a 100644
index c8b82bc41f2042bb4b067f06265a3a22e51f7629..8766e8fdae330ecff174d0257e09ccf38458c37f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1068,6 +1068,7 @@ public final class CraftServer implements Server {
@@ -1070,6 +1070,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console);
@@ -123,7 +123,7 @@ index 3a91faeb6957e4e783b1de3e1145e7d1d164a857..3e22545aead92a6bd5eb4e0b67b658c1
for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -1083,6 +1084,7 @@ public final class CraftServer implements Server {
@@ -1085,6 +1086,7 @@ public final class CraftServer implements Server {
}
}
world.spigotConfig.init(); // Spigot
@@ -131,15 +131,15 @@ index 3a91faeb6957e4e783b1de3e1145e7d1d164a857..3e22545aead92a6bd5eb4e0b67b658c1
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1099,6 +1101,7 @@ public final class CraftServer implements Server {
this.reloadData();
@@ -1102,6 +1104,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
this.spark.registerCommandBeforePlugins(this); // Paper - spark
+ org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -2987,6 +2990,18 @@ public final class CraftServer implements Server {
@@ -2991,6 +2994,18 @@ public final class CraftServer implements Server {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}
@@ -159,7 +159,7 @@ index 3a91faeb6957e4e783b1de3e1145e7d1d164a857..3e22545aead92a6bd5eb4e0b67b658c1
public void restart() {
org.spigotmc.RestartCommand.restart();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 38083fc6dc60673562f2d05aa354c365571baff8..98dd06878b76b0c1d70242afd49738b253cd0e80 100644
index 618f4b2e1d012b647b3e7bf359c8ecdd7f159e63..511561181468f07ec537af653e8bf47a2aa5f2cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -176,6 +176,14 @@ public class Main {

View File

@@ -22,10 +22,10 @@ index 2767d6f97e8b314d23a8e62f22dfd396f5660d31..a64e5997b94cc8173f0512d1e282355f
super(x, y, z);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8160c35368fc2c52d6f4a42df27adb2ef6eb87f3..810424fc57a00ad4f5345c02393c0467109485e9 100644
index 9325d6f95165a7cee00d7de736af723681cc16b4..cc5bb3a8a06a7fc727f8737fca727f72a9302264 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1778,6 +1778,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1784,6 +1784,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
worldserver.updateLagCompensationTick(); // Paper - lag compensation

View File

@@ -17,10 +17,10 @@ index d6431376184e5650b370cbab204e28bc31f4dac6..9ebe1f1797b5be562bc4f6d92b9a4d60
public final boolean spawnNpcs = this.get("spawn-npcs", true);
public final boolean pvp = this.get("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 3e22545aead92a6bd5eb4e0b67b658c18d965c8a..0a752846d86e0383b61e7a631be4b7448a67d4bd 100644
index 8766e8fdae330ecff174d0257e09ccf38458c37f..a03e272ada8b01a0928214d4d5aa03dfb57ed31a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3229,4 +3229,11 @@ public final class CraftServer implements Server {
@@ -3233,4 +3233,11 @@ public final class CraftServer implements Server {
return this.potionBrewer;
}
// Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 810424fc57a00ad4f5345c02393c0467109485e9..3a339cae287b751452e5dd7a57b6ce10f3c73e7e 100644
index cc5bb3a8a06a7fc727f8737fca727f72a9302264..a447abcc0ee8f3657f3a6cb189f9f74c322a8f91 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1936,7 +1936,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1942,7 +1942,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Lagging threshold
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 3a339cae287b751452e5dd7a57b6ce10f3c73e7e..bac247a9e1b95c095933bf79724d5f37e61f16e6 100644
index a447abcc0ee8f3657f3a6cb189f9f74c322a8f91..fc3fa6eb24aa8fb1ff6f7496f4c79fe2d4f6434d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -319,6 +319,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -16,7 +16,7 @@ index 3a339cae287b751452e5dd7a57b6ce10f3c73e7e..bac247a9e1b95c095933bf79724d5f37
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper
@@ -1279,6 +1280,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1283,6 +1284,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.recentTps[0] = tps1.getAverage();
this.recentTps[1] = tps5.getAverage();
this.recentTps[2] = tps15.getAverage();
@@ -25,10 +25,10 @@ index 3a339cae287b751452e5dd7a57b6ce10f3c73e7e..bac247a9e1b95c095933bf79724d5f37
}
// Paper end - further improve server tick loop
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0a752846d86e0383b61e7a631be4b7448a67d4bd..650a8519b866b6b261772301a32ae3eacabb2a6d 100644
index a03e272ada8b01a0928214d4d5aa03dfb57ed31a..e08a0babeb4799ede4af696dd1a33d15eb7e2c75 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3235,5 +3235,10 @@ public final class CraftServer implements Server {
@@ -3239,5 +3239,10 @@ public final class CraftServer implements Server {
public String getServerName() {
return this.getProperties().serverName;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index bac247a9e1b95c095933bf79724d5f37e61f16e6..039a20441b884c801369c9e8b1dc87cfb43f85d4 100644
index fc3fa6eb24aa8fb1ff6f7496f4c79fe2d4f6434d..4e7cb1b3732021932559dc72176f28607c023e5d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1311,6 +1311,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1315,6 +1315,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("nextTickWait");
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);

View File

@@ -18,7 +18,7 @@ index 039a86034928a5eb7aaa2d7ca76a7bddcca346bd..308f67d0616e2d6bb135258f1fda53cc
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 039a20441b884c801369c9e8b1dc87cfb43f85d4..8597bbaa749628c69c6a7634d7fb8580410cde10 100644
index 4e7cb1b3732021932559dc72176f28607c023e5d..611232bc3317831dce3578dd91b4ecf3f91df20c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -314,7 +314,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -30,7 +30,7 @@ index 039a20441b884c801369c9e8b1dc87cfb43f85d4..8597bbaa749628c69c6a7634d7fb8580
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
public static long currentTickLong = 0L; // Paper - track current tick as a long
@@ -1159,6 +1159,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1162,6 +1162,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
private long catchupTime = 0;
@@ -38,7 +38,7 @@ index 039a20441b884c801369c9e8b1dc87cfb43f85d4..8597bbaa749628c69c6a7634d7fb8580
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -1272,14 +1273,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1276,14 +1277,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) {
final long diff = currentTime - tickSection;
final java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -74,10 +74,10 @@ index 096c89bd01cec2abd151bf6fffc4847d1bcd548f..cd0a8a6a1be75cab8bbb8ee3ac17bb73
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
this.repaint();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 650a8519b866b6b261772301a32ae3eacabb2a6d..860a24a6d3e80d9ff94743f46f6fa217c36f3614 100644
index e08a0babeb4799ede4af696dd1a33d15eb7e2c75..5fdd11c1d7456f50828a6aed68125d6b248580e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3031,6 +3031,7 @@ public final class CraftServer implements Server {
@@ -3035,6 +3035,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {

View File

@@ -18,10 +18,10 @@ index 76ef195a5074006b009acd9cc1744667c6aecbb9..659577549e132754281df76a7a1bfd88
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8597bbaa749628c69c6a7634d7fb8580410cde10..01d6f79477d44097397bf62ad3a4b3af94a9a473 100644
index 611232bc3317831dce3578dd91b4ecf3f91df20c..3046a9ffbccd0e53a8bc5383aa88f6031fedb884 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1770,7 +1770,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1776,7 +1776,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) {

View File

@@ -17,10 +17,10 @@ index 38a345901a743f5ddac18ba876d5245c5c11f111..c7b7cc0d9ce589b5a0600e9b8c46b2e5
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 729450af7818fd084d6d224b58f2a3834922245b..5300e75cb10c74188fdee49c65e56255652bc82a 100644
index 3046a9ffbccd0e53a8bc5383aa88f6031fedb884..7bbc26ef16095417d1449f7725242b386f5e87fb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1133,6 +1133,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1136,6 +1136,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(waitForShutdown, false);
}
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
@@ -29,10 +29,10 @@ index 729450af7818fd084d6d224b58f2a3834922245b..5300e75cb10c74188fdee49c65e56255
this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 04fd1172b47a74b16955cf93fc20f64fd056b16e..34dfcdb3de191c08dffe22f624f4e968fbbc0f45 100644
index a96e7df92b7d45e1c6750368fda647be026f657b..3476e0532ad2231ce93b68dbecb5d42767594396 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -366,6 +366,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -368,6 +368,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.info("JMX monitoring enabled");
}

View File

@@ -51,10 +51,10 @@ index 699bdc1f01a95ecdfe899493c8d81ec31cc9fa4b..d12469a1bbd37026012bfd6bce30d7a2
private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 860a24a6d3e80d9ff94743f46f6fa217c36f3614..cd3a0bd03956e0149089a90d997893d32d4afac3 100644
index 5fdd11c1d7456f50828a6aed68125d6b248580e3..e29fd833094840091cb6dfb788fe1c77896c4cc3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1607,6 +1607,19 @@ public final class CraftServer implements Server {
@@ -1611,6 +1611,19 @@ public final class CraftServer implements Server {
return true;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8e8cc0b294c89cc9ebabee42d6a6d9ced4f9cd7d..fd8775262e0f9e0167d634b99e8ef1853a97a8bb 100644
index fc2ce566c8af96548b26e238a0194dd382df823e..4c7423b13629943752f3190e6aa9cce2932cc10b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -321,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -16,10 +16,10 @@ index 8e8cc0b294c89cc9ebabee42d6a6d9ced4f9cd7d..fd8775262e0f9e0167d634b99e8ef185
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper
@@ -1039,6 +1040,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
@@ -1042,6 +1043,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
MinecraftTimings.stopServer(); // Paper
this.server.spark.disable(); // Paper - spark
+ // Purpur start
+ if (upnp) {
+ if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
@@ -28,14 +28,15 @@ index 8e8cc0b294c89cc9ebabee42d6a6d9ced4f9cd7d..fd8775262e0f9e0167d634b99e8ef185
+ LOGGER.error("[UPnP] Failed to close port {}", this.getPort());
+ }
+ }
+ // Purpur end
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 34dfcdb3de191c08dffe22f624f4e968fbbc0f45..06fe2852a1a0bc3b67f614d4ae7667e649bb1692 100644
index 3476e0532ad2231ce93b68dbecb5d42767594396..65128f9d9b5300339f7d084918ffcfba9371793e 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -293,6 +293,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -295,6 +295,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (true) throw new IllegalStateException("Failed to bind to port", ioexception); // Paper - Propagate failed to bind to port error
return false;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fd8775262e0f9e0167d634b99e8ef1853a97a8bb..4cf4c138b8494f7a7f4a0efeeece571a1c405943 100644
index 4c7423b13629943752f3190e6aa9cce2932cc10b..2de2fa1f515eac62ff5a8a789f3a86c83221cd31 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1144,6 +1144,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1148,6 +1148,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur
@@ -17,10 +17,10 @@ index fd8775262e0f9e0167d634b99e8ef1853a97a8bb..4cf4c138b8494f7a7f4a0efeeece571a
this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 06fe2852a1a0bc3b67f614d4ae7667e649bb1692..a25855521ab4a3a8bcb5bbae6973b9fe77f645de 100644
index 65128f9d9b5300339f7d084918ffcfba9371793e..f0eccec916c7c49e626ba86accd9b1718d42d699 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -391,6 +391,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -393,6 +393,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur

View File

@@ -1,140 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <ben@omega24.dev>
Date: Sat, 25 Jun 2022 19:40:36 -0400
Subject: [PATCH] Spark Profiler
Co-authored-by: granny <granny@purpurmc.org>
diff --git a/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java b/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java
index 6f14cb9a73faa1d0ae2939d08809d9f6c2a99e1d..4e98745670032038f7b4f8e1adabc1e00e7f15bf 100644
--- a/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java
+++ b/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java
@@ -112,6 +112,7 @@ public class PluginInitializerManager {
@SuppressWarnings("unchecked")
java.util.List<Path> files = ((java.util.List<File>) optionSet.valuesOf("add-plugin")).stream().map(File::toPath).toList();
io.papermc.paper.plugin.util.EntrypointUtil.registerProvidersFromSource(io.papermc.paper.plugin.provider.source.PluginFlagProviderSource.INSTANCE, files);
+ io.papermc.paper.plugin.util.EntrypointUtil.registerProvidersFromSource(io.papermc.paper.plugin.provider.source.SparkProviderSource.INSTANCE, new File("cache", "spark.jar").toPath()); // Purpur
}
// This will be the end of me...
diff --git a/src/main/java/io/papermc/paper/plugin/provider/source/SparkProviderSource.java b/src/main/java/io/papermc/paper/plugin/provider/source/SparkProviderSource.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb78dac8e072b5cb3c6e52e17c9ecdf708aeedc1
--- /dev/null
+++ b/src/main/java/io/papermc/paper/plugin/provider/source/SparkProviderSource.java
@@ -0,0 +1,115 @@
+package io.papermc.paper.plugin.provider.source;
+
+import com.mojang.logging.LogUtils;
+import io.papermc.paper.plugin.entrypoint.Entrypoint;
+import io.papermc.paper.plugin.entrypoint.EntrypointHandler;
+import io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler;
+import io.papermc.paper.plugin.provider.PluginProvider;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStreamReader;
+import java.math.BigInteger;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+import java.security.MessageDigest;
+import java.util.stream.Collectors;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.slf4j.Logger;
+
+public class SparkProviderSource implements ProviderSource<Path, Path> {
+
+ public static final SparkProviderSource INSTANCE = new SparkProviderSource();
+ private static final FileProviderSource FILE_PROVIDER_SOURCE = new FileProviderSource("File '%s' specified by Purpur"::formatted);
+ private static final Logger LOGGER = LogUtils.getClassLogger();
+
+ @Override
+ public Path prepareContext(Path context) {
+ // first, check if user doesn't want spark at all
+ if (Boolean.getBoolean("Purpur.IReallyDontWantSpark")) {
+ return null; // boo!
+ }
+
+ // second, check if user has their own spark
+ if (hasSpark()) {
+ LOGGER.info("Purpur: Using user-provided spark plugin instead of our own.");
+ return null; // let's hope it's at least the modern version :3
+ }
+
+ // you can't have errors in your code if you wrap the entire codebase in a try/catch block
+ try {
+
+ // make sure the directory exists where we want to keep spark
+ File file = context.toFile();
+ file.getParentFile().mkdirs();
+
+ boolean shouldDownload;
+
+ // check if our spark exists
+ if (!file.exists()) {
+ // it does not, so let's download it
+ shouldDownload = true;
+ } else {
+ // we have a spark file, let's see if it's up-to-date by comparing shas
+ String fileSha1 = String.format("%040x", new BigInteger(1, MessageDigest.getInstance("SHA-1").digest(Files.readAllBytes(file.toPath()))));
+ String sparkSha1;
+
+ // luck has a nifty endpoint containing the sha of the newest version
+ URLConnection urlConnection = new URL("https://sparkapi.lucko.me/download/bukkit/sha1").openConnection();
+
+ // set a reasonable timeout to prevent servers without internet from hanging for 60+ seconds on startup
+ urlConnection.setReadTimeout(5000);
+ urlConnection.setConnectTimeout(5000);
+
+ // read it
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()))) {
+ sparkSha1 = reader.lines().collect(Collectors.joining(""));
+ }
+
+ // compare; we only download a new spark if the shas don't match
+ shouldDownload = !fileSha1.equals(sparkSha1);
+ }
+
+ // ok, finally we can download spark if we need it
+ if (shouldDownload) {
+ URLConnection urlConnection = new URL("https://sparkapi.lucko.me/download/bukkit").openConnection();
+ urlConnection.setReadTimeout(5000);
+ urlConnection.setConnectTimeout(5000);
+ Files.copy(urlConnection.getInputStream(), file.toPath(), StandardCopyOption.REPLACE_EXISTING);
+ }
+
+ // register the spark, newly downloaded or existing
+ return FILE_PROVIDER_SOURCE.prepareContext(context);
+
+ } catch (Throwable e) {
+ LOGGER.error("Purpur: Failed to download and install spark plugin", e);
+ }
+ return null;
+ }
+
+ @Override
+ public void registerProviders(final EntrypointHandler entrypointHandler, final Path context) {
+ if (context == null) {
+ return;
+ }
+
+ try {
+ FILE_PROVIDER_SOURCE.registerProviders(entrypointHandler, context);
+ } catch (IllegalArgumentException ignored) {
+ // Ignore illegal argument exceptions from jar checking
+ } catch (Exception e) {
+ LOGGER.error("Error loading our spark plugin: " + e.getMessage(), e);
+ }
+ }
+
+ private static boolean hasSpark() {
+ for (PluginProvider<JavaPlugin> provider : LaunchEntryPointHandler.INSTANCE.get(Entrypoint.PLUGIN).getRegisteredProviders()) {
+ if (provider.getMeta().getName().equalsIgnoreCase("spark")) {
+ return true;
+ }
+ }
+ return false;
+ }
+}

View File

@@ -42,10 +42,10 @@ index e2c24813f59c2fd075c740ac1842a38f20ed8554..01efbc507b3d58f13f78ee286f93df40
} catch (Exception exception) {
if (exception instanceof ReportedException) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6c06fb7fe 100644
index 2de2fa1f515eac62ff5a8a789f3a86c83221cd31..5e1004ccd735a0889dbdfbfcebb921422ac992a4 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1600,15 +1600,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1605,15 +1605,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -62,9 +62,9 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
- isOversleep = false;MinecraftTimings.serverOversleep.stopTiming();
+ //isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); // Purpur
// Paper end
this.server.spark.tickStart(); // Paper - spark
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1644,9 +1644,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1650,9 +1650,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.pop();
// Paper end - Incremental chunk and player saving
// Paper start - move executeAll() into full server tick timing
@@ -76,7 +76,7 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
// Paper end
// Paper start - Server Tick Events
long endTime = System.nanoTime();
@@ -1669,7 +1669,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1676,7 +1676,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickMethodTime(i);
this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -85,7 +85,7 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
}
private void logTickMethodTime(long tickStartTime) {
@@ -1740,9 +1740,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1747,9 +1747,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing();
});
@@ -97,7 +97,7 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
// Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> {
@@ -1759,21 +1759,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1766,21 +1766,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
this.profiler.push("commandFunctions");
@@ -124,7 +124,7 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
// Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - Perf: Optimize time updates
for (final ServerLevel level : this.getAllLevels()) {
@@ -1793,7 +1793,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1800,7 +1800,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
// Paper end - Perf: Optimize time updates
@@ -133,7 +133,7 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
@@ -1821,9 +1821,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1828,9 +1828,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick");
try {
@@ -145,7 +145,7 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1838,24 +1838,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1845,24 +1845,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
this.profiler.popPush("connection");
@@ -177,10 +177,10 @@ index d884b0a34cdd5f3eb518d779e7240d4e81941ed8..696cbee14df0efda70d01c57dcd905a6
this.profiler.popPush("send chunks");
iterator = this.playerList.getPlayers().iterator();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 02b997fa9718326be9021417adaa776b0df4cbb2..e94ccd93c936186e897df95b4bad717412b164b8 100644
index f0eccec916c7c49e626ba86accd9b1718d42d699..9b8e989600eedbbba20ec41737a3c8f9bf3faaf0 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -543,7 +543,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -545,7 +545,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
public void handleConsoleInputs() {
@@ -189,7 +189,7 @@ index 02b997fa9718326be9021417adaa776b0df4cbb2..e94ccd93c936186e897df95b4bad7174
// Paper start - Perf: use proper queue
ConsoleInput servercommand;
while ((servercommand = this.serverCommandQueue.poll()) != null) {
@@ -560,7 +560,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -562,7 +562,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
// CraftBukkit end
}

View File

@@ -83,7 +83,7 @@ index e9775b4506909bee65a74964f0d5391a0513de1d..684f7f202305c09b1037c5d38a52a5ea
}
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca24490164 100644
index 5e1004ccd735a0889dbdfbfcebb921422ac992a4..8828083d92a0c3c0623dbf6771cef88854c8ec6f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -422,13 +422,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -106,7 +106,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
this.random = RandomSource.create();
this.port = -1;
this.levels = Maps.newLinkedHashMap();
@@ -1033,9 +1033,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1035,9 +1035,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
org.spigotmc.WatchdogThread.doStop(); // Paper
// Paper end
// CraftBukkit end
@@ -118,7 +118,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -1305,16 +1305,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1310,16 +1310,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
boolean flag = i == 0L;
@@ -139,7 +139,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
this.tickServer(flag ? () -> {
return false;
} : this::haveTime);
@@ -1325,7 +1325,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1330,7 +1330,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw new RuntimeException("Chunk system crash propagated to tick()", crash);
}
// Paper end - rewrite chunk system
@@ -148,7 +148,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
// Purpur start
@@ -1341,9 +1341,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1346,9 +1346,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.tickRateManager.endTickWork();
}
@@ -161,7 +161,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
this.isReady = true;
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
}
@@ -1553,7 +1553,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1558,7 +1558,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void doRunTask(TickTask ticktask) { // CraftBukkit - decompile error
@@ -170,7 +170,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
super.doRunTask(ticktask);
}
@@ -1626,7 +1626,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1632,7 +1632,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (playerSaveInterval < 0) {
playerSaveInterval = autosavePeriod;
}
@@ -179,7 +179,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
try {
this.isSaving = true;
@@ -1641,7 +1641,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1647,7 +1647,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} finally {
this.isSaving = false;
}
@@ -188,16 +188,16 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
// Paper end - Incremental chunk and player saving
// Paper start - move executeAll() into full server tick timing
//try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { // Purpur
@@ -1653,7 +1653,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
@@ -1660,7 +1660,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
this.server.spark.tickEnd(((double)(endTime - lastTick) / 1000000D)); // Paper - spark
// Paper end - Server Tick Events
- this.profiler.push("tallying");
+ //this.profiler.push("tallying"); // Purpur
long j = Util.getNanos() - i;
int k = this.tickCount % 100;
@@ -1667,7 +1667,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1674,7 +1674,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.tickTimes60s.add(this.tickCount, j);
// Paper end - Add tick times API and /mspt command
this.logTickMethodTime(i);
@@ -206,7 +206,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
org.spigotmc.WatchdogThread.tick(); // Spigot
//co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper // Purpur
}
@@ -1758,11 +1758,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1765,11 +1765,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
});
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
@@ -220,7 +220,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
//Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
// CraftBukkit start
@@ -1805,20 +1805,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1812,20 +1812,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.updateLagCompensationTick(); // Paper - lag compensation
worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
@@ -246,7 +246,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
try {
//worldserver.timings.doTick.startTiming(); // Spigot // Purpur
@@ -1831,17 +1831,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1838,17 +1838,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw new ReportedException(crashreport);
}
@@ -268,7 +268,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
//MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper // Purpur
this.playerList.tick();
//MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -1849,7 +1849,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1856,7 +1856,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick();
}
@@ -277,7 +277,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
//MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper // Purpur
for (int i = 0; i < this.tickables.size(); ++i) {
@@ -1857,7 +1857,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1864,7 +1864,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
//MinecraftTimings.tickablesTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -286,7 +286,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
iterator = this.playerList.getPlayers().iterator();
while (iterator.hasNext()) {
@@ -1867,7 +1867,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1874,7 +1874,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
entityplayer.connection.resumeFlushing();
}
@@ -295,7 +295,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
}
private void synchronizeTime(ServerLevel world) {
@@ -1875,7 +1875,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1882,7 +1882,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void forceTimeSynchronization() {
@@ -304,7 +304,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
Iterator iterator = this.getAllLevels().iterator();
while (iterator.hasNext()) {
@@ -1884,7 +1884,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1891,7 +1891,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.synchronizeTime(worldserver);
}
@@ -313,7 +313,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
}
public boolean isLevelEnabled(Level world) {
@@ -2596,6 +2596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2603,6 +2603,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public ProfilerFiller getProfiler() {
@@ -321,7 +321,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
return this.profiler;
}
@@ -2842,7 +2843,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2849,7 +2850,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end
private void startMetricsRecordingTick() {
@@ -330,7 +330,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
this.metricsRecorder = ActiveMetricsRecorder.createStarted(new ServerMetricsSamplersProvider(Util.timeSource, this.isDedicatedServer()), Util.timeSource, Util.ioPool(), new MetricsPersister("server"), this.onMetricsRecordingStopped, (path) -> {
this.executeBlocking(() -> {
this.saveDebugReport(path.resolve("server"));
@@ -2852,40 +2853,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2859,40 +2860,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.willStartRecordingMetrics = false;
}
@@ -383,7 +383,7 @@ index 696cbee14df0efda70d01c57dcd905a6c06fb7fe..ce0682727a0623b4781f6cd43ab54fca
}
public Path getWorldPath(LevelResource worldSavePath) {
@@ -2938,15 +2939,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2945,15 +2946,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public boolean isTimeProfilerRunning() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index cd3a0bd03956e0149089a90d997893d32d4afac3..1bb18e2870db62102709f3c0176f2a76492c9e1d 100644
index e29fd833094840091cb6dfb788fe1c77896c4cc3..9b31b7edecbacb16f24deea619e69314959bea85 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1618,6 +1618,42 @@ public final class CraftServer implements Server {
@@ -1622,6 +1622,42 @@ public final class CraftServer implements Server {
public void removeFuel(org.bukkit.Material material) {
net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)));
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Language API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1bb18e2870db62102709f3c0176f2a76492c9e1d..2e440d3c0b4bd42d6bc8409778473f574e22c54b 100644
index 9b31b7edecbacb16f24deea619e69314959bea85..d87ecd6e7552ab537c9d9e8a10a471814e61632d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -410,6 +410,20 @@ public final class CraftServer implements Server {
@@ -411,6 +411,20 @@ public final class CraftServer implements Server {
this.paperPluginManager = new io.papermc.paper.plugin.manager.PaperPluginManagerImpl(this, this.commandMap, pluginManager);
this.pluginManager.paperPluginManager = this.paperPluginManager;
// Paper end

View File

@@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a
+ }
+}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 73f1080559ae91a89feca60bcc3812b086e16f8f..39a7abeeff53a608774dc34226e9b5e12bd5b5d2 100644
index 9b8e989600eedbbba20ec41737a3c8f9bf3faaf0..744cfc91fa8b78794f1edab1f81035b21bf0c83f 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -114,6 +114,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] config for startup commands
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ce0682727a0623b4781f6cd43ab54fca24490164..932283d2385923c1777975970b631875aa7b4187 100644
index 8828083d92a0c3c0623dbf6771cef88854c8ec6f..d0c31849b67e19e9a14593b3907266a3759acb61 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1258,6 +1258,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1263,6 +1263,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// Paper end - Add onboarding message for initial server start