Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@bd2fd61 [ci skip] Fixup a few bad comments
PaperMC/Paper@fe53b0e Updated Upstream (Bukkit/CraftBukkit/Spigot)
PaperMC/Paper@1ed50da Fix javadoc errors, remove unused classes
This commit is contained in:
granny
2024-01-26 21:39:07 -08:00
parent eab2140f5e
commit ce7eaa1763
30 changed files with 163 additions and 151 deletions

View File

@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
version = 1.20.4-R0.1-SNAPSHOT
mcVersion = 1.20.4
paperCommit = b03f255532bba5a1398f03207756f42e5597ccb8
paperCommit = 1ed50dade82437bf45fe74833d7e6ac2961842a2
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 815631a6157b87a9ead270fe0b11ac3892a3fbf4..f6f3493163fdc145973d1417b5cd4c4f5dddbf8b 100644
index 31aa6ef5fc2b3b88c72f5a15b8cc7a0e50c29f46..1a9c00eae76694f9b1ebbb655124b34b160997cb 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3578,4 +3578,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3619,4 +3619,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@Override
Spigot spigot();
// Spigot end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index f6f3493163fdc145973d1417b5cd4c4f5dddbf8b..63b2f4dc478397ccadc61f8538914ff3eff808cd 100644
index 1a9c00eae76694f9b1ebbb655124b34b160997cb..89ed5f11862012b634916aaf531475de18dacd07 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3586,5 +3586,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3627,5 +3627,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @return True if Player uses Purpur Client
*/
public boolean usesPurpurClient();

View File

@@ -50,7 +50,7 @@ index f9af60356da4668cec8b24e73f5747ab82e35a91..b304ad1307cdd6785653b1eab9781e07
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 36e3fbc727cd748aa138f52976154ba32954cd87..eb78ddfa5a83a45cb6103415aa679e73b3d6a13f 100644
index 7adf54c561d64e6337af8a2d86f6b574b083edb5..c4c5c01132a5a43e78d004e6fc223aabc917f073 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta;
@@ -72,7 +72,7 @@ index 36e3fbc727cd748aa138f52976154ba32954cd87..eb78ddfa5a83a45cb6103415aa679e73
/**
* Represents a stack of items.
@@ -1005,4 +1017,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
@@ -1016,4 +1028,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return type.isAir() || amount <= 0;
}
// Paper end

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Extended OfflinePlayer API
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
index bce07d84cafca677bb6fad78c21b82097f06430c..4ef0fa4f1ef72bb784674671473c6a322acadecc 100644
index abb5109ed08a3a651c2c27d4d17a3d49eb06da1e..98308b759907e03b168f7e06704a91925ffcd3fd 100644
--- a/src/main/java/org/bukkit/OfflinePlayer.java
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
@@ -522,4 +522,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
@@ -545,4 +545,106 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
*/
@Nullable
public Location getLastDeathLocation();
public Location getLocation();
+
+ // Purpur start - OfflinePlayer API
+ /**
@@ -79,14 +79,6 @@ index bce07d84cafca677bb6fad78c21b82097f06430c..4ef0fa4f1ef72bb784674671473c6a32
+ public float getWalkSpeed();
+
+ /**
+ * Gets the entity's current position
+ *
+ * @return a new copy of Location containing the position of this offline player
+ */
+ @Nullable
+ public Location getLocation();
+
+ /**
+ * Sets OfflinePlayer's location. If player is online, it falls back to the Player#teleport implementation.
+ *
+ * @param destination

View File

@@ -260,10 +260,10 @@ index 87ab8d4d5f6311c88572fa9a5536aca991e2e86b..3d4481ea5328735357a7c60c99e5b3a0
/**
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 63b2f4dc478397ccadc61f8538914ff3eff808cd..05dd1b62940920883c8709ea36a29e9f4574caa0 100644
index 89ed5f11862012b634916aaf531475de18dacd07..6ead75818a5dea24e47fda0795e8845d591fb817 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3606,5 +3606,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3647,5 +3647,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* @deprecated Use {@link #resetIdleDuration()} instead
*/
void resetIdleTimer();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 05dd1b62940920883c8709ea36a29e9f4574caa0..48ef9837cc26313e76678555d7187eb3b9c8e4d7 100644
index 6ead75818a5dea24e47fda0795e8845d591fb817..f161411b29dc11eb7f6a47899128401af8bec5a1 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3676,5 +3676,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -3717,5 +3717,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
* Clears all debug block highlights
*/
void clearBlockHighlights();

View File

