9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-21 15:59:33 +00:00

Update Paper

This commit is contained in:
violetc
2024-01-27 12:44:45 +08:00
parent 7a6fd95894
commit 20ccc9c0ff
28 changed files with 228 additions and 270 deletions

View File

@@ -4,6 +4,6 @@ version=1.20.4-R0.1-SNAPSHOT
mcVersion=1.20.4 mcVersion=1.20.4
packageVersion=1_20_R3 packageVersion=1_20_R3
org.gradle.jvmargs=-Xmx2G org.gradle.jvmargs=-Xmx2G
paperRef=76da4bc683a51057eadfabc6e6694486a20a0d20 paperRef=1ed50dade82437bf45fe74833d7e6ac2961842a2
preVersion=false preVersion=false
updatingMinecraft=false updatingMinecraft=false

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Force peaceful mode switch
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index bf4b94ea2577e9d7e344385209fc0644a4e6bfbb..80243685dfaa7860e8bc8197626b8dbe5318f7a8 100644 index efa2043e044b0e461780e808c347d6ec00f6da0a..359e96f0fc9b9a909351478a0f30e441004c9b3e 100644
--- a/src/main/java/org/bukkit/World.java --- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java
@@ -4236,6 +4236,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -4240,6 +4240,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
void setSendViewDistance(int viewDistance); void setSendViewDistance(int viewDistance);
// Paper end - view distance api // Paper end - view distance api

View File

@@ -153,15 +153,15 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..9ce4d3d96d2d5fbde1f0af599209c6c5
} }
} }
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 559e159a0cfdefb5a0d69224409d91c4ad67371a..29a3ec27139720c293e7455c0a17a8c5cef0f421 100644 index 90ae7e8c81f6a9ede8aeaeec3bf784023522cefc..b6058a9a51f0be9cf36e3226023e6b2f61c7e82b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1851,7 +1851,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1855,7 +1855,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {
- return "Paper"; // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! - return "Paper"; // Paper
+ return top.leavesmc.leaves.LeavesConfig.serverModName; // Leaves - Leaves > //Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! + return top.leavesmc.leaves.LeavesConfig.serverModName; // Leaves - Leaves > //Paper
} }
public SystemReport fillSystemReport(SystemReport details) { public SystemReport fillSystemReport(SystemReport details) {
@@ -183,7 +183,7 @@ index 6de6dad36203479677a29ad61e21bc369d4e5513..b164b09c90b607262938f3c2552d6b57
this.setFlightAllowed(dedicatedserverproperties.allowFlight); this.setFlightAllowed(dedicatedserverproperties.allowFlight);
this.setMotd(dedicatedserverproperties.motd); this.setMotd(dedicatedserverproperties.motd);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 28b02fee73a3ab604f6921800a7ede59e2e6f414..79ea938ffedc1ac24e877bfccba876ba9cfa79b3 100644 index b83c2f1e0ea117eecda94cb51b0ea5bba4d7ab5e..b0b66b9bf0a66c69967b792d0136c39d4036c191 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/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 @@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
@@ -196,7 +196,7 @@ index 28b02fee73a3ab604f6921800a7ede59e2e6f414..79ea938ffedc1ac24e877bfccba876ba
private final String bukkitVersion = Versioning.getBukkitVersion(); private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft"); private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 6542155faa881d06e5db6c8f42823842e787b904..7a6f62787411a1e160576e7a7da4122b4f0ef5b6 100644 index ce341f42b3a5e17fb6d1f7de8057e73137ae2a6e..3825ba1695ea618fa7470281be5392a847d2dfd8 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -301,7 +301,7 @@ public class Main { @@ -301,7 +301,7 @@ public class Main {
@@ -222,7 +222,7 @@ index 774556a62eb240da42e84db4502e2ed43495be17..ca166161ef919c559de9cc02bdf435cb
if (stream != null) { if (stream != null) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5b00c4a50372eda1630f4bae6ef41e242056ac94 100644 index 9e638f72f180ff5ef63ec3dd6cf548c53f7bd4a5..9bd93cae47ed209b39fe90f9c36e55964e24967e 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java --- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -155,14 +155,14 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa @@ -155,14 +155,14 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
@@ -243,7 +243,7 @@ index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5b00c4a50372eda1630f4bae6ef41e24
// //
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null ) if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
{ {
@@ -185,12 +185,12 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa @@ -184,12 +184,12 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
// Paper end // Paper end
} else } else
{ {
@@ -255,10 +255,10 @@ index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5b00c4a50372eda1630f4bae6ef41e24
log.log( Level.SEVERE, "------------------------------" ); log.log( Level.SEVERE, "------------------------------" );
- log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper - log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper
+ log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Leaves!):" ); // Paper // Leaevs + log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Leaves!):" ); // Paper // Leaevs
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper // Paper - rewrite chunk system io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system
this.dumpTickingInfo(); // Paper - log detailed tick information this.dumpTickingInfo(); // Paper - log detailed tick information
WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log ); WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log );
@@ -206,7 +206,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa @@ -205,7 +205,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
WatchdogThread.dumpThread( thread, log ); WatchdogThread.dumpThread( thread, log );
} }
} else { } else {

View File

@@ -191,11 +191,10 @@ index 4b467f1af93452d13829f756d55dee18b8889d40..e69de29bb2d1d6434b8b29ae775ad8c2
- } - }
-} -}
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
deleted file mode 100644 index 7620c72a4c243cbeea245203ce03a97cbfa7d922..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
index a2f71a6d1a9e98133dff6cd0f625da9435a8af14..0000000000000000000000000000000000000000
--- a/src/main/java/co/aikar/timings/TimingsExport.java --- a/src/main/java/co/aikar/timings/TimingsExport.java
+++ /dev/null +++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -1,390 +0,0 @@ @@ -1,388 +0,0 @@
-/* -/*
- * This file is licensed under the MIT License (MIT). - * This file is licensed under the MIT License (MIT).
- * - *
@@ -361,11 +360,9 @@ index a2f71a6d1a9e98133dff6cd0f625da9435a8af14..00000000000000000000000000000000
- pair("gamerules", toObjectMapper(world.getWorld().getGameRules(), rule -> { - pair("gamerules", toObjectMapper(world.getWorld().getGameRules(), rule -> {
- return pair(rule, world.getWorld().getGameRuleValue(rule)); - return pair(rule, world.getWorld().getGameRuleValue(rule));
- })), - })),
- // Paper start - replace chunk loader system
- pair("ticking-distance", world.getWorld().getSimulationDistance()), - pair("ticking-distance", world.getWorld().getSimulationDistance()),
- pair("no-ticking-distance", world.getWorld().getViewDistance()), - pair("no-ticking-distance", world.getWorld().getViewDistance()),
- pair("sending-distance", world.getWorld().getSendViewDistance()) - pair("sending-distance", world.getWorld().getSendViewDistance())
- // Paper end - replace chunk loader system
- )); - ));
- })); - }));
- -
@@ -859,7 +856,7 @@ index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..d0a487f0d563181818c5670749e8dd3a
} catch (Exception exception) { } catch (Exception exception) {
label25: label25:
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d44255943016743 100644 index b6058a9a51f0be9cf36e3226023e6b2f61c7e82b..93412c3eb947afb1ad6ee8dba9864b2d310e0624 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -3,9 +3,6 @@ package net.minecraft.server; @@ -3,9 +3,6 @@ package net.minecraft.server;
@@ -889,7 +886,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
// CraftBukkit start // CraftBukkit start
if (this.server != null) { if (this.server != null) {
this.server.disablePlugins(); this.server.disablePlugins();
@@ -1392,34 +1386,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1396,34 +1390,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return; return;
} }
@@ -943,7 +940,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
} }
} }
// Paper end - execute chunk tasks mid tick // Paper end - execute chunk tasks mid tick
@@ -1494,15 +1483,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1498,15 +1487,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void tickServer(BooleanSupplier shouldKeepTicking) { public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -961,7 +958,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
// Paper end // Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1539,9 +1527,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1543,9 +1531,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Incremental chunk and player saving // Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing // Paper start - move executeAll() into full server tick timing
@@ -972,7 +969,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
// Paper end // Paper end
// Paper start - Server Tick Events // Paper start - Server Tick Events
long endTime = System.nanoTime(); long endTime = System.nanoTime();
@@ -1566,7 +1552,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1570,7 +1556,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickTime(l - i); this.logTickTime(l - i);
this.profiler.pop(); this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -980,7 +977,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
} }
private int computeNextAutosaveInterval() { private int computeNextAutosaveInterval() {
@@ -1628,9 +1613,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1632,9 +1617,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> { this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing(); entityplayer.connection.suspendFlushing();
}); });
@@ -990,7 +987,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
// Paper start - Folia scheduler API // Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> { getAllLevels().forEach(level -> {
@@ -1647,21 +1630,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1651,21 +1634,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Folia scheduler API // Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
this.profiler.push("commandFunctions"); this.profiler.push("commandFunctions");
@@ -1012,7 +1009,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
// Send time updates to everyone, it will get the right time from the world the player is in. // Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - Perf: Optimize time updates // Paper start - Perf: Optimize time updates
for (final ServerLevel level : this.getAllLevels()) { for (final ServerLevel level : this.getAllLevels()) {
@@ -1681,7 +1659,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1685,7 +1663,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
} }
// Paper end - Perf: Optimize time updates // Paper end - Perf: Optimize time updates
@@ -1020,7 +1017,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked 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 Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
@@ -1706,14 +1683,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1710,14 +1687,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick"); this.profiler.push("tick");
try { try {
@@ -1035,7 +1032,7 @@ index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d442559
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1728,24 +1703,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1732,24 +1707,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
this.profiler.popPush("connection"); this.profiler.popPush("connection");
@@ -1111,7 +1108,7 @@ index b164b09c90b607262938f3c2552d6b5790c27786..b0708f5d72a31720e3696ee707ec2122
// Paper start // Paper start
if (waitableArray[0] != null) { if (waitableArray[0] != null) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed4bd1a28d 100644 index 5a7278b093e37b95fb005ad5cc3cac90ac36f8fb..78f02c2e068a63648f6d650a48a1cf21c5da1545 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,13 +1,10 @@ @@ -1,13 +1,10 @@
@@ -1198,7 +1195,7 @@ index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed
import org.slf4j.Logger; import org.slf4j.Logger;
// CraftBukkit start // CraftBukkit start
@@ -546,15 +532,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -540,15 +526,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
protected void tick(BooleanSupplier shouldKeepTicking) { protected void tick(BooleanSupplier shouldKeepTicking) {
ProfilerFiller gameprofilerfiller = this.level.getProfiler(); ProfilerFiller gameprofilerfiller = this.level.getProfiler();
@@ -1214,7 +1211,7 @@ index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed
} }
gameprofilerfiller.pop(); gameprofilerfiller.pop();
@@ -1147,24 +1129,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1141,24 +1123,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - optimised tracker // Paper start - optimised tracker
private final void processTrackQueue() { private final void processTrackQueue() {
@@ -1244,7 +1241,7 @@ index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed
} }
} }
// Paper end - optimised tracker // Paper end - optimised tracker
@@ -1179,7 +1151,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1173,7 +1145,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
List<ServerPlayer> list = Lists.newArrayList(); List<ServerPlayer> list = Lists.newArrayList();
List<ServerPlayer> list1 = this.level.players(); List<ServerPlayer> list1 = this.level.players();
ObjectIterator objectiterator = this.entityMap.values().iterator(); ObjectIterator objectiterator = this.entityMap.values().iterator();
@@ -1252,7 +1249,7 @@ index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed
ChunkMap.TrackedEntity playerchunkmap_entitytracker; ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1204,17 +1175,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1198,17 +1169,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges(); playerchunkmap_entitytracker.serverEntity.sendChanges();
} }
} }
@@ -1271,21 +1268,21 @@ index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a334b75a2 100644 index 366c0c9b45a819f7f94ebe3e49b8ab7f9edf9ce7..2a19a45e9c7ac4646ce89c566b5fec21281c45b9 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -293,10 +293,8 @@ public class ServerChunkCache extends ChunkSource { @@ -278,10 +278,8 @@ public class ServerChunkCache extends ChunkSource {
if (!completablefuture.isDone()) { // Paper
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
// Paper end com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - Add debug for sync chunk loads
- this.level.timings.syncChunkLoad.startTiming(); // Paper - this.level.timings.syncChunkLoad.startTiming(); // Paper
chunkproviderserver_b.managedBlock(completablefuture::isDone); chunkproviderserver_b.managedBlock(completablefuture::isDone);
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - rewrite chunk system
- this.level.timings.syncChunkLoad.stopTiming(); // Paper - this.level.timings.syncChunkLoad.stopTiming(); // Paper
} // Paper } // Paper
ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> { ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1; return ichunkaccess1;
@@ -445,17 +443,13 @@ public class ServerChunkCache extends ChunkSource { @@ -430,17 +428,13 @@ public class ServerChunkCache extends ChunkSource {
public void save(boolean flush) { public void save(boolean flush) {
this.runDistanceManagerUpdates(); this.runDistanceManagerUpdates();
@@ -1304,7 +1301,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a
} }
// Paper end - Incremental chunk and player saving // Paper end - Incremental chunk and player saving
@@ -492,23 +486,17 @@ public class ServerChunkCache extends ChunkSource { @@ -477,23 +471,17 @@ public class ServerChunkCache extends ChunkSource {
@Override @Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
this.level.getProfiler().push("purge"); this.level.getProfiler().push("purge");
@@ -1328,7 +1325,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a
this.level.getProfiler().pop(); this.level.getProfiler().pop();
this.clearCache(); this.clearCache();
} }
@@ -524,13 +512,11 @@ public class ServerChunkCache extends ChunkSource { @@ -509,13 +497,11 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("pollingChunks");
gameprofilerfiller.push("filteringLoadedChunks"); gameprofilerfiller.push("filteringLoadedChunks");
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
@@ -1342,7 +1339,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a
int k = this.distanceManager.getNaturalSpawnChunkCount(); int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - Optional per player mob spawns // Paper start - Optional per player mob spawns
int naturalSpawnChunkCount = k; int naturalSpawnChunkCount = k;
@@ -555,7 +541,6 @@ public class ServerChunkCache extends ChunkSource { @@ -540,7 +526,6 @@ public class ServerChunkCache extends ChunkSource {
spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false);
} }
// Paper end - Optional per player mob spawns // Paper end - Optional per player mob spawns
@@ -1350,7 +1347,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a
this.lastSpawnState = spawnercreature_d; this.lastSpawnState = spawnercreature_d;
gameprofilerfiller.popPush("spawnAndTick"); gameprofilerfiller.popPush("spawnAndTick");
@@ -664,19 +649,14 @@ public class ServerChunkCache extends ChunkSource { @@ -649,19 +634,14 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
@@ -1370,7 +1367,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a
// Paper start - optimise chunk tick iteration // Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone(); it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -690,8 +670,6 @@ public class ServerChunkCache extends ChunkSource { @@ -675,8 +655,6 @@ public class ServerChunkCache extends ChunkSource {
} }
} }
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
@@ -1380,7 +1377,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 284bf39fbf1e21f3d9b628c3fe309e1b7e305bed..cc50dd6b75f0d2ed2202c39598c5c9b1c3090d0f 100644 index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..8e43a6817e9101b6dcc956e3b6f4bcff63a4c2fc 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
@@ -1450,7 +1447,7 @@ index 284bf39fbf1e21f3d9b628c3fe309e1b7e305bed..cc50dd6b75f0d2ed2202c39598c5c9b1
this.tickBlockEntities(); this.tickBlockEntities();
} }
@@ -1033,7 +1020,6 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1033,7 +1020,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
} // Paper } // Paper - Option to disable ice and snow
gameprofilerfiller.popPush("tickBlocks"); gameprofilerfiller.popPush("tickBlocks");
- timings.chunkTicksBlocks.startTiming(); // Paper - timings.chunkTicksBlocks.startTiming(); // Paper
@@ -1578,7 +1575,7 @@ index 284bf39fbf1e21f3d9b628c3fe309e1b7e305bed..cc50dd6b75f0d2ed2202c39598c5c9b1
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system } 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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 42b433d9461d0912b39542263684323369469ac0..1461ee40c7b563869e75c036bfb0dd2656bc780f 100644 index 8ca5d7c1bfacb1b47aa680eee167af08d0396ae0..062c5a2988bfbe52d73e3a88aee02298d85ed4f9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2380,7 +2380,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2380,7 +2380,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1754,7 +1751,7 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..b68c69a7ab71926ecf478d8daa5ec5ac
} }
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 9fd2fcf8437c866e4fe7a44108cde338e1a9f9a2..111d28fc2e26783a714b10f91877b09f5e8f8fa1 100644 index 8f437225d2a4e08ca47873cd42277d9f0f9f5529..1d2ef62752b15e5f08536ccd20d0a5a19b218702 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1,10 +1,7 @@ @@ -1,10 +1,7 @@
@@ -1824,10 +1821,10 @@ index 9fd2fcf8437c866e4fe7a44108cde338e1a9f9a2..111d28fc2e26783a714b10f91877b09f
}); });
// CraftBukkit end // CraftBukkit end
- this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings - this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper - Option to keep spawn chunks loaded
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
@@ -1269,15 +1257,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1265,15 +1253,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
ProfilerFiller gameprofilerfiller = this.getProfiler(); ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("blockEntities"); gameprofilerfiller.push("blockEntities");
@@ -1843,7 +1840,7 @@ index 9fd2fcf8437c866e4fe7a44108cde338e1a9f9a2..111d28fc2e26783a714b10f91877b09f
// Spigot start // Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator(); // Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally(); boolean flag = this.tickRateManager().runsNormally();
@@ -1306,9 +1291,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1302,9 +1287,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
@@ -1892,7 +1889,7 @@ index 73d6f881a7d4d8ff96040d34ac502e5b0937d577..e815d53c327709d977045e016f8d2e93
@Nullable @Nullable
private String descriptionId; private String descriptionId;
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
index 4ce7a7947fa727e64556148f923508ce76c128c4..bfc81572df24b5afbacee6f290cffaa9ca3e01c1 100644 index 9ea74d37cd951e0dc76d20ed8234b5871035566c..fc55527c36c33f12760e1cf4cde7cfd3913b0fa8 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -21,14 +21,9 @@ import org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry; @@ -21,14 +21,9 @@ import org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry;
@@ -1911,7 +1908,7 @@ index 4ce7a7947fa727e64556148f923508ce76c128c4..bfc81572df24b5afbacee6f290cffaa9
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
public CraftPersistentDataContainer persistentDataContainer; public CraftPersistentDataContainer persistentDataContainer;
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index f6bfe4dc7c2c2c7d7d7852c76f15f84928bc3e9f..b2807c4493a558e2fd11b2a1f04593c6299d5874 100644 index 6ec3fc801453fd54c25b642e6fa71c19b463311d..44b9aaa534a4683b2924a2aa61a92218f9c846b3 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -785,7 +785,6 @@ public class LevelChunk extends ChunkAccess { @@ -785,7 +785,6 @@ public class LevelChunk extends ChunkAccess {
@@ -1940,7 +1937,7 @@ index f6bfe4dc7c2c2c7d7d7852c76f15f84928bc3e9f..b2807c4493a558e2fd11b2a1f04593c6
if (this.blockEntity.getType().isValid(iblockdata)) { if (this.blockEntity.getType().isValid(iblockdata)) {
@@ -1184,9 +1181,6 @@ public class LevelChunk extends ChunkAccess { @@ -1184,9 +1181,6 @@ public class LevelChunk extends ChunkAccess {
LevelChunk.this.removeBlockEntity(this.getPos()); LevelChunk.this.removeBlockEntity(this.getPos());
// Paper end // Paper end - Prevent block entity and entity crashes
// Spigot start // Spigot start
- } finally { - } finally {
- this.blockEntity.tickTimer.stopTiming(); - this.blockEntity.tickTimer.stopTiming();
@@ -1949,10 +1946,10 @@ index f6bfe4dc7c2c2c7d7d7852c76f15f84928bc3e9f..b2807c4493a558e2fd11b2a1f04593c6
} }
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 7a6f62787411a1e160576e7a7da4122b4f0ef5b6..cac0f51ff4f6b1bc498d24fa8ecdb910b3d8f010 100644 index 3825ba1695ea618fa7470281be5392a847d2dfd8..7a266257b1220098a6c829ccf1c597b7e510205a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -343,8 +343,8 @@ public class Main { @@ -344,8 +344,8 @@ public class Main {
tryPreloadClass("org.jline.terminal.impl.MouseSupport"); tryPreloadClass("org.jline.terminal.impl.MouseSupport");
tryPreloadClass("org.jline.terminal.impl.MouseSupport$1"); tryPreloadClass("org.jline.terminal.impl.MouseSupport$1");
tryPreloadClass("org.jline.terminal.Terminal$MouseTracking"); tryPreloadClass("org.jline.terminal.Terminal$MouseTracking");
@@ -1963,7 +1960,7 @@ index 7a6f62787411a1e160576e7a7da4122b4f0ef5b6..cac0f51ff4f6b1bc498d24fa8ecdb910
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext"); tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11"); tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12"); tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12");
@@ -357,7 +357,7 @@ public class Main { @@ -358,7 +358,7 @@ public class Main {
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1"); tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1");
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2"); tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2");
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3"); tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3");
@@ -1973,7 +1970,7 @@ index 7a6f62787411a1e160576e7a7da4122b4f0ef5b6..cac0f51ff4f6b1bc498d24fa8ecdb910
tryPreloadClass("org.slf4j.helpers.FormattingTuple"); tryPreloadClass("org.slf4j.helpers.FormattingTuple");
tryPreloadClass("org.slf4j.helpers.BasicMarker"); tryPreloadClass("org.slf4j.helpers.BasicMarker");
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 700932b65e4fda560d684b0aa079bcee3923f73e..74ff54724626908a083063c54983e0adfbbf7749 100644 index e85b9bb3f9c225d289a4959921970b9963881199..bb9383f1a457433f9db3e78d7913616280925200 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -1983,7 +1980,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..74ff54724626908a083063c54983e0ad
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.util.ArrayList; import java.util.ArrayList;
@@ -302,7 +301,7 @@ public class CraftScheduler implements BukkitScheduler { @@ -304,7 +303,7 @@ public class CraftScheduler implements BukkitScheduler {
} }
return false; return false;
} }
@@ -1992,7 +1989,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..74ff54724626908a083063c54983e0ad
this.handle(task, 0L); this.handle(task, 0L);
for (CraftTask taskPending = this.head.getNext(); taskPending != null; taskPending = taskPending.getNext()) { for (CraftTask taskPending = this.head.getNext(); taskPending != null; taskPending = taskPending.getNext()) {
if (taskPending == task) { if (taskPending == task) {
@@ -342,7 +341,7 @@ public class CraftScheduler implements BukkitScheduler { @@ -344,7 +343,7 @@ public class CraftScheduler implements BukkitScheduler {
} }
} }
} }
@@ -2001,7 +1998,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..74ff54724626908a083063c54983e0ad
this.handle(task, 0L); this.handle(task, 0L);
for (CraftTask taskPending = this.head.getNext(); taskPending != null; taskPending = taskPending.getNext()) { for (CraftTask taskPending = this.head.getNext(); taskPending != null; taskPending = taskPending.getNext()) {
if (taskPending == task) { if (taskPending == task) {
@@ -513,10 +512,8 @@ public class CraftScheduler implements BukkitScheduler { @@ -515,10 +514,8 @@ public class CraftScheduler implements BukkitScheduler {
this.runners.remove(task.getTaskId()); this.runners.remove(task.getTaskId());
} }
} }
@@ -2012,7 +2009,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..74ff54724626908a083063c54983e0ad
//this.debugHead = this.debugHead.getNextHead(currentTick); // Paper //this.debugHead = this.debugHead.getNextHead(currentTick); // Paper
} }
@@ -559,7 +556,6 @@ public class CraftScheduler implements BukkitScheduler { @@ -561,7 +558,6 @@ public class CraftScheduler implements BukkitScheduler {
} }
void parsePending() { // Paper void parsePending() { // Paper
@@ -2020,7 +2017,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..74ff54724626908a083063c54983e0ad
CraftTask head = this.head; CraftTask head = this.head;
CraftTask task = head.getNext(); CraftTask task = head.getNext();
CraftTask lastTask = head; CraftTask lastTask = head;
@@ -578,7 +574,6 @@ public class CraftScheduler implements BukkitScheduler { @@ -580,7 +576,6 @@ public class CraftScheduler implements BukkitScheduler {
task.setNext(null); task.setNext(null);
} }
this.head = lastTask; this.head = lastTask;
@@ -2107,7 +2104,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab3
} }
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 509f8487a170f3dc84b091acf16df26e42391189..c00c8655db9813eac0498da6c0c75d9b199d6c7d 100644 index 4e1390b9244aeb745ffd3fd1257bc74248722515..e0eb1cd5cd439a538105719eb215307fc3705012 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -212,7 +212,6 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -212,7 +212,6 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -2119,7 +2116,7 @@ index 509f8487a170f3dc84b091acf16df26e42391189..c00c8655db9813eac0498da6c0c75d9b
// Paper end // Paper end
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..97806af3f12bc44036418b2829191e0f83519ce5 100644 index c39894e824334f1dc52e0466cf9d84f7e219be70..efb7f957c72088e40946a2eeb8d955f156163c24 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java --- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; @@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity;
@@ -2138,7 +2135,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..97806af3f12bc44036418b2829191e0f
final int miscActivationRange = world.spigotConfig.miscActivationRange; final int miscActivationRange = world.spigotConfig.miscActivationRange;
final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int raiderActivationRange = world.spigotConfig.raiderActivationRange;
final int animalActivationRange = world.spigotConfig.animalActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange;
@@ -225,7 +223,6 @@ public class ActivationRange @@ -224,7 +222,6 @@ public class ActivationRange
} }
// Paper end // Paper end
} }

View File

@@ -31,7 +31,7 @@ index 46954db7ecd35ac4018fdf476df7c8020d7ce6c8..044c51ebb058fc36074fd178929e3279
public PlayerAreaMap() { public PlayerAreaMap() {
super(); super();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 7ceb4ec480d8799d0bdbd645e5760d2c952b679b..552a68cacea57fec0dcaf22672ba8e12c677ee5f 100644 index 2c06f3ebf7e1069727387bfc60db30c958c14b5a..12e8a6794669496c0fa554be3947fac56f773d5d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -42,7 +42,7 @@ index 7ceb4ec480d8799d0bdbd645e5760d2c952b679b..552a68cacea57fec0dcaf22672ba8e12
public void setOrigin(@javax.annotation.Nonnull Location location) { public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector(); this.origin = location.toVector();
@@ -2479,6 +2480,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2476,6 +2477,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
nbttagcompound.putBoolean("Paper.FreezeLock", true); nbttagcompound.putBoolean("Paper.FreezeLock", true);
} }
// Paper end // Paper end
@@ -50,7 +50,7 @@ index 7ceb4ec480d8799d0bdbd645e5760d2c952b679b..552a68cacea57fec0dcaf22672ba8e12
return nbttagcompound; return nbttagcompound;
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2626,6 +2628,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2623,6 +2625,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
freezeLocked = nbt.getBoolean("Paper.FreezeLock"); freezeLocked = nbt.getBoolean("Paper.FreezeLock");
} }
// Paper end // Paper end
@@ -62,7 +62,7 @@ index 7ceb4ec480d8799d0bdbd645e5760d2c952b679b..552a68cacea57fec0dcaf22672ba8e12
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
@@ -4915,4 +4922,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4909,4 +4916,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Server Config And Command
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index a09aef16a58bf713ec670ad23d44255943016743..38c52f07f7790ff1b6aa0c8f19db98cb36e9ce7c 100644 index 93412c3eb947afb1ad6ee8dba9864b2d310e0624..9d50d30670d9ac0ffa74eb6da2e84b5bd069839c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1141,6 +1141,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1142,6 +1142,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.info("Done ({})! For help, type \"help\"", doneTime); LOGGER.info("Done ({})! For help, type \"help\"", doneTime);
// Paper end // Paper end
@@ -31,7 +31,7 @@ index b0708f5d72a31720e3696ee707ec21229672bcf0..129c2e6f0cc9d752e7ca5934e13e8935
this.setPvpAllowed(dedicatedserverproperties.pvp); this.setPvpAllowed(dedicatedserverproperties.pvp);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 79ea938ffedc1ac24e877bfccba876ba9cfa79b3..a3b2948912a6a6e2a6131efdaf7e17d0e6feb3b3 100644 index b0b66b9bf0a66c69967b792d0136c39d4036c191..f9a32d3aa3a1bf6fbdfaa78781afe058af921267 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1064,6 +1064,7 @@ public final class CraftServer implements Server { @@ -1064,6 +1064,7 @@ public final class CraftServer implements Server {
@@ -42,7 +42,7 @@ index 79ea938ffedc1ac24e877bfccba876ba9cfa79b3..a3b2948912a6a6e2a6131efdaf7e17d0
this.reloadData(); this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
@@ -3009,6 +3010,14 @@ public final class CraftServer implements Server { @@ -2997,6 +2998,14 @@ public final class CraftServer implements Server {
{ {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
} }
@@ -58,7 +58,7 @@ index 79ea938ffedc1ac24e877bfccba876ba9cfa79b3..a3b2948912a6a6e2a6131efdaf7e17d0
@Override @Override
public void restart() { public void restart() {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index cac0f51ff4f6b1bc498d24fa8ecdb910b3d8f010..0373c1cc266316fc29a789e0f193935e288dbb06 100644 index 7a266257b1220098a6c829ccf1c597b7e510205a..e85a4aaab6fb6d1784494aad0189539c2852de0f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java --- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -166,6 +166,14 @@ public class Main { @@ -166,6 +166,14 @@ public class Main {

View File

@@ -23,10 +23,10 @@ index af86f752c33a2990405fea058b7c41c437ba9d46..bada9fae1e7178162429e1f5a1608b9c
} }
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 38c52f07f7790ff1b6aa0c8f19db98cb36e9ce7c..5582fc4548cdaef69f4cf888f02d6d280adb3eaf 100644 index 9d50d30670d9ac0ffa74eb6da2e84b5bd069839c..3ab53e1eee43c048ec89f8bda610e35efa5a52aa 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1713,6 +1713,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1717,6 +1717,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("server gui refresh"); this.profiler.popPush("server gui refresh");
@@ -77,7 +77,7 @@ index 257b4fd11d398513a61485ab2019b30eb0d2c9ac..753c10ca9e802e11f5b9b03b5df8e047
ServerLevel worldserver = entityplayer.serverLevel(); ServerLevel worldserver = entityplayer.serverLevel();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a3b2948912a6a6e2a6131efdaf7e17d0e6feb3b3..da4660b93b64100ed0f30cde5bcaafa64174fb7a 100644 index f9a32d3aa3a1bf6fbdfaa78781afe058af921267..b1c8806e65c97bbeb96ea03aae0ffba9f5d7ae5b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -463,6 +463,7 @@ public final class CraftServer implements Server { @@ -463,6 +463,7 @@ public final class CraftServer implements Server {

View File

@@ -5,48 +5,26 @@ Subject: [PATCH] Fix gravity block duper
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 552a68cacea57fec0dcaf22672ba8e12c677ee5f..fc27159b0638a1ddbf146e8036249daea59e6642 100644 index 12e8a6794669496c0fa554be3947fac56f773d5d..6221f9a0d6db86ca3adcd72842dfce3c9d0b8a34 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -505,36 +505,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -440,6 +440,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.originWorld;
public boolean updatingSectionStatus = false; }
// Paper end // Paper end - Entity origin API
- // Paper start - make end portalling safe + /* Leaves - fix gravity block duper
- public BlockPos portalBlock; // Paper start - make end portalling safe
- public ServerLevel portalWorld; public BlockPos portalBlock;
- public void tickEndPortal() { public ServerLevel portalWorld;
- BlockPos pos = this.portalBlock; @@ -470,6 +471,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
- ServerLevel world = this.portalWorld; this.teleportTo(worldserver, null);
- this.portalBlock = null; }
- this.portalWorld = null; // Paper end - make end portalling safe
- + */
- if (pos == null || world == null || world != this.level) {
- return;
- }
-
- if (this.isPassenger() || this.isVehicle() || !this.canChangeDimensions() || this.isRemoved() || !this.valid || !this.isAlive()) {
- return;
- }
-
- ResourceKey<Level> resourcekey = world.getTypeKey() == LevelStem.END ? Level.OVERWORLD : Level.END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends
- ServerLevel worldserver = world.getServer().getLevel(resourcekey);
-
- org.bukkit.event.entity.EntityPortalEnterEvent event = new org.bukkit.event.entity.EntityPortalEnterEvent(this.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
- event.callEvent();
-
- if (this instanceof ServerPlayer) {
- ((ServerPlayer) this).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL);
- return;
- }
- this.teleportTo(worldserver, null);
- }
- // Paper end - make end portalling safe
+ // Leaves - fix gravity block duper
// Paper start - optimise entity tracking // Paper start - optimise entity tracking
final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this);
@@ -3182,7 +3153,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3179,7 +3181,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.processPortalCooldown(); this.processPortalCooldown();
@@ -56,7 +34,7 @@ index 552a68cacea57fec0dcaf22672ba8e12c677ee5f..fc27159b0638a1ddbf146e8036249dae
} }
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
index a75e48f27cd8fbf6165c96c5df09671494eb9dd8..177317d75ccb2a75f75a814f10429f3b5ee0875c 100644 index 9daf8aa557d9f4fdbcc138a47892ea5a061dd877..09f227c8b5a62497e943fb06d21abe4556b0a888 100644
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -132,11 +132,7 @@ public class FallingBlockEntity extends Entity { @@ -132,11 +132,7 @@ public class FallingBlockEntity extends Entity {
@@ -72,19 +50,22 @@ index a75e48f27cd8fbf6165c96c5df09671494eb9dd8..177317d75ccb2a75f75a814f10429f3b
if (this.blockState.isAir()) { if (this.blockState.isAir()) {
this.discard(); this.discard();
} else { } else {
@@ -149,11 +145,7 @@ public class FallingBlockEntity extends Entity { @@ -148,12 +144,14 @@ public class FallingBlockEntity extends Entity {
}
this.move(MoverType.SELF, this.getDeltaMovement()); this.move(MoverType.SELF, this.getDeltaMovement());
+ /* // Leaves - fix gravity block duper
- // Paper start - fix sand duping // Paper start - fix sand duping
- if (this.isRemoved()) { if (this.isRemoved()) {
- return; return;
- } }
- // Paper end - fix sand duping // Paper end - fix sand duping
+ // Leaves - fix gravity block duper - // Paper start - Configurable falling blocks height nerf
+ */
// Paper start - Configurable EntityFallingBlock height nerf + // Paper start - Configurable EntityFallingBlock height nerf
if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) { if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) {
if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
this.spawnAtLocation(block);
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index a0c1db8cfebaa0344012cc0af18d6231cdcdcbb8..6482c2456d9dc9b4983f691f388b7ec045d2cab6 100644 index a0c1db8cfebaa0344012cc0af18d6231cdcdcbb8..6482c2456d9dc9b4983f691f388b7ec045d2cab6 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java

View File

@@ -36,7 +36,7 @@ index b189aeb8646b5385c7cca0c4babfcb071a642220..d6179829579a07c29565d024f5306937
if (this.packetListener != null) { if (this.packetListener != null) {
throw new IllegalStateException("Listener already set"); throw new IllegalStateException("Listener already set");
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 5582fc4548cdaef69f4cf888f02d6d280adb3eaf..d90955687caa5fbe925c55184ac14fa3946afa74 100644 index 3ab53e1eee43c048ec89f8bda610e35efa5a52aa..487cc5b0d980d9e910695440fb7da8704fdb2b72 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -663,6 +663,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -663,6 +663,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -73,10 +73,10 @@ index 24e5993b281448734eb67c7a8439a349bbf9fd72..677c4d5360509f212ccbe4ff7418e0e7
AdvancementProgress advancementprogress = this.getOrStartProgress(advancement); AdvancementProgress advancementprogress = this.getOrStartProgress(advancement);
boolean flag1 = advancementprogress.isDone(); boolean flag1 = advancementprogress.isDone();
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 5c94fb3f0d586ef1b8554549491f3eed4bd1a28d..69a8dc72609e73c85581ac782b3d5ae09ed7c7f7 100644 index 78f02c2e068a63648f6d650a48a1cf21c5da1545..85be9376fe30f18fe4fea437955f1a60c5c3f05a 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1413,6 +1413,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1407,6 +1407,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
} }
} else if (this.seenBy.remove(player.connection)) { } else if (this.seenBy.remove(player.connection)) {
this.serverEntity.removePairing(player); this.serverEntity.removePairing(player);
@@ -91,7 +91,7 @@ index 5c94fb3f0d586ef1b8554549491f3eed4bd1a28d..69a8dc72609e73c85581ac782b3d5ae0
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 4a0df97430cf025d1e830f681ef791ecec985102..23260d76c00e37df8499168ebfae21f0ee077cca 100644 index 0dba30c41affafe7b1d585b515925043b37712fa..6767665e55ca1ec9cf2707918c349fd3ea5ada8a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent; @@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
@@ -102,25 +102,27 @@ index 4a0df97430cf025d1e830f681ef791ecec985102..23260d76c00e37df8499168ebfae21f0
// CraftBukkit end // CraftBukkit end
public class ServerPlayer extends Player { public class ServerPlayer extends Player {
@@ -730,15 +731,19 @@ public class ServerPlayer extends Player { @@ -729,16 +730,20 @@ public class ServerPlayer extends Player {
--this.invulnerableTime;
} }
// Paper start - Configurable container update tick rate - // Paper start - Configurable container update tick rate
- if (--containerUpdateDelay <= 0) { - if (--containerUpdateDelay <= 0) {
- this.containerMenu.broadcastChanges(); - this.containerMenu.broadcastChanges();
- containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate; - containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
- } - }
- // Paper end - // Paper end - Configurable container update tick rate
- if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - Prevent opening inventories when frozen - if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - Prevent opening inventories when frozen
- this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason - this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason
- this.containerMenu = this.inventoryMenu; - this.containerMenu = this.inventoryMenu;
+ // Leaves start - skip bot + // Leaves start - skip bot
+ if (!(this instanceof ServerBot)) { + if (!(this instanceof ServerBot)) {
+ // Paper start - Configurable container update tick rate
+ if (--containerUpdateDelay <= 0) { + if (--containerUpdateDelay <= 0) {
+ this.containerMenu.broadcastChanges(); + this.containerMenu.broadcastChanges();
+ containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate; + containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
+ } + }
+ // Paper end + // Paper end - Configurable container update tick rate
+ if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - Prevent opening inventories when frozen + if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - Prevent opening inventories when frozen
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason + this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason
+ this.containerMenu = this.inventoryMenu; + this.containerMenu = this.inventoryMenu;
@@ -163,7 +165,7 @@ index 4a0df97430cf025d1e830f681ef791ecec985102..23260d76c00e37df8499168ebfae21f0
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
this.level().getCraftServer().getPluginManager().callEvent(changeEvent); this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1461ee40c7b563869e75c036bfb0dd2656bc780f..22b7041cb524dfd9fff6bbfb8e47d69de0a3ac80 100644 index 062c5a2988bfbe52d73e3a88aee02298d85ed4f9..921597295126057261b76771d19ea721353ef445 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -298,7 +298,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -298,7 +298,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -266,10 +268,10 @@ index 753c10ca9e802e11f5b9b03b5df8e047f14aece2..7612ee6c93c4ad783d71b125ed3b2fe9
+ // Leaves end - fakeplayer support + // Leaves end - fakeplayer support
} }
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index fc27159b0638a1ddbf146e8036249daea59e6642..30a2cd24727d1cffc31b077b383487f3bdb6ce4a 100644 index 6221f9a0d6db86ca3adcd72842dfce3c9d0b8a34..cc18624688c3c686d4075f91b2e1cc39f6752248 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1426,7 +1426,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1457,7 +1457,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return offsetFactor; return offsetFactor;
} }
@@ -279,7 +281,7 @@ index fc27159b0638a1ddbf146e8036249daea59e6642..30a2cd24727d1cffc31b077b383487f3
final boolean xZero = movement.x == 0.0; final boolean xZero = movement.x == 0.0;
final boolean yZero = movement.y == 0.0; final boolean yZero = movement.y == 0.0;
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
index 5706c9b744b660d6f7639b8152dce82799c4b466..50b0711cd62224ed3e26da45831673c36601f6e5 100644 index 2378850b5d9e93ad0a52976de65ef35e29703a2c..750802a734515758d00696eb207851958b4ab269 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -61,7 +61,7 @@ public class FishingHook extends Projectile { @@ -61,7 +61,7 @@ public class FishingHook extends Projectile {
@@ -345,7 +347,7 @@ index ed80960777b18faca2d6a99783e53daf5fa19e09..9d492a2a45a2088f4bf28c85f04c22fa
if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper - Ability to control player's insomnia and phantoms if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper - Ability to control player's insomnia and phantoms
BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21)); BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index da4660b93b64100ed0f30cde5bcaafa64174fb7a..6b2c19f3ea4fb8e2f6afc165ece6d0c66ba59a75 100644 index b1c8806e65c97bbeb96ea03aae0ffba9f5d7ae5b..cb54b576d71f4b9c0a64199e03e99b1a8f2a1832 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -259,6 +259,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor; @@ -259,6 +259,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor;
@@ -364,7 +366,7 @@ index da4660b93b64100ed0f30cde5bcaafa64174fb7a..6b2c19f3ea4fb8e2f6afc165ece6d0c6
// Paper start - Folia region threading API // Paper start - Folia region threading API
private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler();
@@ -3243,4 +3245,11 @@ public final class CraftServer implements Server { @@ -3240,4 +3242,11 @@ public final class CraftServer implements Server {
} }
// Paper end // Paper end
@@ -399,10 +401,10 @@ index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..dc7ba0ce76031e6dd7e550ceaf3b2f97
if (entity instanceof EnderDragonPart complexPart) { if (entity instanceof EnderDragonPart complexPart) {
if (complexPart.parentMob instanceof EnderDragon) { if (complexPart.parentMob instanceof EnderDragon) {
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 74ff54724626908a083063c54983e0adfbbf7749..7afc1618f2014df67ca42f00c09e863c16afda56 100644 index bb9383f1a457433f9db3e78d7913616280925200..55b41ca7630db143d70137324a9de8717397f0e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -44,7 +44,7 @@ import org.bukkit.scheduler.BukkitWorker; @@ -46,7 +46,7 @@ import org.bukkit.scheduler.BukkitWorker;
*/ */
public class CraftScheduler implements BukkitScheduler { public class CraftScheduler implements BukkitScheduler {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize random calls in chunk ticking
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index cb755283ef6bf8812e2c2ad8b546627a334b75a2..9659b5adb9824df325285763ef211cd189174668 100644 index 2a19a45e9c7ac4646ce89c566b5fec21281c45b9..a3db45d411772d71ba46632633e935f2251bcfda 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -510,6 +510,11 @@ public class ServerChunkCache extends ChunkSource { @@ -495,6 +495,11 @@ public class ServerChunkCache extends ChunkSource {
ProfilerFiller gameprofilerfiller = this.level.getProfiler(); ProfilerFiller gameprofilerfiller = this.level.getProfiler();
gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("pollingChunks");
@@ -22,7 +22,7 @@ index cb755283ef6bf8812e2c2ad8b546627a334b75a2..9659b5adb9824df325285763ef211cd1
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index d046ffa452a6fe2f2f35a961fec792f27ed6df38..9018a9b714a157045e473294ee59980c561b9050 100644 index c9e578cd3d941fa343cc957805df882b51e0761f..bb5833265661bfdef0808745c65ec04cc9240519 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -968,6 +968,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -968,6 +968,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -43,13 +43,13 @@ index d046ffa452a6fe2f2f35a961fec792f27ed6df38..9018a9b714a157045e473294ee59980c
gameprofilerfiller.push("thunder"); gameprofilerfiller.push("thunder");
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
- if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder - if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - Option to disable thunder
+ if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && (top.leavesmc.leaves.LeavesConfig.optimizeChunkTicking ? chunk.shouldDoLightning(this.random) : this.random.nextInt(this.spigotConfig.thunderChance) == 0)) { // Spigot // Paper - disable thunder // Leaves - replace random with shouldDoLightning + if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && (top.leavesmc.leaves.LeavesConfig.optimizeChunkTicking ? chunk.shouldDoLightning(this.random) : this.random.nextInt(this.spigotConfig.thunderChance) == 0)) { // Spigot // Paper - Option to disable thunder // Leaves - replace random with shouldDoLightning
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
if (this.isRainingAt(blockposition)) { if (this.isRainingAt(blockposition)) {
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index b2807c4493a558e2fd11b2a1f04593c6299d5874..6f89a493f557a55075263a74f32682fec66f4f23 100644 index 44b9aaa534a4683b2924a2aa61a92218f9c846b3..ae746ebde8ba2aded37bc1c9b3c4acdfd5f9def0 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -86,6 +86,18 @@ public class LevelChunk extends ChunkAccess { @@ -86,6 +86,18 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Config to disable method profiler
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d90955687caa5fbe925c55184ac14fa3946afa74..0328722b7c25c258ff7adc312faf4f80ce76f1bd 100644 index 487cc5b0d980d9e910695440fb7da8704fdb2b72..ae7df33164a4a6d0bc453ec0f45cd023d21a32ae 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2413,6 +2413,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -2417,6 +2417,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public ProfilerFiller getProfiler() { public ProfilerFiller getProfiler() {
@@ -22,10 +22,10 @@ index d90955687caa5fbe925c55184ac14fa3946afa74..0328722b7c25c258ff7adc312faf4f80
} }
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 0a44fddad2f90983ae46bd6465e7ee857a702674..33c8f71c85a8a29b21cfad4ecfb845f9cf3ebb65 100644 index b9b14a51bee856e1b3201b133365d06a653d4e77..b0e9ea8e4ff25d1d418ede836d80cb3374387655 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1788,6 +1788,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1784,6 +1784,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
public ProfilerFiller getProfiler() { public ProfilerFiller getProfiler() {

View File

@@ -5,19 +5,6 @@ Subject: [PATCH] Reduce entity allocations
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3f334ff8da00d37364e796685f672edfc8b449bf..3c9ac99fae71570120482de4b615492217af17da 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -440,6 +440,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.originWorld;
}
// Paper end
+ // public final BlockPos.MutableBlockPos cachedBlockPos = new BlockPos.MutableBlockPos(); // Leaves - used where needed ?
+
public float getBukkitYaw() {
return this.yRot;
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
index 897d7632ecfea40890433474870dd7a5e534d8ab..e1f3890dd63332a5af3aa08cd4ba24ef2eaf233a 100644 index 897d7632ecfea40890433474870dd7a5e534d8ab..e1f3890dd63332a5af3aa08cd4ba24ef2eaf233a 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Remove streams and iterators from range check
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 69a8dc72609e73c85581ac782b3d5ae09ed7c7f7..f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed 100644 index 85be9376fe30f18fe4fea437955f1a60c5c3f05a..c32002aca09ec20aadfe71c2626672e75255a31a 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1429,19 +1429,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1423,19 +1423,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance);
} }

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Cache climbing check for activation
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 63d5bef6fcbb5ba00112130aa364be2185b00434..546d40778dac702d32cefff8e9f0480fc07bbc14 100644 index 26d7af70c0f1de8f32b2e9ea28c4d7fa5b64d962..70190eae8fcf50dd75c3a7a23b86906c0f3367aa 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2010,6 +2010,22 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2010,6 +2010,22 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -33,10 +33,10 @@ index 63d5bef6fcbb5ba00112130aa364be2185b00434..546d40778dac702d32cefff8e9f0480f
if (this.isSpectator()) { if (this.isSpectator()) {
return false; return false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 97806af3f12bc44036418b2829191e0f83519ce5..6f4fc5adb02b3d688aeceb11d29b9754545ccad0 100644 index efb7f957c72088e40946a2eeb8d955f156163c24..28a7afa9bc4d7fecfafcd8a45fc9aa1ed9ae76f8 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java --- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -294,7 +294,7 @@ public class ActivationRange @@ -293,7 +293,7 @@ public class ActivationRange
if ( entity instanceof LivingEntity ) if ( entity instanceof LivingEntity )
{ {
LivingEntity living = (LivingEntity) entity; LivingEntity living = (LivingEntity) entity;

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Reduce entity fluid lookups if no fluids
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3c9ac99fae71570120482de4b615492217af17da..b02e83af62d6d14e01642569dfce84e97aaf1822 100644 index fb7fbaeeb61ee0a95f126c0d2b7355a83741fcef..e33fff62f13a26cf681cf20f187bba2f885148f9 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4388,16 +4388,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4411,16 +4411,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) { public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -35,7 +35,7 @@ index 3c9ac99fae71570120482de4b615492217af17da..b02e83af62d6d14e01642569dfce84e9
double d1 = 0.0D; double d1 = 0.0D;
boolean flag = this.isPushedByFluid(); boolean flag = this.isPushedByFluid();
boolean flag1 = false; boolean flag1 = false;
@@ -4405,38 +4407,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4428,38 +4430,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
int k1 = 0; int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Use vanilla random config
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b02e83af62d6d14e01642569dfce84e97aaf1822..053d510c435baeab08ad0acac600327f88e62dec 100644 index e33fff62f13a26cf681cf20f187bba2f885148f9..eb673c7ed083ef731263d60a9298e58934bc370f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -548,7 +548,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -577,7 +577,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.bb = Entity.INITIAL_AABB; this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO; this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F; this.nextStep = 1.0F;
@@ -63,7 +63,7 @@ index adc179f85a774c47d386144da6b2291e915a0e1d..51cc6ef73da00133bbdc838b1911159a
// Paper end - Don't use level random in entity constructors // Paper end - Don't use level random in entity constructors
// Leaves start - stackable shulker boxes // Leaves start - stackable shulker boxes
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
index 2c4f9aa4ad22393e19e01e8e14e367968b5cba57..f85163a6238ca657f03f552a360776651dcfb67f 100644 index 83ef6f6555fb810236659b395ce17fa414d7a567..33b46370d1f9073b6ce656ee5d110f45def2ee81 100644
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
@@ -43,7 +43,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { @@ -43,7 +43,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {

View File

@@ -20,10 +20,10 @@ index d0a487f0d563181818c5670749e8dd3a9d939265..140a9070fb5859e762e40ddb1e4259f6
label25: label25:
{ {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2136cdddbaa90201c778efa435a35588476e9e9c..1482dce5e76d9bc235e188ada456948d5e28d361 100644 index acc9973099d253bbbfe6b6a885ec4010893c5d08..414360e531ad3562c22d266e0592a19984bf2ca4 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1687,7 +1687,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1691,7 +1691,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick"); this.profiler.push("tick");
try { try {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bedrock break list
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1482dce5e76d9bc235e188ada456948d5e28d361..fc241a006ecddbef4ff563e2249e2a2800b9bf03 100644 index 414360e531ad3562c22d266e0592a19984bf2ca4..db16f74e87d62aba9f7cb2926935cbce1d724d48 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1723,6 +1723,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1727,6 +1727,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("server gui refresh"); this.profiler.popPush("server gui refresh");
top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(); // Leaves - protocol top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(); // Leaves - protocol

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Creative fly no clip
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 35869e655a7488f7b5868895287b8045b03f2d63..001bfc1cae653ad2e451d6f40ab57dfb8351bfc0 100644 index 44a17a8e763455e834dcf488044a0f4907ce346e..ce16c7bfb127edd9d331c95ea114ce8978af9595 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -238,8 +238,8 @@ public abstract class Player extends LivingEntity { @@ -236,8 +236,8 @@ public abstract class Player extends LivingEntity {
@Override @Override
public void tick() { public void tick() {
@@ -19,7 +19,7 @@ index 35869e655a7488f7b5868895287b8045b03f2d63..001bfc1cae653ad2e451d6f40ab57dfb
this.setOnGround(false); this.setOnGround(false);
} }
@@ -416,7 +416,7 @@ public abstract class Player extends LivingEntity { @@ -414,7 +414,7 @@ public abstract class Player extends LivingEntity {
Pose entitypose1; Pose entitypose1;
@@ -28,7 +28,7 @@ index 35869e655a7488f7b5868895287b8045b03f2d63..001bfc1cae653ad2e451d6f40ab57dfb
if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.CROUCHING)) { if (this.canPlayerFitWithinBlocksAndEntitiesWhen(Pose.CROUCHING)) {
entitypose1 = Pose.CROUCHING; entitypose1 = Pose.CROUCHING;
} else { } else {
@@ -576,7 +576,7 @@ public abstract class Player extends LivingEntity { @@ -574,7 +574,7 @@ public abstract class Player extends LivingEntity {
} }
this.bob += (f - this.bob) * 0.4F; this.bob += (f - this.bob) * 0.4F;
@@ -37,7 +37,7 @@ index 35869e655a7488f7b5868895287b8045b03f2d63..001bfc1cae653ad2e451d6f40ab57dfb
AABB axisalignedbb; AABB axisalignedbb;
if (this.isPassenger() && !this.getVehicle().isRemoved()) { if (this.isPassenger() && !this.getVehicle().isRemoved()) {
@@ -2067,6 +2067,21 @@ public abstract class Player extends LivingEntity { @@ -2065,6 +2065,21 @@ public abstract class Player extends LivingEntity {
@Override @Override
public abstract boolean isSpectator(); public abstract boolean isSpectator();

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Elytra aeronautics no chunk load
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed..4eb025a4eabeb7b7abb4819bba172ee824d4c8e3 100644 index c32002aca09ec20aadfe71c2626672e75255a31a..b460bef510213f10a913c162d9a167146c6b019d 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -150,7 +150,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -150,7 +150,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -26,7 +26,7 @@ index f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed..4eb025a4eabeb7b7abb4819bba172ee8
int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX()); int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX());
int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ()); int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ());
// Note: players need to be explicitly added to distance maps before they can be updated // Note: players need to be explicitly added to distance maps before they can be updated
@@ -969,7 +969,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -963,7 +963,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
} }
private boolean skipPlayer(ServerPlayer player) { private boolean skipPlayer(ServerPlayer player) {
@@ -36,7 +36,7 @@ index f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed..4eb025a4eabeb7b7abb4819bba172ee8
} }
void updatePlayerStatus(ServerPlayer player, boolean added) { void updatePlayerStatus(ServerPlayer player, boolean added) {
@@ -1006,6 +1007,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1000,6 +1001,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
} }
public void move(ServerPlayer player) { public void move(ServerPlayer player) {
@@ -45,7 +45,7 @@ index f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed..4eb025a4eabeb7b7abb4819bba172ee8
SectionPos sectionposition = player.getLastSectionPos(); SectionPos sectionposition = player.getLastSectionPos();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1aad5bb505439f1588e879d3ace8c976b1435527..fdf8dcb60279ffee46368bd0abdade8bd63c5679 100644 index ad0fe46ae99b420cadf5668d1bff001c9d0334ab..baab58d4c62ffbcd105ec82d45ce20d7b832dfaa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -546,7 +546,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -546,7 +546,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -58,10 +58,10 @@ index 1aad5bb505439f1588e879d3ace8c976b1435527..fdf8dcb60279ffee46368bd0abdade8b
!worldserver.areChunksLoadedForMove(entity.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(entity.position()))) !worldserver.areChunksLoadedForMove(entity.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(entity.position())))
)) { )) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 053d510c435baeab08ad0acac600327f88e62dec..08d1337dad726203f0b4974c4a2fbf2006158df3 100644 index eb673c7ed083ef731263d60a9298e58934bc370f..406c973cc3765dd60e2fa14b18baaa38522c8f00 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1074,7 +1074,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1103,7 +1103,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return; return;
} }
} }
@@ -76,7 +76,7 @@ index 053d510c435baeab08ad0acac600327f88e62dec..08d1337dad726203f0b4974c4a2fbf20
this.level().getProfiler().push("move"); this.level().getProfiler().push("move");
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier); movement = movement.multiply(this.stuckSpeedMultiplier);
@@ -2009,6 +2015,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2038,6 +2044,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.yo = y; this.yo = y;
this.zo = d4; this.zo = d4;
this.setPos(d3, y, d4); this.setPos(d3, y, d4);
@@ -85,13 +85,14 @@ index 053d510c435baeab08ad0acac600327f88e62dec..08d1337dad726203f0b4974c4a2fbf20
} }
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 001bfc1cae653ad2e451d6f40ab57dfb8351bfc0..7ea29129949364b7d887ed8e48e8f4f6cebaf7f4 100644 index ce16c7bfb127edd9d331c95ea114ce8978af9595..af792c5031459a190be6a7cd4ab90babf4ee9e32 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity { @@ -181,6 +181,8 @@ public abstract class Player extends LivingEntity {
public boolean affectsSpawning = true; public float hurtDir; // Paper - protected -> public
public boolean affectsSpawning = true; // Paper - Affects Spawning API
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
// Paper end + // Paper end
+ public boolean elytraAeronauticsNoChunk = false; // Leaves - Elytra aeronautics + public boolean elytraAeronauticsNoChunk = false; // Leaves - Elytra aeronautics
// CraftBukkit start // CraftBukkit start

View File

@@ -227,7 +227,7 @@ index b2183c298b0c68daee41238735621ff002338a68..3957ab1ebd7e84cfe0bef81a8cce566d
for (int j = 0; j < i; ++j) { for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index ff957be41684f0c722b1dcac4f2ac09975f80236..6e9a26916a2e82dd56e51978a562e96ae8e480ac 100644 index 678410cd734cd7e3e3b999b7908f2e3f25f23a13..1240121d732a9697ec6bffcc459a00c71d5f4350 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -177,6 +177,7 @@ import org.bukkit.event.weather.LightningStrikeEvent; @@ -177,6 +177,7 @@ import org.bukkit.event.weather.LightningStrikeEvent;
@@ -257,7 +257,7 @@ index ff957be41684f0c722b1dcac4f2ac09975f80236..6e9a26916a2e82dd56e51978a562e96a
return ret; return ret;
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index fdf8dcb60279ffee46368bd0abdade8bd63c5679..bf56d8f6a8fe06c5a356befa14d7eebf9af9460d 100644 index baab58d4c62ffbcd105ec82d45ce20d7b832dfaa..ca3419c659e230bc43a86b17ae7dae4982c4ac3d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -243,6 +243,7 @@ import org.bukkit.inventory.EquipmentSlot; @@ -243,6 +243,7 @@ import org.bukkit.inventory.EquipmentSlot;
@@ -268,7 +268,7 @@ index fdf8dcb60279ffee46368bd0abdade8bd63c5679..bf56d8f6a8fe06c5a356befa14d7eebf
public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl implements ServerGamePacketListener, ServerPlayerConnection, TickablePacketListener { public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl implements ServerGamePacketListener, ServerPlayerConnection, TickablePacketListener {
@@ -778,13 +779,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -778,7 +779,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async
// CraftBukkit start // CraftBukkit start
if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits
@@ -276,14 +276,16 @@ index fdf8dcb60279ffee46368bd0abdade8bd63c5679..bf56d8f6a8fe06c5a356befa14d7eebf
+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause // Leaves - reduce array allocations + server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause // Leaves - reduce array allocations
return; return;
} }
// Paper start // CraftBukkit end
String str = packet.getCommand(); int index = -1; @@ -790,7 +791,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (str.length() > 64 && ((index = str.indexOf(' ')) == -1 || index >= 64)) { // Paper start - rewrite chunk system
- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper int index;
+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray))); // Paper // Leaves - reduce array allocations if (packet.getCommand().length() > 64 && ((index = packet.getCommand().indexOf(' ')) == -1 || index >= 64)) {
- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM));
+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Leaves - reduce array allocations
return; return;
} }
// Paper end // Paper end - rewrite chunk system
@@ -3191,7 +3192,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -3191,7 +3192,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start - auto recipe limit // Paper start - auto recipe limit
if (!org.bukkit.Bukkit.isPrimaryThread()) { if (!org.bukkit.Bukkit.isPrimaryThread()) {
@@ -409,7 +411,7 @@ index 3d4211c5af1a9b4495dc0aeead51a6f5fe72bf06..efa7d206009700cffd72e09bb910e561
for (int j = 0; j < i; ++j) { for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 24ad2a51366a4fdcf35f2c1f63bbc2d339bd0d3f..005edbf57dad37f3fd369e4af1dddb6393ee2132 100644 index 33903f1c9a2c3327404fcdbfaeb2987fafe2d84b..fb448966f644cf069dfc38f0f51262568841c51e 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1082,7 +1082,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1082,7 +1082,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -504,7 +506,7 @@ index 6c2e8049c2197ddc912c1a0fc99c87beae81e25b..be13baa7b51c4ad377b50d8ca8f7cfad
private static Enchantment register(String name, Enchantment enchantment) { private static Enchantment register(String name, Enchantment enchantment) {
return Registry.register(BuiltInRegistries.ENCHANTMENT, name, enchantment); return Registry.register(BuiltInRegistries.ENCHANTMENT, name, enchantment);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 6d3a652da337ec684ea939552bcadd61473e6cc6..ce85d69027cbfb06666c9242576d3abbd7cc2831 100644 index bc1c548f08884609c9b6a94106ccb50a11f77caa..1fb210a4af574ba5ad54a547e3965a3a45b9cea9 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -97,6 +97,7 @@ import org.bukkit.craftbukkit.util.CraftSpawnCategory; @@ -97,6 +97,7 @@ import org.bukkit.craftbukkit.util.CraftSpawnCategory;
@@ -515,7 +517,7 @@ index 6d3a652da337ec684ea939552bcadd61473e6cc6..ce85d69027cbfb06666c9242576d3abb
public abstract class Level implements LevelAccessor, AutoCloseable { public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1844,7 +1845,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1860,7 +1861,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public org.bukkit.entity.Entity[] getChunkEntities(int chunkX, int chunkZ) { public org.bukkit.entity.Entity[] getChunkEntities(int chunkX, int chunkZ) {
io.papermc.paper.world.ChunkEntitySlices slices = ((ServerLevel)this).getEntityLookup().getChunk(chunkX, chunkZ); io.papermc.paper.world.ChunkEntitySlices slices = ((ServerLevel)this).getEntityLookup().getChunk(chunkX, chunkZ);
if (slices == null) { if (slices == null) {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize sun burn tick
This patch is Powered by Gale(https://github.com/GaleMC/Gale) This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 219e61d5a3644fb4ced66c4375ab551955fa043c..c3a91af3a6e9ca8177994bacaf375d1e7df1d0c4 100644 index 406c973cc3765dd60e2fa14b18baaa38522c8f00..ffad59f865a138aa9aef73881a608b058c7fba22 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1995,8 +1995,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2024,8 +2024,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
/** @deprecated */ /** @deprecated */
@Deprecated @Deprecated
public float getLightLevelDependentMagicValue() { public float getLightLevelDependentMagicValue() {
@@ -34,7 +34,7 @@ index 219e61d5a3644fb4ced66c4375ab551955fa043c..c3a91af3a6e9ca8177994bacaf375d1e
public void absMoveTo(double x, double y, double z, float yaw, float pitch) { public void absMoveTo(double x, double y, double z, float yaw, float pitch) {
this.absMoveTo(x, y, z); this.absMoveTo(x, y, z);
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 23e0e9125f7f68a602fa4d6c3c9562fe25bb3374..3209b9116b4bfcdc99d91aae09bc06b2a8d98d34 100644 index fb448966f644cf069dfc38f0f51262568841c51e..81d7ce2a8ce07f72c95168efeb2d59dd9f4bd6c8 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1716,15 +1716,41 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1716,15 +1716,41 @@ public abstract class Mob extends LivingEntity implements Targeting {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Skip entity move if movement is zero
This patch is Powered by Gale(https://github.com/GaleMC/Gale) This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 42249dc3f994d1e4ce1c5e1c6e2ec1f7d4d41324..a4acf29239e1c05e8afc42c92763f00a31762aa0 100644 index ffad59f865a138aa9aef73881a608b058c7fba22..6b53d174a6013b7dbb2355bace4db89b5d209cf7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -316,6 +316,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -316,6 +316,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -17,7 +17,7 @@ index 42249dc3f994d1e4ce1c5e1c6e2ec1f7d4d41324..a4acf29239e1c05e8afc42c92763f00a
public boolean onGround; public boolean onGround;
public boolean horizontalCollision; public boolean horizontalCollision;
public boolean verticalCollision; public boolean verticalCollision;
@@ -1051,6 +1052,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1080,6 +1081,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// Paper end - detailed watchdog information // Paper end - detailed watchdog information
public void move(MoverType movementType, Vec3 movement) { public void move(MoverType movementType, Vec3 movement) {
@@ -31,7 +31,7 @@ index 42249dc3f994d1e4ce1c5e1c6e2ec1f7d4d41324..a4acf29239e1c05e8afc42c92763f00a
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
// Paper start - detailed watchdog information // Paper start - detailed watchdog information
io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main");
@@ -4082,6 +4090,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -4108,6 +4116,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
public final void setBoundingBox(AABB boundingBox) { public final void setBoundingBox(AABB boundingBox) {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Skip negligible planar movement multiplication
This patch is Powered by Gale(https://github.com/GaleMC/Gale) This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index f9682798c74aaae9c0610c00b2f52cda990e35a4..bb575f1fa289e90a242f5b2ca0d18c5fccd41718 100644 index 6b53d174a6013b7dbb2355bace4db89b5d209cf7..e6e87d23becafc8471c6d7211daa9992d66099da 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1223,9 +1223,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1252,9 +1252,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
this.tryCheckInsideBlocks(); this.tryCheckInsideBlocks();

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Force peaceful mode switch
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 9659b5adb9824df325285763ef211cd189174668..3217af4adb16a48150652258e59b49cf1cf33873 100644 index a3db45d411772d71ba46632633e935f2251bcfda..7e60778e406dfa19488604f6a99b0f9276e42f77 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -74,6 +74,12 @@ public class ServerChunkCache extends ChunkSource { @@ -77,6 +77,12 @@ public class ServerChunkCache extends ChunkSource {
private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4]; private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4];
// Paper end
+ // Leaves start - peaceful mode switch + // Leaves start - peaceful mode switch
+ public int peacefulModeSwitchTick = -1; + public int peacefulModeSwitchTick = -1;
@@ -18,10 +18,10 @@ index 9659b5adb9824df325285763ef211cd189174668..3217af4adb16a48150652258e59b49cf
+ private final List<Class<? extends Entity>> peacefulModeSwitchEntityTypes = List.of(net.minecraft.world.entity.boss.wither.WitherBoss.class, net.minecraft.world.entity.monster.Shulker.class, net.minecraft.world.entity.monster.warden.Warden.class); + private final List<Class<? extends Entity>> peacefulModeSwitchEntityTypes = List.of(net.minecraft.world.entity.boss.wither.WitherBoss.class, net.minecraft.world.entity.monster.Shulker.class, net.minecraft.world.entity.monster.warden.Warden.class);
+ // Leaves end - peaceful mode switch + // Leaves end - peaceful mode switch
+ +
private static int getChunkCacheKey(int x, int z) { public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, int simulationDistance, boolean dsync, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory) {
return x & 3 | ((z & 3) << 2); this.level = world;
} this.mainThreadProcessor = new ServerChunkCache.MainThreadExecutor(world);
@@ -516,7 +522,21 @@ public class ServerChunkCache extends ChunkSource { @@ -501,7 +507,21 @@ public class ServerChunkCache extends ChunkSource {
} }
// Leaves end - reset ice & snow tick random // Leaves end - reset ice & snow tick random
gameprofilerfiller.push("filteringLoadedChunks"); gameprofilerfiller.push("filteringLoadedChunks");
@@ -44,7 +44,7 @@ index 9659b5adb9824df325285763ef211cd189174668..3217af4adb16a48150652258e59b49cf
// Paper - optimise chunk tick iteration // Paper - optimise chunk tick iteration
@@ -604,10 +624,20 @@ public class ServerChunkCache extends ChunkSource { @@ -589,10 +609,20 @@ public class ServerChunkCache extends ChunkSource {
} }
Util.shuffle(shuffled, this.level.random); Util.shuffle(shuffled, this.level.random);
chunkIterator = shuffled.iterator(); chunkIterator = shuffled.iterator();
@@ -68,7 +68,7 @@ index 9659b5adb9824df325285763ef211cd189174668..3217af4adb16a48150652258e59b49cf
LevelChunk chunk1 = chunkIterator.next(); LevelChunk chunk1 = chunkIterator.next();
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
ChunkPos chunkcoordintpair = chunk1.getPos(); ChunkPos chunkcoordintpair = chunk1.getPos();
@@ -638,7 +668,7 @@ public class ServerChunkCache extends ChunkSource { @@ -623,7 +653,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper end - optimise chunk tick iteration // Paper end - optimise chunk tick iteration
chunk1.incrementInhabitedTime(j); chunk1.incrementInhabitedTime(j);
if (spawn && flag && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration if (spawn && flag && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration
@@ -107,10 +107,10 @@ index 4eac3f2acaf70e83b9241ed55ae5f9ecf39d2e67..8faaf4a8bcd75c79808bcfd2b6b86729
boolean spawnThisTick = true; boolean spawnThisTick = true;
int limit = enumcreaturetype.getMaxInstancesPerChunk(); int limit = enumcreaturetype.getMaxInstancesPerChunk();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index cd559e6aaf4bd2bd322c953bbb186135489ddcaa..aa0a1cbbbd4f2f027e24a4166bd5be4009c2ac3e 100644 index a139601888b88e8580bdb9c2469386a94abae975..948a4595d2c3fe91295bef0001d99521403f7a26 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2422,6 +2422,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2385,6 +2385,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return CraftFeatureFlag.getFromNMS(this.getHandle().enabledFeatures()).stream().map(FeatureFlag.class::cast).collect(Collectors.toUnmodifiableSet()); return CraftFeatureFlag.getFromNMS(this.getHandle().enabledFeatures()).stream().map(FeatureFlag.class::cast).collect(Collectors.toUnmodifiableSet());
} }

View File

@@ -107,7 +107,7 @@ index cb05ec292d26320562e51da96a5a28cb04ecc7e4..6cf0b94b185d901ee79f376a6d2ffd8c
} }
// Leaves end - bot can't get advancement // Leaves end - bot can't get advancement
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index bf56d8f6a8fe06c5a356befa14d7eebf9af9460d..de8bf759b74c8969d12b38c952f48633966d5b74 100644 index ca3419c659e230bc43a86b17ae7dae4982c4ac3d..26106dda0dfd70071994e329e8894b6f17a16a89 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -300,7 +300,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -300,7 +300,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -334,7 +334,7 @@ index d9848bbe9c1874f85c4d774e24fea60261251ccb..42f54487ba2a6afbdacf0f1de0f9161c
this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer); this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer);
UUID uuid = entityplayer.getUUID(); UUID uuid = entityplayer.getUUID();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 6b2c19f3ea4fb8e2f6afc165ece6d0c66ba59a75..de36a75a68915f87573280600ad5b52d6b344555 100644 index cb54b576d71f4b9c0a64199e03e99b1a8f2a1832..324429bc3ab08a62f720a4f7d5e31ea68b30668b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -260,6 +260,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; @@ -260,6 +260,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
@@ -362,7 +362,7 @@ index 6b2c19f3ea4fb8e2f6afc165ece6d0c66ba59a75..de36a75a68915f87573280600ad5b52d
@Override @Override
public CraftPlayer apply(ServerPlayer player) { public CraftPlayer apply(ServerPlayer player) {
return player.getBukkitEntity(); return player.getBukkitEntity();
@@ -3252,4 +3254,11 @@ public final class CraftServer implements Server { @@ -3249,4 +3251,11 @@ public final class CraftServer implements Server {
return botManager; return botManager;
} }
// Leaves end - Bot API // Leaves end - Bot API

View File

@@ -21,25 +21,13 @@ index ca79034c1f044a9096de65b0936971c4fd68eb32..990dc1fdd1bffa6bc96f7b325d3e12d5
implementation("org.ow2.asm:asm-commons:9.5") implementation("org.ow2.asm:asm-commons:9.5")
implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files
diff --git a/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java b/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java diff --git a/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java b/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java
index f2c27e0ac65be4b75c1d86ef6fd45fdb538d96ac..036da95df5280e547e60d3b4641dad63ec15c224 100644 new file mode 100644
--- a/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
+++ b/src/main/java/com/destroystokyo/paper/io/PaperFileIOThread.java
@@ -314,8 +314,8 @@ public final class PaperFileIOThread extends QueueExecutorThread {
public abstract void writeData(final int x, final int z, final CompoundTag compound) throws IOException;
public abstract CompoundTag readData(final int x, final int z) throws IOException;
- public abstract <T> T computeForRegionFile(final int chunkX, final int chunkZ, final Function<RegionFile, T> function);
- public abstract <T> T computeForRegionFileIfLoaded(final int chunkX, final int chunkZ, final Function<RegionFile, T> function);
+ public abstract <T> T computeForRegionFile(final int chunkX, final int chunkZ, final Function<top.leavesmc.leaves.region.AbstractRegionFile, T> function); // Leaves
+ public abstract <T> T computeForRegionFileIfLoaded(final int chunkX, final int chunkZ, final Function<top.leavesmc.leaves.region.AbstractRegionFile, T> function); // Leaves
public static final class InProgressWrite {
public long writeCounter;
diff --git a/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java b/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java diff --git a/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java b/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java
index 8a11e10b01fa012b2f98b1c193c53251e848f909..17057486c031708d3aab82a01031cfef426076da 100644 index 2934f0cf0ef09c84739312b00186c2ef0019a165..ad909f888c8eb6fa8d4ebeeebdc538aee749346d 100644
--- a/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java --- a/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java
+++ b/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java +++ b/src/main/java/io/papermc/paper/chunk/system/io/RegionFileIOThread.java
@@ -811,7 +811,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { @@ -816,7 +816,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread {
final ChunkDataController taskController) { final ChunkDataController taskController) {
final ChunkPos chunkPos = new ChunkPos(chunkX, chunkZ); final ChunkPos chunkPos = new ChunkPos(chunkX, chunkZ);
if (intendingToBlock) { if (intendingToBlock) {
@@ -48,7 +36,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..17057486c031708d3aab82a01031cfef
if (file == null) { // null if no regionfile exists if (file == null) { // null if no regionfile exists
return Boolean.FALSE; return Boolean.FALSE;
} }
@@ -824,7 +824,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { @@ -829,7 +829,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread {
return Boolean.FALSE; return Boolean.FALSE;
} // else: it either exists or is not known, fall back to checking the loaded region file } // else: it either exists or is not known, fall back to checking the loaded region file
@@ -57,7 +45,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..17057486c031708d3aab82a01031cfef
if (file == null) { // null if not loaded if (file == null) { // null if not loaded
// not sure at this point, let the I/O thread figure it out // not sure at this point, let the I/O thread figure it out
return Boolean.TRUE; return Boolean.TRUE;
@@ -1126,9 +1126,9 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { @@ -1131,9 +1131,9 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread {
return this.getCache().doesRegionFileNotExistNoIO(new ChunkPos(chunkX, chunkZ)); return this.getCache().doesRegionFileNotExistNoIO(new ChunkPos(chunkX, chunkZ));
} }
@@ -69,7 +57,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..17057486c031708d3aab82a01031cfef
synchronized (cache) { synchronized (cache) {
try { try {
regionFile = cache.getRegionFile(new ChunkPos(chunkX, chunkZ), existingOnly, true); regionFile = cache.getRegionFile(new ChunkPos(chunkX, chunkZ), existingOnly, true);
@@ -1141,19 +1141,19 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { @@ -1146,19 +1146,19 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread {
return function.apply(regionFile); return function.apply(regionFile);
} finally { } finally {
if (regionFile != null) { if (regionFile != null) {
@@ -93,7 +81,7 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..17057486c031708d3aab82a01031cfef
} }
} }
@@ -1161,7 +1161,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread { @@ -1166,7 +1166,7 @@ public final class RegionFileIOThread extends PrioritisedQueueExecutorThread {
return function.apply(regionFile); return function.apply(regionFile);
} finally { } finally {
if (regionFile != null) { if (regionFile != null) {
@@ -103,10 +91,10 @@ index 8a11e10b01fa012b2f98b1c193c53251e848f909..17057486c031708d3aab82a01031cfef
} }
} }
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 89be9c19db11c9fda0bc21a7f3d30493913e4d3c..e718e1a439dc3e5aef6edd005ba077a09b491260 100644 index 3d682670ae0ae6da7492633d2688dc31086e3665..246dc8c02e096c385931edc4ff0765d61ced7877 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -860,13 +860,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -854,13 +854,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
} }
public ChunkStatus getChunkStatusOnDiskIfCached(ChunkPos chunkPos) { public ChunkStatus getChunkStatusOnDiskIfCached(ChunkPos chunkPos) {
@@ -122,7 +110,7 @@ index 89be9c19db11c9fda0bc21a7f3d30493913e4d3c..e718e1a439dc3e5aef6edd005ba077a0
if (regionFile == null || !regionFileCache.chunkExists(chunkPos)) { if (regionFile == null || !regionFileCache.chunkExists(chunkPos)) {
return null; return null;
@@ -884,7 +884,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -878,7 +878,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
} }
public void updateChunkStatusOnDisk(ChunkPos chunkPos, @Nullable CompoundTag compound) throws IOException { public void updateChunkStatusOnDisk(ChunkPos chunkPos, @Nullable CompoundTag compound) throws IOException {
@@ -227,7 +215,7 @@ index 6cf83502a954cce9c562ec036bfeddb477d38b73..d43c41d377dd04d0babb99170203e2f5
try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new InflaterInputStream(Files.newInputStream(file))))) { try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new InflaterInputStream(Files.newInputStream(file))))) {
return NbtIo.read((java.io.DataInput) out); return NbtIo.read((java.io.DataInput) out);
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
index 30d4efc896fe8b2ec0e8b091045c7d07f952b00b..8718b525a84f717a6c2ee9cc6cef8dfd826df8b9 100644 index fe312b1aef579cb4bf81bdd967cf72ff880d7505..8a313a13371109d388b30f40beff6a0d1c798570 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -21,9 +21,14 @@ public class RegionFileStorage implements AutoCloseable { @@ -21,9 +21,14 @@ public class RegionFileStorage implements AutoCloseable {
@@ -326,7 +314,7 @@ index 30d4efc896fe8b2ec0e8b091045c7d07f952b00b..8718b525a84f717a6c2ee9cc6cef8dfd
@@ -123,28 +153,46 @@ public class RegionFileStorage implements AutoCloseable { @@ -123,28 +153,46 @@ public class RegionFileStorage implements AutoCloseable {
} }
// Paper end - cache regionfile does not exist state // Paper end - cache regionfile does not exist state
if (this.regionCache.size() >= io.papermc.paper.configuration.GlobalConfiguration.get().misc.regionFileCacheSize) { // Paper - Sanitise RegionFileCache and make configurable. if (this.regionCache.size() >= io.papermc.paper.configuration.GlobalConfiguration.get().misc.regionFileCacheSize) { // Paper - Sanitise RegionFileCache and make configurable
- ((RegionFile) this.regionCache.removeLast()).close(); - ((RegionFile) this.regionCache.removeLast()).close();
+ this.regionCache.removeLast().close(); // Leaves + this.regionCache.removeLast().close(); // Leaves
} }
@@ -445,25 +433,25 @@ index 30d4efc896fe8b2ec0e8b091045c7d07f952b00b..8718b525a84f717a6c2ee9cc6cef8dfd
if (regionfile == null) { if (regionfile == null) {
return; return;
} }
@@ -297,7 +345,7 @@ public class RegionFileStorage implements AutoCloseable { @@ -298,7 +346,7 @@ public class RegionFileStorage implements AutoCloseable {
}
protected void write(ChunkPos pos, @Nullable CompoundTag nbt) throws IOException { protected void write(ChunkPos pos, @Nullable CompoundTag nbt) throws IOException {
- RegionFile regionfile = this.getRegionFile(pos, nbt == null, true); // CraftBukkit // Paper // Paper start - rewrite chunk system // Paper start - rewrite chunk system
- RegionFile regionfile = this.getRegionFile(pos, nbt == null, true); // CraftBukkit
+ top.leavesmc.leaves.region.AbstractRegionFile regionfile = this.getRegionFile(pos, nbt == null, true); // CraftBukkit // Paper // Paper start - rewrite chunk system // Leaves + top.leavesmc.leaves.region.AbstractRegionFile regionfile = this.getRegionFile(pos, nbt == null, true); // CraftBukkit // Paper // Paper start - rewrite chunk system // Leaves
if (nbt == null && regionfile == null) { if (nbt == null && regionfile == null) {
return; return;
} }
@@ -347,7 +395,7 @@ public class RegionFileStorage implements AutoCloseable { @@ -353,7 +401,7 @@ public class RegionFileStorage implements AutoCloseable {
}
// Paper end - Chunk save reattempt // Paper end - Chunk save reattempt
} finally { // Paper start // Paper start - rewrite chunk system
} finally {
- regionfile.fileLock.unlock(); - regionfile.fileLock.unlock();
+ regionfile.getFileLock().unlock(); // Leaves + regionfile.getFileLock().unlock(); // Leaves
} // Paper end }
// Paper end - rewrite chunk system
} }
@@ -363,7 +411,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -356,7 +404,7 @@ public class RegionFileStorage implements AutoCloseable {
ObjectIterator objectiterator = this.regionCache.values().iterator(); ObjectIterator objectiterator = this.regionCache.values().iterator();
while (objectiterator.hasNext()) { while (objectiterator.hasNext()) {
@@ -472,7 +460,7 @@ index 30d4efc896fe8b2ec0e8b091045c7d07f952b00b..8718b525a84f717a6c2ee9cc6cef8dfd
try { try {
regionfile.close(); regionfile.close();
@@ -372,7 +420,7 @@ public class RegionFileStorage implements AutoCloseable { @@ -379,7 +427,7 @@ public class RegionFileStorage implements AutoCloseable {
ObjectIterator objectiterator = this.regionCache.values().iterator(); ObjectIterator objectiterator = this.regionCache.values().iterator();
while (objectiterator.hasNext()) { while (objectiterator.hasNext()) {
@@ -482,10 +470,10 @@ index 30d4efc896fe8b2ec0e8b091045c7d07f952b00b..8718b525a84f717a6c2ee9cc6cef8dfd
regionfile.flush(); regionfile.flush();
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index aa0a1cbbbd4f2f027e24a4166bd5be4009c2ac3e..eedc10b3fd0ae2da321d66d1b08f55edf031accf 100644 index 948a4595d2c3fe91295bef0001d99521403f7a26..ea375449c93d802c63ea697cefb0a39cba79d001 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -565,7 +565,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -567,7 +567,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
world.getChunk(x, z); // make sure we're at ticket level 32 or lower world.getChunk(x, z); // make sure we're at ticket level 32 or lower
return true; return true;
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Placing locked hopper no longer send NC updates
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index ce85d69027cbfb06666c9242576d3abbd7cc2831..bf2cf885552249765f005086750a8457c0949c49 100644 index 1fb210a4af574ba5ad54a547e3965a3a45b9cea9..15e54727f24f682ecce289725f1c82ca69537ec6 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -51,6 +51,7 @@ import net.minecraft.world.level.biome.BiomeManager; @@ -51,6 +51,7 @@ import net.minecraft.world.level.biome.BiomeManager;
@@ -16,7 +16,7 @@ index ce85d69027cbfb06666c9242576d3abbd7cc2831..bf2cf885552249765f005086750a8457
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.TickingBlockEntity; import net.minecraft.world.level.block.entity.TickingBlockEntity;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@@ -1029,7 +1030,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1025,7 +1026,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
if ((i & 1) != 0) { if ((i & 1) != 0) {