@@ -24,10 +24,10 @@ index f680545b6b59bf8d2ad154b0472dda4cba42a162..58a62ba0635f9158bf18043da89aba75
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index eb78ddfa5a83a45cb6103415aa679e73b3d6a13f..9ecfc504df089a74add168cd5a8376d7d6b8ea0e 100644
index c4c5c01132a5a43e78d004e6fc223aabc917f073..d4f54956554ff66212f4f22dd21c69513ac14e0b 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -1638,5 +1638,14 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
@@ -1649,5 +1649,14 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
}
return random.nextInt(unbreaking + 1) > 0;
}

View File

@@ -1471,7 +1471,7 @@ index 0000000000000000000000000000000000000000..facd55463d44cb7e3d2ca6892982f549
+ }
+}
diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java
index 200ed770b57e1a9240abf0473968d4b85cbefe3c..0acc7cfc0fb0264dd76a58f7582e79d83fa040eb 100644
index 1ccf71be865af4d3c5ab8f4323a228a947e0bf3f..3f3f8443563e4ca6c7fb236e7a98eaae3be3b43e 100644
--- a/src/main/java/io/papermc/paper/util/MCUtil.java
+++ b/src/main/java/io/papermc/paper/util/MCUtil.java
@@ -212,7 +212,7 @@ public final class MCUtil {
@@ -1497,7 +1497,7 @@ index ba12919c3f9aec34a9e64993b143ae92be5eb172..9efeab9078e2d08903e482718b840797
} else {
this.lastTimeStamp = body.timeStamp();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fa2b4cdd4c4e2c1df3e378a7c706f06c3361ad53..5b6771cc925d29c26ea0cfcf0f72184f96e3eade 100644
index 90ae7e8c81f6a9ede8aeaeec3bf784023522cefc..f1944d77aa1d5901c563108099a196ec1e598128 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -313,6 +313,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1509,7 +1509,7 @@ index fa2b4cdd4c4e2c1df3e378a7c706f06c3361ad53..5b6771cc925d29c26ea0cfcf0f72184f
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
@@ -1218,6 +1220,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1219,6 +1221,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("nextTickWait");
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
@@ -1522,7 +1522,7 @@ index fa2b4cdd4c4e2c1df3e378a7c706f06c3361ad53..5b6771cc925d29c26ea0cfcf0f72184f
this.waitUntilNextTick();
if (flag) {
this.tickRateManager.endTickWork();
@@ -1854,7 +1862,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1855,7 +1863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -1531,7 +1531,7 @@ index fa2b4cdd4c4e2c1df3e378a7c706f06c3361ad53..5b6771cc925d29c26ea0cfcf0f72184f
}
public SystemReport fillSystemReport(SystemReport details) {
@@ -2441,6 +2449,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2442,6 +2450,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public ProfilerFiller getProfiler() {
@@ -1795,7 +1795,7 @@ index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..dbe612427b894df9da1335b94163ba9b
if (this.isRainingAt(blockposition)) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 6f9ec543185b6f68bb1eaa61a7ebea9d866d688f..7b74541d648de48579221945e4bab963882cc1f2 100644
index 8ca5d7c1bfacb1b47aa680eee167af08d0396ae0..dbcf025c07abafee639d8b94bf963962b5e85478 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1121,6 +1121,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2701,7 +2701,7 @@ index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b68783
autorecipestackmanager.initialize(this); // Paper - better exact choice recipes
int i = 0;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index b33bb001a48788e727e2f01788a6163024121bf3..763fe7d1e8334441a5db2285bd4424d165e1c945 100644
index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..c84adb9f9bb1d6a81d4007b1ab292b133fc34cfb 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -212,6 +212,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -2713,7 +2713,7 @@ index b33bb001a48788e727e2f01788a6163024121bf3..763fe7d1e8334441a5db2285bd4424d1
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
@@ -1317,13 +1319,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1313,13 +1315,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
try {
tickConsumer.accept(entity);
MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick
@@ -2729,7 +2729,7 @@ index b33bb001a48788e727e2f01788a6163024121bf3..763fe7d1e8334441a5db2285bd4424d1
// Paper end - Prevent block entity and entity crashes
}
}
@@ -1797,6 +1799,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1793,6 +1795,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public ProfilerFiller getProfiler() {
@@ -3273,7 +3273,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 25f41119bcc19bab7cd2fdb044147b3f78a8ef1c..5b01cd1b9a07fc8600fddb9d9e0aea3ac5a288f0 100644
index b83c2f1e0ea117eecda94cb51b0ea5bba4d7ab5e..325a097426bcc5e7024ee9559b14c337e35339e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -177,7 +177,7 @@ index e047dee632022abfe05865d1e71838be8d5d053a..888e31a0454888c36cb27602a28619f1
stringbuilder.append(CrashReport.getErrorComment());
stringbuilder.append("\n\n");
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5b6771cc925d29c26ea0cfcf0f72184f96e3eade..58cb423bc1c58b2b5ebdc763561ed3f655a9629d 100644
index f1944d77aa1d5901c563108099a196ec1e598128..31e640a78dc332a1645865d6619541c550d974f3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -954,7 +954,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -189,7 +189,7 @@ index 5b6771cc925d29c26ea0cfcf0f72184f96e3eade..58cb423bc1c58b2b5ebdc763561ed3f6
while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop();
try {
@@ -1862,7 +1862,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1863,7 +1863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -199,7 +199,7 @@ index 5b6771cc925d29c26ea0cfcf0f72184f96e3eade..58cb423bc1c58b2b5ebdc763561ed3f6
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 5b01cd1b9a07fc8600fddb9d9e0aea3ac5a288f0..b8e578330ad7953f013767c7ff040fee468ce5a5 100644
index 325a097426bcc5e7024ee9559b14c337e35339e3..14332ca567a9cc6e781ed60b0cd068b084c16ef0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
@@ -252,10 +252,10 @@ index 4afc1c9d2a7638e84a55fe30932dc36db465c31a..ea966037755ba552dc6cf2f4792e9d23
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 700932b65e4fda560d684b0aa079bcee3923f73e..d1b1bc4845fc9519fc892e962c3e7d89da3f14de 100644
index e85b9bb3f9c225d289a4959921970b9963881199..c1e2d3a75b9d4710ab6d8b5c62af4bc136a2b668 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -501,7 +501,7 @@ public class CraftScheduler implements BukkitScheduler {
@@ -503,7 +503,7 @@ public class CraftScheduler implements BukkitScheduler {
this.parsePending();
} else {
// this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper

View File

@@ -43,10 +43,10 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..34559eae0ea3f88d7b9a3c9e4a2350c4
try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 5c1e016de183933c5458deaae257b978e6350307..8de8452b93833dbfe9e69b2b269264c0aa167e52 100644
index 39b25c2478eadd373383a3445a7f27ea30d18550..f78667d0bc7c6f481c5d8fef6f98a0b53e86b9c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3361,4 +3361,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3376,4 +3376,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSendViewDistance(final int viewDistance) {
this.getHandle().setSendViewDistance(viewDistance);
}

View File

@@ -22,10 +22,10 @@ index e17fa30966dea2836fb791becd032fc7d5cc2611..dd06323731533fb9b1b25a56844a4e39
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 58cb423bc1c58b2b5ebdc763561ed3f655a9629d..8da2fdcf04b0f0ed0265f2f7dc25240f586c55ee 100644
index 31e640a78dc332a1645865d6619541c550d974f3..e6e25ab0f2ec3fa0cfca945c578dfb170de3dc8a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1702,6 +1702,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1703,6 +1703,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
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.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
@@ -66,7 +66,7 @@ index 6c3e5ad96ff1c33181663d89c3c227e1a96e4912..62fd29f19b93f07a87377f26d9e5b169
public void doTick() {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 7b74541d648de48579221945e4bab963882cc1f2..564ad357c3f85c3018b51e592474722f9f92bf35 100644
index dbcf025c07abafee639d8b94bf963962b5e85478..d9ebf31a51e25706b3964ffe1aa2834bae8076f4 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2704,6 +2704,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl

View File

@@ -78,7 +78,7 @@ index 62fd29f19b93f07a87377f26d9e5b169b9d80f4f..e4f36920d54688b515b86ada943765d4
return this.stats;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 564ad357c3f85c3018b51e592474722f9f92bf35..466df3f098688d42320127273c07219cc3673258 100644
index d9ebf31a51e25706b3964ffe1aa2834bae8076f4..9c6d4f93a068a14adf601a562e78be8c68fd3528 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -325,6 +325,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -223,7 +223,7 @@ index ed84c87a3f76bc0254c1abb189e6b8b808823465..5bc68b1ef33f297e9a4b1bdd7d69f86a
if (range < 0.0D || d < range * range) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8de8452b93833dbfe9e69b2b269264c0aa167e52..84ab7296ca213ccc2d8983b6a4417993cbed70b5 100644
index f78667d0bc7c6f481c5d8fef6f98a0b53e86b9c7..4559705de05190e6c665e6894d3f753e8034dd2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -482,10 +482,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -243,7 +243,7 @@ index 8de8452b93833dbfe9e69b2b269264c0aa167e52..84ab7296ca213ccc2d8983b6a4417993
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -3367,5 +3372,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3382,5 +3387,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}

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 8da2fdcf04b0f0ed0265f2f7dc25240f586c55ee..a7e336f33c6a8cf426c37d94d35739a16cd9a5fe 100644
index e6e25ab0f2ec3fa0cfca945c578dfb170de3dc8a..b542683c65baf1a77fcc6c65b30b4181e2305c1c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1863,7 +1863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1864,7 +1864,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 a7e336f33c6a8cf426c37d94d35739a16cd9a5fe..b7bfcdf38dcbb784ae6d8e9feaf52c65d73758a5 100644
index b542683c65baf1a77fcc6c65b30b4181e2305c1c..f88e61e0017fe3748b29a89d6e6a5b15945a5f90 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -308,6 +308,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -16,7 +16,7 @@ index a7e336f33c6a8cf426c37d94d35739a16cd9a5fe..b7bfcdf38dcbb784ae6d8e9feaf52c65
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper
@@ -1197,6 +1198,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1198,6 +1199,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.recentTps[0] = tps1.getAverage();
this.recentTps[1] = tps5.getAverage();
this.recentTps[2] = tps15.getAverage();
@@ -25,7 +25,7 @@ index a7e336f33c6a8cf426c37d94d35739a16cd9a5fe..b7bfcdf38dcbb784ae6d8e9feaf52c65
}
// 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 d98ed16ce24fb82dff5bdccb33fb7936408b8634..5c30c63c2af21b75e3b785e9f024526baa7dbaa2 100644
index 1a1bdbdacf9568e72abaead46a83cbaeef8eb9f3..4fe75086f76cf1962bd5fdc2779e76e6e8f66ef1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3255,5 +3255,10 @@ public final class CraftServer implements Server {

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 b7bfcdf38dcbb784ae6d8e9feaf52c65d73758a5..bfac8119c862e1dd86c1e0ee5851456d010d6012 100644
index f88e61e0017fe3748b29a89d6e6a5b15945a5f90..7a43e724b10f3ab5dbb551d76382778d0d45e95c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1223,11 +1223,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1224,11 +1224,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
// Pufferfish start - tps catchup

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 bfac8119c862e1dd86c1e0ee5851456d010d6012..e4ec12c28d8d3006032690cf363691f039b12312 100644
index 7a43e724b10f3ab5dbb551d76382778d0d45e95c..dc30235821f6e92883dd0864c79aed0e0d10fbee 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -303,7 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -30,7 +30,7 @@ index bfac8119c862e1dd86c1e0ee5851456d010d6012..e4ec12c28d8d3006032690cf363691f0
// 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
@@ -1078,6 +1078,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1079,6 +1079,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 bfac8119c862e1dd86c1e0ee5851456d010d6012..e4ec12c28d8d3006032690cf363691f0
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -1190,14 +1191,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1191,14 +1192,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,7 +74,7 @@ index 38fe7e5014332f45e41a3d5d91c28dd0acfdc3b0..479657ddef21f0279b361117b82549f7
this.values[this.vp++ & 255] = (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 5c30c63c2af21b75e3b785e9f024526baa7dbaa2..555cffaf05116c7c0a3071c83221d10710be62e8 100644
index 4fe75086f76cf1962bd5fdc2779e76e6e8f66ef1..fea5724d193b8b7884f9b85eeeb7e8335f73b71a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3047,6 +3047,7 @@ public final class CraftServer implements Server {

View File

@@ -27,10 +27,10 @@ index 6371f326fc86cfc53e39bf8ed13b646f7705fbbc..3dec0c5fc8dece5341634eaf8e94fe19
return true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 5b4a47e3078a8bf0533228af14c1a1031ec3ae69..6fc02fab7c0eda20abe8274e8b891f95d2c70b62 100644
index 3c2bc3a24bb6ec282e61f35856775d9bc61d6462..3a634ac6d8a7538ec75fc848ca252e062857a4f9 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1911,4 +1911,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1907,4 +1907,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return null;
}
// Paper end - optimize redstone (Alternate Current)

View File

@@ -18,10 +18,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae
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 e4ec12c28d8d3006032690cf363691f039b12312..4a3cd0109f537fe4073b7fa68fbe5bb5a2493a0a 100644
index dc30235821f6e92883dd0864c79aed0e0d10fbee..95e0f93ced1475e00a5b1f35327a5e632c0ccc23 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1695,7 +1695,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1696,7 +1696,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 27b3093aba19e457c7b83dd42dce4e546761644b..9c335df92b0a6c7705c9def89ba5c320
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4a3cd0109f537fe4073b7fa68fbe5bb5a2493a0a..6887e871fe3773df55636749c8d3d65a7cacff83 100644
index 95e0f93ced1475e00a5b1f35327a5e632c0ccc23..f5e85d19693271edf9c62f6959b13a8da0152592 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1052,6 +1052,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1053,6 +1053,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(waitForShutdown, false);
}
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {

View File

@@ -65,10 +65,10 @@ index 246516e67db0b8b197b287c067d5a0163d8bde22..859435f747ceef860cb4e9e825a7353e
public abstract boolean canEnchant(Item item);
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
index 92465b2a9f1483be76004c9f80a1fe15913b3b8b..37688a6908bbad7455ee2c26bba91f282859d272 100644
index 5b7579395e61684592758f408d61cffe57f8b21d..5045e9d133f1675c2498f9bdd46797da8d2924e0 100644
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
@@ -80,6 +80,7 @@ public class CraftEnchantment extends Enchantment {
@@ -71,6 +71,7 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine
case TRIDENT -> EnchantmentTarget.TRIDENT;
case CROSSBOW -> EnchantmentTarget.CROSSBOW;
case VANISHABLE -> EnchantmentTarget.VANISHABLE;

View File

@@ -5,10 +5,52 @@ Subject: [PATCH] Extended OfflinePlayer API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de7901c7e6 100644
index 4a875bce9563f3b9351ebecde9b0eb1287beb50e..42d83cfd9318d6ebe9a5392edef3b667c9e4dac0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
@@ -567,4 +567,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -335,14 +335,26 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@Override
public Location getLocation() {
+ // Purpur start
+ if (this.isOnline()) {
+ return this.getPlayer().getLocation();
+ }
+ // Purpur end
+
CompoundTag data = this.getData();
if (data == null) {
return null;
}
- if (data.contains("Pos") && data.contains("Rotation")) {
- ListTag position = (ListTag) data.get("Pos");
- ListTag rotation = (ListTag) data.get("Rotation");
+ // Purpur start - OfflinePlayer API
+ //if (data.contains("Pos") && data.contains("Rotation")) {
+ ListTag position = data.getList("Pos", net.minecraft.nbt.Tag.TAG_DOUBLE);
+ ListTag rotation = data.getList("Rotation", net.minecraft.nbt.Tag.TAG_FLOAT);
+
+ if (position.isEmpty() && rotation.isEmpty()) {
+ return null;
+ }
+ // Purpur end - OfflinePlayer API
UUID uuid = new UUID(data.getLong("WorldUUIDMost"), data.getLong("WorldUUIDLeast"));
@@ -353,9 +365,9 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
rotation.getFloat(0),
rotation.getFloat(1)
);
- }
+ //} // Purpur - OfflinePlayer API
- return null;
+ //return null; // Purpur - OfflinePlayer API
}
@Override
@@ -598,4 +610,191 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
manager.save();
}
}
@@ -129,28 +171,6 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de
+ }
+
+ @Override
+ public Location getLocation() {
+ if (this.isOnline()) {
+ return this.getPlayer().getLocation();
+ } else {
+ CompoundTag data = this.getData();
+ if (data == null) return null;
+ long worldUUIDMost = data.getLong("WorldUUIDMost");
+ long worldUUIDLeast = data.getLong("WorldUUIDLeast");
+ net.minecraft.nbt.ListTag position = data.getList("Pos", org.bukkit.craftbukkit.util.CraftMagicNumbers.NBT.TAG_DOUBLE);
+ net.minecraft.nbt.ListTag rotation = data.getList("Rotation", org.bukkit.craftbukkit.util.CraftMagicNumbers.NBT.TAG_FLOAT);
+ UUID worldUuid = new UUID(worldUUIDMost, worldUUIDLeast);
+ org.bukkit.World world = server.getWorld(worldUuid);
+ double x = position.getDouble(0);
+ double y = position.getDouble(1);
+ double z = position.getDouble(2);
+ float yaw = rotation.getFloat(0);
+ float pitch = rotation.getFloat(1);
+ return new Location(world, x, y, z, yaw, pitch);
+ }
+ }
+
+ @Override
+ public boolean teleportOffline(Location destination) {
+ if (this.isOnline()) {
+ return this.getPlayer().teleport(destination);
@@ -223,10 +243,10 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4efb8e47a29249cbca52b637d6f721cf2a9afcfb..b2b000ab47897f9d8f47840ae95ef2db478f808c 100644
index 75944838d5527f624c843f3c181cee06edaf08d8..5d5e05ef09f79c78cfac127e8bf161f4f2afc25c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2604,6 +2604,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2619,6 +2619,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f;
}

View File

@@ -162,10 +162,10 @@ index 7f1ffc0ac402fcf0ec086986e959ecc9f78dde03..1351d52374d1c2367932e5ecd5f46379
public int getMinCost(int level) {
return 15 + (level - 1) * 9;
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
index f81faaf6d69b09f635d71491303fca1d494001c5..f782e8dd9d3456f345859dffd69e5830d576ccd1 100644
index 5045e9d133f1675c2498f9bdd46797da8d2924e0..015ea2ecac493c88f45d6ad66c2ef346252b4ec8 100644
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
@@ -81,6 +81,7 @@ public class CraftEnchantment extends Enchantment {
@@ -72,6 +72,7 @@ public class CraftEnchantment extends Enchantment implements Handleable<net.mine
case CROSSBOW -> EnchantmentTarget.CROSSBOW;
case VANISHABLE -> EnchantmentTarget.VANISHABLE;
case BOW_AND_CROSSBOW -> EnchantmentTarget.BOW_AND_CROSSBOW; // Purpur

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 4abb9ecea550d3b01520c914fa06d0608862d694..e61a720155871526192916794514cc540f173cfa 100644
index 801a51b22b3c7821c9a38761d7b5c409df537bd6..f30935957cb210fb725172d498b743d672b66f67 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1063,6 +1063,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1064,6 +1064,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Allow custom ChatDecorators
Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e61a720155871526192916794514cc540f173cfa..b6a7171be7fd9cae6df497e7d222be5bb951b41f 100644
index f30935957cb210fb725172d498b743d672b66f67..f52cb2a78e1fc7fb0c9a08b51474c747feea3c65 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2847,6 +2847,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2848,6 +2848,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Chat Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); // Paper
public ChatDecorator getChatDecorator() {

View File

@@ -56,10 +56,10 @@ index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..166cd0f8e72189d10e56cd7bc095409a
} catch (Exception exception) {
label25:
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c544ca86db8 100644
index f52cb2a78e1fc7fb0c9a08b51474c747feea3c65..331df0f5e5ffcc5d82d712b48b47269a20fea46f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1429,7 +1429,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1430,7 +1430,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
@@ -68,7 +68,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
try {
for (;;) {
boolean moreTasks = this.tickMidTickTasks();
@@ -1456,7 +1456,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1457,7 +1457,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
} finally {
@@ -77,7 +77,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
}
}
// Paper end - execute chunk tasks mid tick
@@ -1531,15 +1531,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1532,15 +1532,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -96,7 +96,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
// Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1576,9 +1576,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1577,9 +1577,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing
@@ -108,7 +108,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
// Paper end
// Paper start - Server Tick Events
long endTime = System.nanoTime();
@@ -1603,7 +1603,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1604,7 +1604,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickTime(l - i);
this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -117,7 +117,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
}
private int computeNextAutosaveInterval() {
@@ -1665,9 +1665,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1666,9 +1666,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing();
});
@@ -129,7 +129,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
// Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> {
@@ -1684,21 +1684,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1685,21 +1685,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");
@@ -156,7 +156,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
// 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()) {
@@ -1718,7 +1718,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1719,7 +1719,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
// Paper end - Perf: Optimize time updates
@@ -165,7 +165,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
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
@@ -1744,14 +1744,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1745,14 +1745,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick");
try {
@@ -182,7 +182,7 @@ index b6a7171be7fd9cae6df497e7d222be5bb951b41f..08404289bd032d94fc02c33b7c4c7c54
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1766,24 +1766,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1767,24 +1767,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
this.profiler.popPush("connection");
@@ -630,7 +630,7 @@ index 009d077f979d5ae85b359f3829038015af347429..b4b256721b7a5d25deec717123501a16
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 7ac11a52e88248de227ab7b85260be9ed5654739..de61e915475a1b3b6faba16673ac1f271527a1b4 100644
index 26ca065482fac4649cf6108789d69b95ea93ea83..af22ffb1fceb2402a2ee82cce844cec05ef1fabf 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2442,7 +2442,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -732,10 +732,10 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index af6def325c97b5a71a671a401d02c1f43b8acd96..ef8b596a02970c514fc6e5e0fb7ded76d82240ac 100644
index 1d254867e7fc69da4306265f6f4e6beb80de2783..2ab6a1bedcdbdb6adc6030ea863bde85ec297e89 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1317,15 +1317,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1313,15 +1313,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("blockEntities");
@@ -754,7 +754,7 @@ index af6def325c97b5a71a671a401d02c1f43b8acd96..ef8b596a02970c514fc6e5e0fb7ded76
// Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally();
@@ -1354,7 +1354,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1350,7 +1350,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
@@ -826,10 +826,10 @@ index 5fab6909bd2ee303f49b7e667617bcae608e82d7..8c0df10efd59594c63cca2a1c22386ac
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index d1b1bc4845fc9519fc892e962c3e7d89da3f14de..7902c649a54fccbb13531c01e052df87ec4a424a 100644
index c1e2d3a75b9d4710ab6d8b5c62af4bc136a2b668..ca8ae8e1c51b937dac916e0b0dc94b5e2e61efeb 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -513,10 +513,10 @@ public class CraftScheduler implements BukkitScheduler {
@@ -515,10 +515,10 @@ public class CraftScheduler implements BukkitScheduler {
this.runners.remove(task.getTaskId());
}
}
@@ -842,7 +842,7 @@ index d1b1bc4845fc9519fc892e962c3e7d89da3f14de..7902c649a54fccbb13531c01e052df87
//this.debugHead = this.debugHead.getNextHead(currentTick); // Paper
}
@@ -559,7 +559,7 @@ public class CraftScheduler implements BukkitScheduler {
@@ -561,7 +561,7 @@ public class CraftScheduler implements BukkitScheduler {
}
void parsePending() { // Paper
@@ -851,7 +851,7 @@ index d1b1bc4845fc9519fc892e962c3e7d89da3f14de..7902c649a54fccbb13531c01e052df87
CraftTask head = this.head;
CraftTask task = head.getNext();
CraftTask lastTask = head;
@@ -578,7 +578,7 @@ public class CraftScheduler implements BukkitScheduler {
@@ -580,7 +580,7 @@ public class CraftScheduler implements BukkitScheduler {
task.setNext(null);
}
this.head = lastTask;

View File

@@ -89,7 +89,7 @@ index 821dc4aeaf48460000682604fba51b340b9738e7..3aa2ce6a2a3d3cdfc372a60419a09f49
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2ed2ab1b9e 100644
index 331df0f5e5ffcc5d82d712b48b47269a20fea46f..c2efe364e3b7d87bb67e48d24c6bf039691c3094 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -342,13 +342,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -124,7 +124,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -1223,20 +1223,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1224,20 +1224,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
boolean flag = i == 0L;
@@ -150,7 +150,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
// Pufferfish start - tps catchup
@@ -1257,8 +1257,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1258,8 +1258,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.tickRateManager.endTickWork();
}
@@ -161,7 +161,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
this.isReady = true;
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
}
@@ -1484,7 +1484,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1485,7 +1485,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void doRunTask(TickTask ticktask) { // CraftBukkit - decompile error
@@ -170,7 +170,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
super.doRunTask(ticktask);
}
@@ -1557,7 +1557,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1558,7 +1558,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (playerSaveInterval < 0) {
playerSaveInterval = autosavePeriod;
}
@@ -179,7 +179,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
try {
this.isSaving = true;
@@ -1572,7 +1572,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1573,7 +1573,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} finally {
this.isSaving = false;
}
@@ -188,7 +188,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
// Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing
@@ -1585,7 +1585,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1586,7 +1586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
// Paper end - Server Tick Events
@@ -197,7 +197,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
long j = Util.getNanos() - i;
int k = this.tickCount % 100;
@@ -1601,7 +1601,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1602,7 +1602,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tickTimes60s.add(this.tickCount, j);
// Paper end - Add tick times API and /mspt command
this.logTickTime(l - i);
@@ -206,7 +206,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
org.spigotmc.WatchdogThread.tick(); // Spigot
//co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper // Purpur
}
@@ -1683,11 +1683,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1684,11 +1684,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 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
//Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
// CraftBukkit start
@@ -1730,18 +1730,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1731,18 +1731,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
@@ -244,7 +244,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
try {
//worldserver.timings.doTick.startTiming(); // Spigot // Purpur
@@ -1759,17 +1759,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1760,17 +1760,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw new ReportedException(crashreport);
}
@@ -266,7 +266,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
//MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper // Purpur
this.playerList.tick();
//MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -1777,7 +1777,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1778,7 +1778,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick();
}
@@ -275,7 +275,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
//MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper // Purpur
for (int i = 0; i < this.tickables.size(); ++i) {
@@ -1785,7 +1785,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1786,7 +1786,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
//MinecraftTimings.tickablesTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -284,7 +284,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
iterator = this.playerList.getPlayers().iterator();
while (iterator.hasNext()) {
@@ -1795,7 +1795,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1796,7 +1796,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
entityplayer.connection.resumeFlushing();
}
@@ -293,7 +293,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
}
private void synchronizeTime(ServerLevel world) {
@@ -1803,7 +1803,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1804,7 +1804,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void forceTimeSynchronization() {
@@ -302,7 +302,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
Iterator iterator = this.getAllLevels().iterator();
while (iterator.hasNext()) {
@@ -1812,7 +1812,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1813,7 +1813,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.synchronizeTime(worldserver);
}
@@ -311,7 +311,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
}
public boolean isNetherEnabled() {
@@ -2476,7 +2476,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2477,7 +2477,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public ProfilerFiller getProfiler() {
@@ -320,7 +320,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
return this.profiler;
}
@@ -2716,7 +2716,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2717,7 +2717,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end
private void startMetricsRecordingTick() {
@@ -329,7 +329,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
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"));
@@ -2726,40 +2726,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2727,40 +2727,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.willStartRecordingMetrics = false;
}
@@ -382,7 +382,7 @@ index 08404289bd032d94fc02c33b7c4c7c544ca86db8..c54df5f7d65b68ed98fef408e3684f2e
}
public Path getWorldPath(LevelResource worldSavePath) {
@@ -2808,15 +2808,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2809,15 +2809,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public boolean isTimeProfilerRunning() {
@@ -1821,10 +1821,10 @@ index 28ef910885dbd48965fba6f08cec412697b1b7f0..02dae407069a0200e271cc9c6f3ec6ff
if (this.fire) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0894f7896 100644
index 2ab6a1bedcdbdb6adc6030ea863bde85ec297e89..0510ab6d164eacb8cede544b98713a132f83002d 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1314,9 +1314,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1310,9 +1310,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
protected void tickBlockEntities() {
@@ -1836,7 +1836,7 @@ index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0
//this.timings.tileEntityPending.startTiming(); // Spigot // Purpur
this.tickingBlockEntities = true;
if (!this.pendingBlockEntityTickers.isEmpty()) {
@@ -1357,7 +1357,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1353,7 +1353,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
//this.timings.tileEntityTick.stopTiming(); // Spigot // Purpur
this.tickingBlockEntities = false;
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
@@ -1845,7 +1845,7 @@ index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0
this.spigotConfig.currentPrimedTnt = 0; // Spigot
}
@@ -1567,7 +1567,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1563,7 +1563,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) {
@@ -1854,7 +1854,7 @@ index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0
List<Entity> list = Lists.newArrayList();
((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call
return list;
@@ -1586,7 +1586,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1582,7 +1582,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public <T extends Entity> void getEntities(EntityTypeTest<Entity, T> filter, AABB box, Predicate<? super T> predicate, List<? super T> result, int limit) {
@@ -1863,7 +1863,7 @@ index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0
// Paper start - optimise this call
//TODO use limit
if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) {
@@ -1845,7 +1845,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1841,7 +1841,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public ProfilerFiller getProfiler() {

View File

@@ -5,7 +5,7 @@ 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 4e8ff16b5ca3cd2ddf2a44c7cd625fbf2311706d..b2d990fda0c144a837ac3c2118da15a77885edcf 100644
index 1718f52b4673f138fb6942839b05ae246e90d0a2..a71d49c80bc8b74216cbc83fa2af87974d85dddd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1583,6 +1583,42 @@ public final class CraftServer implements Server {
@@ -99,10 +99,10 @@ index 8e6d265d612cf2c66270264345b0b54146ce9cb9..9f2d1e3bc19ef541550e4d088343d10e
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index b2b000ab47897f9d8f47840ae95ef2db478f808c..b33bae43348925a0f4f9ca22839084b435e44b00 100644
index 5d5e05ef09f79c78cfac127e8bf161f4f2afc25c..8a9ef91ebc4ed35ceebb31fd4d88fb94bf3c85ed 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3413,5 +3413,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3428,5 +3428,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index b33bae43348925a0f4f9ca22839084b435e44b00..137595efe9e828810cf1f006027ac96606ad8821 100644
index 8a9ef91ebc4ed35ceebb31fd4d88fb94bf3c85ed..f16d150526c99b8a280ec681f8eb548419691357 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3451,5 +3451,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3466,5 +3466,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload()));
}

View File

@@ -36,10 +36,10 @@ index b863249ff7e13cf4939c8961601f0564c62fd661..bdcfd80f937c34956911373905d66424
this.writeId(BuiltInRegistries.ITEM, item);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c54df5f7d65b68ed98fef408e3684f2ed2ab1b9e..2b53c6fb21b08f04c378278f1a5e78e1e4b276d7 100644
index c2efe364e3b7d87bb67e48d24c6bf039691c3094..ac6aec92248aebe3371a72ffd36fc6e784a52c44 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1721,6 +1721,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1722,6 +1722,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
//MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
@@ -48,7 +48,7 @@ index c54df5f7d65b68ed98fef408e3684f2ed2ab1b9e..2b53c6fb21b08f04c378278f1a5e78e1
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 218a6f27986f2e7282ccb1ad9fdc6f8a2ccbb5c5..a56628fb04ccd5a2df4cb98bb4054f0024bf3a06 100644
index 92b3e39d5dfd9c672c00ceb154b2bc0f43256cc9..b120503315ea4389a18333c5a84e664ceddc4ead 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3362,6 +3362,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl