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-24 12:37:02 +08:00
parent e016ccd1db
commit fe2d9ed2df
50 changed files with 385 additions and 395 deletions

View File

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

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Build changes
diff --git a/build.gradle.kts b/build.gradle.kts
index 444ff797c70b0e285d4272ea2ce3d72453c9bda5..32fb084862ce074cdbf69fff4847aa31bfd08db2 100644
index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..f5c83d033a8163786f8f7e98655e65bb606bc9dc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -153,10 +153,10 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..9ce4d3d96d2d5fbde1f0af599209c6c5
}
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c1c1763de0ad0376c504946cbfd7bbd5b0cff0fd..abf4346111f682ca59d009f29a9c247057e44f12 100644
index 559e159a0cfdefb5a0d69224409d91c4ad67371a..29a3ec27139720c293e7455c0a17a8c5cef0f421 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1852,7 +1852,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1851,7 +1851,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -166,12 +166,12 @@ index c1c1763de0ad0376c504946cbfd7bbd5b0cff0fd..abf4346111f682ca59d009f29a9c2470
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index cb7fe116a29916761299a808572f76547d143971..fe04db99bb6e56cb23f9dbd9a8992837ada2cd6e 100644
index 6de6dad36203479677a29ad61e21bc369d4e5513..b164b09c90b607262938f3c2552d6b5790c27786 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -218,10 +218,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread
thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized
thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
- com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
@@ -183,7 +183,7 @@ index cb7fe116a29916761299a808572f76547d143971..fe04db99bb6e56cb23f9dbd9a8992837
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
this.setMotd(dedicatedserverproperties.motd);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 70274239aa95d41953291d138cc46e0d7b491a8a..12b5796ac962b73a36538d313b77c07784d6ebe7 100644
index 28b02fee73a3ab604f6921800a7ede59e2e6f414..79ea938ffedc1ac24e877bfccba876ba9cfa79b3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
@@ -196,7 +196,7 @@ index 70274239aa95d41953291d138cc46e0d7b491a8a..12b5796ac962b73a36538d313b77c077
private final String bukkitVersion = Versioning.getBukkitVersion();
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
index 16e73128115ef92adefbd7818fef3a4b9bcebad2..9badf09271a4ff99874110cf0622000d1eb71546 100644
index 6542155faa881d06e5db6c8f42823842e787b904..7a6f62787411a1e160576e7a7da4122b4f0ef5b6 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -301,7 +301,7 @@ public class Main {
@@ -207,7 +207,7 @@ index 16e73128115ef92adefbd7818fef3a4b9bcebad2..9badf09271a4ff99874110cf0622000d
+ System.err.println("*** Please download a new build as per instructions from https://leavesmc.top/downloads/leaves ***"); //Paper // Leaves
//System.err.println("*** Server will start in 20 seconds ***");
//Thread.sleep(TimeUnit.SECONDS.toMillis(20));
// Paper End
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 774556a62eb240da42e84db4502e2ed43495be17..ca166161ef919c559de9cc02bdf435cbfcc972df 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java

View File

@@ -859,7 +859,7 @@ index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..d0a487f0d563181818c5670749e8dd3a
} catch (Exception exception) {
label25:
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d9932c81aed 100644
index 29a3ec27139720c293e7455c0a17a8c5cef0f421..a09aef16a58bf713ec670ad23d44255943016743 100644
--- a/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;
@@ -881,15 +881,15 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable {
private static MinecraftServer SERVER; // Paper
@@ -970,7 +965,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -968,7 +963,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Shutdown and don't bother finishing
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
- MinecraftTimings.stopServer(); // Paper
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
@@ -1393,34 +1387,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1392,34 +1386,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
@@ -943,7 +943,7 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
}
}
// Paper end - execute chunk tasks mid tick
@@ -1495,15 +1484,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1494,15 +1483,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -959,10 +959,10 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
- isOversleep = false;MinecraftTimings.serverOversleep.stopTiming();
+ isOversleep = false;
// Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1540,9 +1528,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end
@@ -1539,9 +1527,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing
- try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) {
@@ -970,9 +970,9 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
- }
+ this.runAllTasks();
// Paper end
// Paper start
// Paper start - Server Tick Events
long endTime = System.nanoTime();
@@ -1567,7 +1553,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1566,7 +1552,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickTime(l - i);
this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -980,7 +980,7 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
}
private int computeNextAutosaveInterval() {
@@ -1629,9 +1614,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1628,9 +1613,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing();
});
@@ -990,7 +990,7 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
// Paper start - Folia scheduler API
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
getAllLevels().forEach(level -> {
@@ -1648,21 +1631,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1647,21 +1630,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
this.profiler.push("commandFunctions");
@@ -1010,17 +1010,17 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
- MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper
// Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - optimize time updates
// Paper start - Perf: Optimize time updates
for (final ServerLevel level : this.getAllLevels()) {
@@ -1682,7 +1660,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1681,7 +1659,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
// Paper end
// Paper end - Perf: Optimize time updates
- MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper
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
@@ -1707,14 +1684,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1706,14 +1683,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick");
try {
@@ -1035,7 +1035,7 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1729,24 +1704,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1728,24 +1703,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
this.profiler.popPush("connection");
@@ -1061,7 +1061,7 @@ index abf4346111f682ca59d009f29a9c247057e44f12..19c388c98d7e86391b4798bcf3a19d99
this.profiler.popPush("send chunks");
iterator = this.playerList.getPlayers().iterator();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index fe04db99bb6e56cb23f9dbd9a8992837ada2cd6e..7fb484e4a97070e75b8611a59d84c9732ed5d17b 100644
index b164b09c90b607262938f3c2552d6b5790c27786..b0708f5d72a31720e3696ee707ec21229672bcf0 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -58,7 +58,6 @@ import org.apache.logging.log4j.Level;
@@ -1077,7 +1077,7 @@ index fe04db99bb6e56cb23f9dbd9a8992837ada2cd6e..7fb484e4a97070e75b8611a59d84c973
public void handleConsoleInputs() {
- MinecraftTimings.serverCommandTimer.startTiming(); // Spigot
// Paper start - use proper queue
// Paper start - Perf: use proper queue
ConsoleInput servercommand;
while ((servercommand = this.serverCommandQueue.poll()) != null) {
@@ -502,7 +500,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -1111,7 +1111,7 @@ index fe04db99bb6e56cb23f9dbd9a8992837ada2cd6e..7fb484e4a97070e75b8611a59d84c973
// Paper start
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
index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..9ea2c8d06af2f6e082f8a2401092a7878afa9487 100644
index 5637dcf1f6c76df33988c3279171aafbc1868a82..5c94fb3f0d586ef1b8554549491f3eed4bd1a28d 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,13 +1,10 @@
@@ -1198,7 +1198,7 @@ index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..9ea2c8d06af2f6e082f8a2401092a787
import org.slf4j.Logger;
// CraftBukkit start
@@ -547,15 +533,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -546,15 +532,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
protected void tick(BooleanSupplier shouldKeepTicking) {
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
@@ -1214,7 +1214,7 @@ index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..9ea2c8d06af2f6e082f8a2401092a787
}
gameprofilerfiller.pop();
@@ -1155,24 +1137,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1147,24 +1129,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper start - optimised tracker
private final void processTrackQueue() {
@@ -1244,7 +1244,7 @@ index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..9ea2c8d06af2f6e082f8a2401092a787
}
}
// Paper end - optimised tracker
@@ -1187,7 +1159,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1179,7 +1151,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
List<ServerPlayer> list = Lists.newArrayList();
List<ServerPlayer> list1 = this.level.players();
ObjectIterator objectiterator = this.entityMap.values().iterator();
@@ -1252,7 +1252,7 @@ index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..9ea2c8d06af2f6e082f8a2401092a787
ChunkMap.TrackedEntity playerchunkmap_entitytracker;
@@ -1212,17 +1183,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1204,17 +1175,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
playerchunkmap_entitytracker.serverEntity.sendChanges();
}
}
@@ -1271,13 +1271,13 @@ index 4160fff108cc83bc0a1f0a0389ab22f722d483b4..9ea2c8d06af2f6e082f8a2401092a787
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f0be57340 100644
index 77a2458b8acb21c64676934cd8d6b05ef6351c10..cb755283ef6bf8812e2c2ad8b546627a334b75a2 100644
--- a/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 {
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, x1, z1); // Paper - sync load info
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - Add debug for sync chunk loads
- this.level.timings.syncChunkLoad.startTiming(); // Paper
chunkproviderserver_b.managedBlock(completablefuture::isDone);
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system
@@ -1294,7 +1294,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f
- } // Paper - Timings
}
// Paper start - duplicate save, but call incremental
// Paper start - Incremental chunk and player saving; duplicate save, but call incremental
public void saveIncrementally() {
this.runDistanceManagerUpdates();
- try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings
@@ -1302,9 +1302,9 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f
- } // Paper - Timings
+ this.chunkMap.saveIncrementally();
}
// Paper end
// Paper end - Incremental chunk and player saving
@@ -485,23 +479,17 @@ public class ServerChunkCache extends ChunkSource {
@@ -492,23 +486,17 @@ public class ServerChunkCache extends ChunkSource {
@Override
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
this.level.getProfiler().push("purge");
@@ -1328,7 +1328,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f
this.level.getProfiler().pop();
this.clearCache();
}
@@ -517,13 +505,11 @@ public class ServerChunkCache extends ChunkSource {
@@ -524,13 +512,11 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.push("pollingChunks");
gameprofilerfiller.push("filteringLoadedChunks");
// Paper - optimise chunk tick iteration
@@ -1340,17 +1340,17 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f
gameprofilerfiller.popPush("naturalSpawnCount");
- this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
int k = this.distanceManager.getNaturalSpawnChunkCount();
// Paper start - per player mob spawning
// Paper start - Optional per player mob spawns
int naturalSpawnChunkCount = k;
@@ -548,7 +534,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -555,7 +541,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);
}
// Paper end
// Paper end - Optional per player mob spawns
- this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings
this.lastSpawnState = spawnercreature_d;
gameprofilerfiller.popPush("spawnAndTick");
@@ -657,19 +642,14 @@ public class ServerChunkCache extends ChunkSource {
@@ -664,19 +649,14 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
@@ -1370,7 +1370,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f
// Paper start - optimise chunk tick iteration
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
@@ -683,8 +663,6 @@ public class ServerChunkCache extends ChunkSource {
@@ -690,8 +670,6 @@ public class ServerChunkCache extends ChunkSource {
}
}
// Paper end - optimise chunk tick iteration
@@ -1380,7 +1380,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f
gameprofilerfiller.pop();
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d3866c804187 100644
index 284bf39fbf1e21f3d9b628c3fe309e1b7e305bed..cc50dd6b75f0d2ed2202c39598c5c9b1c3090d0f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1,7 +1,6 @@
@@ -1391,7 +1391,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
import com.google.common.collect.Lists;
import com.mojang.datafixers.DataFixer;
import com.mojang.datafixers.util.Pair;
@@ -850,7 +849,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -845,7 +844,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
gameprofilerfiller.popPush("tickPending");
@@ -1399,7 +1399,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
if (!this.isDebug() && flag) {
j = this.getGameTime();
gameprofilerfiller.push("blockTicks");
@@ -859,24 +857,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -854,24 +852,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.fluidTicks.tick(j, 65536, this::tickFluid);
gameprofilerfiller.pop();
}
@@ -1424,7 +1424,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
}
this.handlingTick = false;
@@ -889,7 +880,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -884,7 +875,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (flag1 || this.emptyTime++ < 300) {
gameprofilerfiller.push("entities");
@@ -1432,7 +1432,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
if (this.dragonFight != null && flag) {
gameprofilerfiller.push("dragonFight");
this.dragonFight.tick();
@@ -897,7 +887,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -892,7 +882,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -1440,7 +1440,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
this.entityTickList.forEach((entity) -> {
if (!entity.isRemoved()) {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
@@ -924,8 +913,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -919,8 +908,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
});
@@ -1449,7 +1449,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
gameprofilerfiller.pop();
this.tickBlockEntities();
}
@@ -1038,7 +1025,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1033,7 +1020,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
} // Paper
gameprofilerfiller.popPush("tickBlocks");
@@ -1457,7 +1457,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking
LevelChunkSection[] sections = chunk.getSections();
@@ -1072,7 +1058,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1067,7 +1053,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper end - optimise random block ticking
@@ -1465,7 +1465,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
gameprofilerfiller.pop();
}
@@ -1385,9 +1370,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1380,9 +1365,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
currentlyTickingEntity.lazySet(entity);
}
// Paper end - log detailed entity tick information
@@ -1475,7 +1475,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
/*if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { // Paper - comment out - EAR 2, reimplement below
entity.tickCount++;
timer = entity.getType().inactiveTickTimer.startTiming(); try { // Paper - timings
@@ -1396,11 +1379,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1391,11 +1374,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return;
}*/ // Paper - comment out EAR 2
// Spigot end
@@ -1487,7 +1487,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
entity.setOldPosAndRot();
ProfilerFiller gameprofilerfiller = this.getProfiler();
@@ -1410,12 +1389,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1405,12 +1384,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
});
gameprofilerfiller.incrementCounter("tickNonPassenger");
if (isActive) { // Paper - EAR 2
@@ -1500,7 +1500,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) {
@@ -1438,8 +1415,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1433,8 +1410,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -1509,7 +1509,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -1468,8 +1443,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1463,8 +1438,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickPassenger(passenger, entity2);
}
@@ -1518,16 +1518,16 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
}
} else {
passenger.stopRiding();
@@ -1489,26 +1462,22 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1484,26 +1457,22 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
}
- try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) {
- if (doFull) {
- this.saveLevelData();
- this.saveLevelData(true); // Paper - Write SavedData IO async
- }
+ if (doFull) {
+ this.saveLevelData();
+ this.saveLevelData(true); // Paper - Write SavedData IO async
+ }
- this.timings.worldSaveChunks.startTiming(); // Paper
@@ -1555,9 +1555,9 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
}
+ // CraftBukkit end
}
// Paper end
// Paper end - Incremental chunk and player saving
@@ -1522,7 +1491,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1517,7 +1486,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit
@@ -1565,7 +1565,7 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -1532,11 +1500,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1527,11 +1495,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
@@ -1578,10 +1578,10 @@ index 9801b283da75aa63d7eba33d08322285c86c241c..21b40a47160bd2904cb0a482c066d386
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index cafd0cde26a623861c7d3d01b496cb32fdc77335..b51fec201db06edbbfb5e6e8abd137bd194cb542 100644
index 42b433d9461d0912b39542263684323369469ac0..1461ee40c7b563869e75c036bfb0dd2656bc780f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2400,7 +2400,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2380,7 +2380,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleCommand(String s) { // Paper - private -> public
org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher
@@ -1589,7 +1589,7 @@ index cafd0cde26a623861c7d3d01b496cb32fdc77335..b51fec201db06edbbfb5e6e8abd137bd
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -2410,20 +2409,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2390,20 +2389,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -1612,7 +1612,7 @@ index cafd0cde26a623861c7d3d01b496cb32fdc77335..b51fec201db06edbbfb5e6e8abd137bd
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index be474729d41b37968b53b84eb87ac96a4d7d46a4..3f437ca10d3bfc839ac85590dec677cd84629db6 100644
index e0ee45036b9bf14a6e2013fe291cde0402b85b1f..257b4fd11d398513a61485ab2019b30eb0d2c9ac 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@
@@ -1622,7 +1622,7 @@ index be474729d41b37968b53b84eb87ac96a4d7d46a4..3f437ca10d3bfc839ac85590dec677cd
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -1236,7 +1235,6 @@ public abstract class PlayerList {
@@ -1235,7 +1234,6 @@ public abstract class PlayerList {
public void saveAll(int interval) {
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
@@ -1630,16 +1630,16 @@ index be474729d41b37968b53b84eb87ac96a4d7d46a4..3f437ca10d3bfc839ac85590dec677cd
int numSaved = 0;
long now = MinecraftServer.currentTick;
for (int i = 0; i < this.players.size(); ++i) {
@@ -1247,7 +1245,6 @@ public abstract class PlayerList {
@@ -1246,7 +1244,6 @@ public abstract class PlayerList {
}
// Paper end
// Paper end - Incremental chunk and player saving
}
- MinecraftTimings.savePlayers.stopTiming(); // Paper
return null; }); // Paper - ensure main
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 081937597a8984b52a1e92d4c6032c04c942116e..3d05784d9ed8ac725fc019fbbb8255e57884e8b7 100644
index edc723ea5ca3a325106e7af38c60dbf9f0f5fb77..ddb763dfa813a6b6c3d924511ee9965c1435e2ee 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -331,10 +331,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -1667,7 +1667,7 @@ index 081937597a8984b52a1e92d4c6032c04c942116e..3d05784d9ed8ac725fc019fbbb8255e5
return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS;
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index e914c36bede52838f47cd88b442b9cde3e4666f3..327af739b30b94e06d94ccde6473f7d762c808d5 100644
index 6071451339080bbdd98fb634791a56988984c8bc..640cf73adf6d5dedf41b0a083cc34b3ba9bb8f2b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -1679,7 +1679,7 @@ index e914c36bede52838f47cd88b442b9cde3e4666f3..327af739b30b94e06d94ccde6473f7d7
public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java
index 57ef7fbba3028c28231abf7b7ae78aa019323536..5d76b4c3897d65d015a5dc9d8689c146ce56fa68 100644
index 1e71cde7cb7654f1c21ae5e27e2fad7b58f593eb..fbbfefc97ca82fefc8aaa5d3f0a99520b4debdaa 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java
@@ -15,7 +15,6 @@ public abstract class Behavior<E extends LivingEntity> implements BehaviorContro
@@ -1687,7 +1687,7 @@ index 57ef7fbba3028c28231abf7b7ae78aa019323536..5d76b4c3897d65d015a5dc9d8689c146
// Paper start - configurable behavior tick rate and timings
private final String configKey;
- private final co.aikar.timings.Timing timing;
// Paper end
// Paper end - configurable behavior tick rate and timings
public Behavior(Map<MemoryModuleType<?>, MemoryStatus> requiredMemoryState) {
@@ -37,7 +36,6 @@ public abstract class Behavior<E extends LivingEntity> implements BehaviorContro
@@ -1695,7 +1695,7 @@ index 57ef7fbba3028c28231abf7b7ae78aa019323536..5d76b4c3897d65d015a5dc9d8689c146
}
this.configKey = key.toLowerCase(java.util.Locale.ROOT);
- this.timing = co.aikar.timings.MinecraftTimings.getBehaviorTimings(configKey);
// Paper end
// Paper end - configurable behavior tick rate and timings
}
@@ -58,9 +56,7 @@ public abstract class Behavior<E extends LivingEntity> implements BehaviorContro
@@ -1754,7 +1754,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
index 1496b870eaf99d4c3b6dd01159d7c2893fd9366b..e7c8d223fb6d82b017031d58a17050081e70ff3b 100644
index 9fd2fcf8437c866e4fe7a44108cde338e1a9f9a2..111d28fc2e26783a714b10f91877b09f5e8f8fa1 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1,10 +1,7 @@
@@ -1811,7 +1811,7 @@ index 1496b870eaf99d4c3b6dd01159d7c2893fd9366b..e7c8d223fb6d82b017031d58a1705008
// CraftBukkit end
public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -179,7 +169,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -178,7 +168,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end - add paper world config
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
@@ -1819,7 +1819,7 @@ index 1496b870eaf99d4c3b6dd01159d7c2893fd9366b..e7c8d223fb6d82b017031d58a1705008
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
@@ -295,7 +284,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -294,7 +283,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {}
});
// CraftBukkit end
@@ -1827,7 +1827,7 @@ index 1496b870eaf99d4c3b6dd01159d7c2893fd9366b..e7c8d223fb6d82b017031d58a1705008
this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
@@ -1270,15 +1258,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1269,15 +1257,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("blockEntities");
@@ -1843,9 +1843,9 @@ index 1496b870eaf99d4c3b6dd01159d7c2893fd9366b..e7c8d223fb6d82b017031d58a1705008
// Spigot start
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
boolean flag = this.tickRateManager().runsNormally();
@@ -1307,9 +1292,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1306,9 +1291,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
this.blockEntityTickers.removeAll(toRemove);
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
- this.timings.tileEntityTick.stopTiming(); // Spigot
this.tickingBlockEntities = false;
@@ -1854,7 +1854,7 @@ index 1496b870eaf99d4c3b6dd01159d7c2893fd9366b..e7c8d223fb6d82b017031d58a1705008
this.spigotConfig.currentPrimedTnt = 0; // Spigot
}
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index dc211c6aedc178ac50b7d05aab3662c422211cbd..45ddd30ca0744901e3d40a8d26c490ca08471cff 100644
index 17e9f3a30e287faf210e08dc7eb177a70f049f43..40731adc1b85727d83aeab29b0ebde7fc366584c 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -133,7 +133,6 @@ public final class NaturalSpawner {
@@ -1874,7 +1874,7 @@ index dc211c6aedc178ac50b7d05aab3662c422211cbd..45ddd30ca0744901e3d40a8d26c490ca
}
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 3f2fdf73e2e520838c7b59fe994e67ab2d1a4d6b..2c1b9221b936c8f8bb00970cfe1100161ecffd36 100644
index 73d6f881a7d4d8ff96040d34ac502e5b0937d577..e815d53c327709d977045e016f8d2e9338500002 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -103,13 +103,6 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -1911,7 +1911,7 @@ index 4ce7a7947fa727e64556148f923508ce76c128c4..bfc81572df24b5afbacee6f290cffaa9
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
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
index 27e8ee4507460b1cc72de692b41562b9f4f13929..b544446deb857a6a580b7a7be5a1ea571f996ff6 100644
index f6bfe4dc7c2c2c7d7d7852c76f15f84928bc3e9f..b2807c4493a558e2fd11b2a1f04593c6299d5874 100644
--- a/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 {
@@ -1949,7 +1949,7 @@ index 27e8ee4507460b1cc72de692b41562b9f4f13929..b544446deb857a6a580b7a7be5a1ea57
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 9badf09271a4ff99874110cf0622000d1eb71546..dd95c9d931da5ee2cb3e620c71cc90d178c51fbc 100644
index 7a6f62787411a1e160576e7a7da4122b4f0ef5b6..cac0f51ff4f6b1bc498d24fa8ecdb910b3d8f010 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -343,8 +343,8 @@ public class Main {
@@ -2107,7 +2107,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
index ec2396f0e5d62b10450eaa7239a8c5479638b3c3..995ae8f2f76bf0255d7eac4190c5b961bfb17f24 100644
index 509f8487a170f3dc84b091acf16df26e42391189..c00c8655db9813eac0498da6c0c75d9b199d6c7d 100644
--- a/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 {

View File

@@ -31,10 +31,10 @@ index 46954db7ecd35ac4018fdf476df7c8020d7ce6c8..044c51ebb058fc36074fd178929e3279
public PlayerAreaMap() {
super();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 92f9d55c224cd4e25060d8751ccb28a978979241..734273b452caf133a7e4671c53c670c94a0c7ee1 100644
index 7ceb4ec480d8799d0bdbd645e5760d2c952b679b..552a68cacea57fec0dcaf22672ba8e12c677ee5f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
private UUID originWorld;
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
public boolean fixedPose = false; // Paper - Expand Pose API
@@ -62,10 +62,10 @@ index 92f9d55c224cd4e25060d8751ccb28a978979241..734273b452caf133a7e4671c53c670c9
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
@@ -4922,4 +4929,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4915,4 +4922,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
// Paper end - Expose entity id counter
+
+ // Leaves start - leaves ex data
+ public CompoundTag getLeavesData() {

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
index 19c388c98d7e86391b4798bcf3a19d9932c81aed..e5d331d0e5bf2d80685289430682ca7a9ccbefff 100644
index a09aef16a58bf713ec670ad23d44255943016743..38c52f07f7790ff1b6aa0c8f19db98cb36e9ce7c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1143,6 +1143,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1141,6 +1141,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
LOGGER.info("Done ({})! For help, type \"help\"", doneTime);
// Paper end
@@ -17,7 +17,7 @@ index 19c388c98d7e86391b4798bcf3a19d9932c81aed..e5d331d0e5bf2d80685289430682ca7a
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
Arrays.fill( this.recentTps, 20 );
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 7fb484e4a97070e75b8611a59d84c9732ed5d17b..27f7507a50537ec76f88518d3584d7c880f6eee4 100644
index b0708f5d72a31720e3696ee707ec21229672bcf0..129c2e6f0cc9d752e7ca5934e13e89358af39180 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -220,6 +220,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -31,7 +31,7 @@ index 7fb484e4a97070e75b8611a59d84c9732ed5d17b..27f7507a50537ec76f88518d3584d7c8
this.setPvpAllowed(dedicatedserverproperties.pvp);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 12b5796ac962b73a36538d313b77c07784d6ebe7..9e64df1a42ad11f4852a591eec40d37b3ee418a3 100644
index 79ea938ffedc1ac24e877bfccba876ba9cfa79b3..a3b2948912a6a6e2a6131efdaf7e17d0e6feb3b3 100644
--- a/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 {
@@ -58,7 +58,7 @@ index 12b5796ac962b73a36538d313b77c07784d6ebe7..9e64df1a42ad11f4852a591eec40d37b
@Override
public void restart() {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index dd95c9d931da5ee2cb3e620c71cc90d178c51fbc..d1ebe4f340c53f987a42fffcc462f2eab4686d1b 100644
index cac0f51ff4f6b1bc498d24fa8ecdb910b3d8f010..0373c1cc266316fc29a789e0f193935e288dbb06 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -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
index e5d331d0e5bf2d80685289430682ca7a9ccbefff..cba7872ef6fd648e2a9b4c997a97ae314557213c 100644
index 38c52f07f7790ff1b6aa0c8f19db98cb36e9ce7c..5582fc4548cdaef69f4cf888f02d6d280adb3eaf 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1714,6 +1714,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1713,6 +1713,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("server gui refresh");
@@ -36,7 +36,7 @@ index e5d331d0e5bf2d80685289430682ca7a9ccbefff..cba7872ef6fd648e2a9b4c997a97ae31
((Runnable) this.tickables.get(i)).run();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index d28d0ef6105ddeb562ddf31ae9088739856941fc..9b73df7fbd869ce51bd01a8d8b46d00fe7896126 100644
index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..8aa1337b420e1c9fbf51f951f14a63d89f61d3f4 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -116,6 +116,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -44,7 +44,7 @@ index d28d0ef6105ddeb562ddf31ae9088739856941fc..9b73df7fbd869ce51bd01a8d8b46d00f
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
+ top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePayload(player, packet.payload()); // Leaves - protocol
// Paper start - handle brand payload packet
// Paper start - Brand support
if (packet.payload() instanceof net.minecraft.network.protocol.common.custom.BrandPayload brandPayload) {
this.player.clientBrandName = brandPayload.brand();
@@ -133,6 +134,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -56,7 +56,7 @@ index d28d0ef6105ddeb562ddf31ae9088739856941fc..9b73df7fbd869ce51bd01a8d8b46d00f
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 3f437ca10d3bfc839ac85590dec677cd84629db6..3dba9e1361d8ea978f1a7f54d6fd03aab02053f4 100644
index 257b4fd11d398513a61485ab2019b30eb0d2c9ac..753c10ca9e802e11f5b9b03b5df8e047f14aece2 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -346,6 +346,8 @@ public abstract class PlayerList {
@@ -68,16 +68,16 @@ index 3f437ca10d3bfc839ac85590dec677cd84629db6..3dba9e1361d8ea978f1a7f54d6fd03aa
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -597,6 +599,7 @@ public abstract class PlayerList {
@@ -596,6 +598,7 @@ public abstract class PlayerList {
return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())));
}
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
+ top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePlayerLeave(entityplayer); // Leaves - protocol
// Paper end
// Paper end - Fix kick event leave message not being sent
ServerLevel worldserver = entityplayer.serverLevel();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 98e673938df540f47ef882620daadd2da566f671..c8e938ec5b740b2ffd198cccc349d6ae69cda50d 100644
index a3b2948912a6a6e2a6131efdaf7e17d0e6feb3b3..da4660b93b64100ed0f30cde5bcaafa64174fb7a 100644
--- a/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 {

View File

@@ -5,16 +5,13 @@ 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
index 734273b452caf133a7e4671c53c670c94a0c7ee1..b1a4824b23f15f944077bce56170f1a790575c48 100644
index 552a68cacea57fec0dcaf22672ba8e12c677ee5f..fc27159b0638a1ddbf146e8036249daea59e6642 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -506,38 +506,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -505,36 +505,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public boolean updatingSectionStatus = false;
// Paper end
+ // Leaves - fix gravity block duper
// Paper start - optimise entity tracking
final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this);
- // Paper start - make end portalling safe
- public BlockPos portalBlock;
- public ServerLevel portalWorld;
@@ -45,8 +42,9 @@ index 734273b452caf133a7e4671c53c670c94a0c7ee1..b1a4824b23f15f944077bce56170f1a7
- this.teleportTo(worldserver, null);
- }
- // Paper end - make end portalling safe
public boolean isLegacyTrackingEntity = false;
+ // Leaves - fix gravity block duper
// Paper start - optimise entity tracking
final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this);
@@ -3182,7 +3153,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
@@ -58,7 +56,7 @@ index 734273b452caf133a7e4671c53c670c94a0c7ee1..b1a4824b23f15f944077bce56170f1a7
}
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 21a4669b01e9c57100224e20500bc23f8e101434..65d60a0a27fa9e05b86b32dada49b5c36e56f39b 100644
index a75e48f27cd8fbf6165c96c5df09671494eb9dd8..177317d75ccb2a75f75a814f10429f3b5ee0875c 100644
--- a/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 {
@@ -88,7 +86,7 @@ index 21a4669b01e9c57100224e20500bc23f8e101434..65d60a0a27fa9e05b86b32dada49b5c3
// Paper start - Configurable EntityFallingBlock height nerf
if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) {
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 c82ebcac07033d887af499f81520982fbe5ed4f1..ef38de1c64f067250c12cceca24f68ef3a8feb74 100644
index a0c1db8cfebaa0344012cc0af18d6231cdcdcbb8..6482c2456d9dc9b4983f691f388b7ec045d2cab6 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -61,12 +61,19 @@ public class EndPortalBlock extends BaseEntityBlock {

View File

@@ -5,19 +5,19 @@ Subject: [PATCH] Fix trading with the void
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 21b40a47160bd2904cb0a482c066d3866c804187..9be0aa933b2a1d5d2962871102ffa576df56245b 100644
index cc50dd6b75f0d2ed2202c39598c5c9b1c3090d0f..384327f4a77e0fd92a5de35c4beba767143bbc36 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2809,11 +2809,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -2789,11 +2789,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot end
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
- // Paper start
- // Paper start - Fix merchant inventory not closing on entity removal
- if (entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) {
- merchant.getTrader().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED);
- }
- // Paper end
- // Paper end - Fix merchant inventory not closing on entity removal
+ // Leaves - fix trading with the void
for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) {
h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper
h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper - Inventory close reason
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fakeplayer support
diff --git a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java
index 00bf770559d9c628119658cb027eb0b970c04e1b..7284df7d0d4242f55ecd63df2c137ec3e7c2f25c 100644
index a327973e37b5b8d4e15683ef24548482ac3dc3d5..65d82963d611a6dbbd7ca58d363854e4fad59230 100644
--- a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java
+++ b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java
@@ -42,6 +42,7 @@ public abstract class SimpleCriterionTrigger<T extends SimpleCriterionTrigger.Si
@@ -17,7 +17,7 @@ index 00bf770559d9c628119658cb027eb0b970c04e1b..7284df7d0d4242f55ecd63df2c137ec3
Set<CriterionTrigger.Listener<T>> set = (Set) playerAdvancements.criterionData.get(this); // Paper - fix AdvancementDataPlayer leak
if (set != null && !set.isEmpty()) {
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index 2ae08b21c63490bbf8cd870f9585d82ed131f815..c6f773afc39e7c97d13d1977a7609fc46714709d 100644
index b189aeb8646b5385c7cca0c4babfcb071a642220..d6179829579a07c29565d024f53069375be53fb7 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -339,6 +339,14 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -36,36 +36,28 @@ index 2ae08b21c63490bbf8cd870f9585d82ed131f815..c6f773afc39e7c97d13d1977a7609fc4
if (this.packetListener != null) {
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
index cba7872ef6fd648e2a9b4c997a97ae314557213c..85169a9082268fa77453a64196a419d59cb88c9a 100644
index 5582fc4548cdaef69f4cf888f02d6d280adb3eaf..d90955687caa5fbe925c55184ac14fa3946afa74 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -123,6 +123,7 @@ import net.minecraft.util.profiling.metrics.storage.MetricsPersister;
import net.minecraft.util.thread.ReentrantBlockableEventLoop;
import net.minecraft.world.Difficulty;
import net.minecraft.world.RandomSequences;
+import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.ai.village.VillageSiege;
import net.minecraft.world.entity.npc.CatSpawner;
@@ -665,6 +666,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -663,6 +663,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// Paper end
// Paper end - Configurable player collision
+ top.leavesmc.leaves.bot.ServerBot.loadAllBot(); // Leaves - load resident bot
+
this.server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.POSTWORLD);
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
this.connection.acceptConnections();
@@ -965,6 +968,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -963,6 +965,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Shutdown and don't bother finishing
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
+ top.leavesmc.leaves.bot.ServerBot.saveOrRemoveAllBot(); // Leaves - save or remove bot
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
index f655e0ae4a287886d0291cd0089bad2000249d0f..2694f899241ad8ce06d3bcba78550af5626561ce 100644
index 24e5993b281448734eb67c7a8439a349bbf9fd72..677c4d5360509f212ccbe4ff7418e0e7ee1fbb59 100644
--- a/src/main/java/net/minecraft/server/PlayerAdvancements.java
+++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java
@@ -221,6 +221,11 @@ public class PlayerAdvancements {
@@ -81,10 +73,10 @@ index f655e0ae4a287886d0291cd0089bad2000249d0f..2694f899241ad8ce06d3bcba78550af5
AdvancementProgress advancementprogress = this.getOrStartProgress(advancement);
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
index 9ea2c8d06af2f6e082f8a2401092a7878afa9487..738787aa0212829a15770f65e37441a3fa76812d 100644
index 5c94fb3f0d586ef1b8554549491f3eed4bd1a28d..69a8dc72609e73c85581ac782b3d5ae09ed7c7f7 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1417,6 +1417,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1413,6 +1413,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
} else if (this.seenBy.remove(player.connection)) {
this.serverEntity.removePairing(player);
@@ -99,7 +91,7 @@ index 9ea2c8d06af2f6e082f8a2401092a7878afa9487..738787aa0212829a15770f65e37441a3
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 3506cd1c5960b58fe2805d9cc7ea6758f45d4e2a..41acc2e1883af2220dcdfb9bbefef1976a54d202 100644
index 4a0df97430cf025d1e830f681ef791ecec985102..23260d76c00e37df8499168ebfae21f0ee077cca 100644
--- a/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;
@@ -119,8 +111,8 @@ index 3506cd1c5960b58fe2805d9cc7ea6758f45d4e2a..41acc2e1883af2220dcdfb9bbefef197
- containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
- }
- // Paper end
- if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - auto close while frozen
- this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
- 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.containerMenu = this.inventoryMenu;
+ // Leaves start - skip bot
+ if (!(this instanceof ServerBot)) {
@@ -129,8 +121,8 @@ index 3506cd1c5960b58fe2805d9cc7ea6758f45d4e2a..41acc2e1883af2220dcdfb9bbefef197
+ containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
+ }
+ // Paper end
+ if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - auto close while frozen
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
+ 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.containerMenu = this.inventoryMenu;
+ }
}
@@ -171,7 +163,7 @@ index 3506cd1c5960b58fe2805d9cc7ea6758f45d4e2a..41acc2e1883af2220dcdfb9bbefef197
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld());
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
index b51fec201db06edbbfb5e6e8abd137bd194cb542..e60bc1b390cd47c2c97735a0dcbe1ecc2c515640 100644
index 1461ee40c7b563869e75c036bfb0dd2656bc780f..22b7041cb524dfd9fff6bbfb8e47d69de0a3ac80 100644
--- a/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
@@ -190,7 +182,7 @@ index b51fec201db06edbbfb5e6e8abd137bd194cb542..e60bc1b390cd47c2c97735a0dcbe1ecc
player.connection = this;
player.getTextFilter().join();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 3dba9e1361d8ea978f1a7f54d6fd03aab02053f4..89249723a490c5b08916241279ab94f82e41a942 100644
index 753c10ca9e802e11f5b9b03b5df8e047f14aece2..7612ee6c93c4ad783d71b125ed3b2fe91ab7c166 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -120,6 +120,8 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
@@ -224,9 +216,9 @@ index 3dba9e1361d8ea978f1a7f54d6fd03aab02053f4..89249723a490c5b08916241279ab94f8
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
if (jm != null && !jm.equals(net.kyori.adventure.text.Component.empty())) { // Paper - Adventure
@@ -1000,6 +1017,13 @@ public abstract class PlayerList {
@@ -999,6 +1016,13 @@ public abstract class PlayerList {
}
// Paper end
// Paper end - Add PlayerPostRespawnEvent
+ // Leaves start - bot support
+ if (top.leavesmc.leaves.LeavesConfig.fakeplayerSupport) {
@@ -238,7 +230,7 @@ index 3dba9e1361d8ea978f1a7f54d6fd03aab02053f4..89249723a490c5b08916241279ab94f8
// CraftBukkit end
return entityplayer1;
}
@@ -1116,11 +1140,16 @@ public abstract class PlayerList {
@@ -1115,11 +1139,16 @@ public abstract class PlayerList {
}
public String[] getPlayerNamesArray() {
@@ -256,7 +248,7 @@ index 3dba9e1361d8ea978f1a7f54d6fd03aab02053f4..89249723a490c5b08916241279ab94f8
return astring;
}
@@ -1599,4 +1628,16 @@ public abstract class PlayerList {
@@ -1598,4 +1627,16 @@ public abstract class PlayerList {
public boolean isAllowCheatsForAllPlayers() {
return this.allowCheatsForAllPlayers;
}
@@ -274,7 +266,7 @@ index 3dba9e1361d8ea978f1a7f54d6fd03aab02053f4..89249723a490c5b08916241279ab94f8
+ // 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
index b1a4824b23f15f944077bce56170f1a790575c48..d28f4e71a370606cf1626f7176aef815365b6cbe 100644
index fc27159b0638a1ddbf146e8036249daea59e6642..30a2cd24727d1cffc31b077b383487f3bdb6ce4a 100644
--- a/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
@@ -300,7 +292,7 @@ index 5706c9b744b660d6f7639b8152dce82799c4b466..50b0711cd62224ed3e26da45831673c3
private int timeUntilHooked;
private float fishAngle;
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
index 1548bc20988fea3f032d71cad40299fdf5b08b71..067f44d1fb245a315ec1c0fbccfef9b169c02d02 100644
index 48f634a7521d31c1e9dfd3cfc83139d428dbd37a..7cef5c518207752f7e1bfdd5bbec55fe9fafca6b 100644
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
@@ -406,6 +406,8 @@ public abstract class AbstractContainerMenu {
@@ -337,7 +329,7 @@ index 1548bc20988fea3f032d71cad40299fdf5b08b71..067f44d1fb245a315ec1c0fbccfef9b1
FeatureFlagSet featureflagset = player.level().enabledFeatures();
diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
index 7d7d37334321c844958ce09e77547dd61dcba6c8..0e3eabf4b35082ce640bdf2ba15019b67e0c6ca2 100644
index ed80960777b18faca2d6a99783e53daf5fa19e09..9d492a2a45a2088f4bf28c85f04c22fa70a2996a 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
@@ -68,6 +68,11 @@ public class PhantomSpawner implements CustomSpawner {
@@ -353,7 +345,7 @@ index 7d7d37334321c844958ce09e77547dd61dcba6c8..0e3eabf4b35082ce640bdf2ba15019b6
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));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index c8e938ec5b740b2ffd198cccc349d6ae69cda50d..69a7933bca98d29f215edfe3839e416207d083f9 100644
index da4660b93b64100ed0f30cde5bcaafa64174fb7a..6b2c19f3ea4fb8e2f6afc165ece6d0c66ba59a75 100644
--- a/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;
@@ -385,7 +377,7 @@ index c8e938ec5b740b2ffd198cccc349d6ae69cda50d..69a7933bca98d29f215edfe3839e4162
+ // Leaves end - Bot API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..fa92ba466c958eea0330cd24bf45b96958a13204 100644
index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..dc7ba0ce76031e6dd7e550ceaf3b2f97cbc307f1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -54,6 +54,8 @@ import org.bukkit.plugin.Plugin;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add isShrink to EntityResurrectEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 327af739b30b94e06d94ccde6473f7d762c808d5..ffc10deeb66a7038b38c10dd0c38f7f2cd2be22d 100644
index 640cf73adf6d5dedf41b0a083cc34b3ba9bb8f2b..3e84707fe7eace5c249eb2a1299ea841356bfc78 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1613,12 +1613,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -23,7 +23,7 @@ index 327af739b30b94e06d94ccde6473f7d762c808d5..ffc10deeb66a7038b38c10dd0c38f7f2
itemstack1.shrink(1);
}
if (itemstack != null && this instanceof ServerPlayer) {
@@ -4544,3 +4544,4 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4543,3 +4543,4 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Budding Amethyst can push by piston
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 67e1362a398daf13e128b64523e8db69fbb46fe1..14610260905dc6922bf173d1c2fc231d92e05a6f 100644
index e815d53c327709d977045e016f8d2e9338500002..6214df7dc09b2e50c2dcf2d60b3a02cc39329e2c 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -602,6 +602,12 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -22,7 +22,7 @@ index 67e1362a398daf13e128b64523e8db69fbb46fe1..14610260905dc6922bf173d1c2fc231d
private final BlockState first;
diff --git a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java
index ee24eac5e37a2fd0c8c37365ea10d03749beb9a7..915b148e8bf5bdf6364253cf81e01b87f420d598 100644
index 7f58c9f5935cd14ea1096de14633f653eb486d7e..b83efe46ecb3ebf2b3d0c4499eec29055663fd3f 100644
--- a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java
@@ -60,4 +60,11 @@ public class BuddingAmethystBlock extends AmethystBlock {
@@ -38,15 +38,15 @@ index ee24eac5e37a2fd0c8c37365ea10d03749beb9a7..915b148e8bf5bdf6364253cf81e01b87
+ // Leaves end - budding amethyst can push by piston
}
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
index 401f1b418a4f57059e991cc958ebadb31239a581..aafcd79bed9683cff5cc9634a01a781ab421d994 100644
index 97a9fbbe6d8435e88e5fe716770e4034ab0db7a7..6c237de3572e060342d79f31c79e3e459b73762a 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -1157,7 +1157,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
public PushReaction getPistonPushReaction() {
- return !this.isDestroyable() ? PushReaction.BLOCK : this.pushReaction; // Paper
+ return !this.isDestroyable() ? PushReaction.BLOCK : this.getBlock().getResetPushReaction() == null ? this.pushReaction : this.getBlock().getResetPushReaction(); // Paper // Leaves - can reset
- return !this.isDestroyable() ? PushReaction.BLOCK : this.pushReaction; // Paper - Protect Bedrock and End Portal/Frames from being destroyed
+ return !this.isDestroyable() ? PushReaction.BLOCK : this.getBlock().getResetPushReaction() == null ? this.pushReaction : this.getBlock().getResetPushReaction(); // Paper - Protect Bedrock and End Portal/Frames from being destroyed // Leaves - can reset
}
public boolean isSolidRender(BlockGetter world, BlockPos pos) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix tripwire update
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
index 0f6ea0adb4b99d934e1a3fcb92562dffb2a45f63..03cbf916cd3af404b2f234cfa15779b8eb7acf38 100644
index 7f2dcf6a9e69779e6f898284b58fb1e32902000c..32021323101396cd91ed0cf88603c0366032639b 100644
--- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
@@ -162,7 +162,7 @@ public class TripWireHookBlock extends Block {
@@ -21,8 +21,8 @@ index 0f6ea0adb4b99d934e1a3fcb92562dffb2a45f63..03cbf916cd3af404b2f234cfa15779b8
TripWireHookBlock.emitState(world, pos, flag4, flag5, flag2, flag3);
if (!beingRemoved) { // Paper - fix tripwire state inconsistency
- if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate
+ // if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate - Leaves - vanilla
- if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update
+ // if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update - Leaves - vanilla
world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3);
if (flag1) {
TripWireHookBlock.notifyNeighbors(block, world, pos, enumdirection);

View File

@@ -102,7 +102,7 @@ index 9d6db4a378036559efab91c8b7dcf2a6b0c2cce6..2c349dc502ce275a8215766933f4855f
}
}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 27f7507a50537ec76f88518d3584d7c880f6eee4..9229b76bb0bb87797cc3f5615d85fe2e5fd0c027 100644
index 129c2e6f0cc9d752e7ca5934e13e89358af39180..2882d720f2b4fbc5f00cfe45a80f48e7810c1424 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -642,7 +642,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -115,7 +115,7 @@ index 27f7507a50537ec76f88518d3584d7c880f6eee4..9229b76bb0bb87797cc3f5615d85fe2e
}
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 9b73df7fbd869ce51bd01a8d8b46d00fe7896126..68a69f09cb541607aa7d4b86d1cb759c1f83ac86 100644
index 8aa1337b420e1c9fbf51f951f14a63d89f61d3f4..19db81d87d1e0eb9716ceaf88dc407db10e48f5f 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -239,10 +239,27 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -147,10 +147,10 @@ index 9b73df7fbd869ce51bd01a8d8b46d00fe7896126..68a69f09cb541607aa7d4b86d1cb759c
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 89249723a490c5b08916241279ab94f82e41a942..23707e17000639167bb11c9c5303ca1e5abf44aa 100644
index 7612ee6c93c4ad783d71b125ed3b2fe91ab7c166..02427973b52898ab2d87d7585801fe14555d2ae4 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1489,7 +1489,7 @@ public abstract class PlayerList {
@@ -1488,7 +1488,7 @@ public abstract class PlayerList {
}
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Dont send useless entity packets
This patch is Powered by Purpur(https://github.com/PurpurMC/Purpur)
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 35674f92a67f93382103c2766df4b678ba5c862f..b0517b9483a8cfd74997f89efdc0d8559b80ae4a 100644
index 529ab44baaf573b97cf7e89560c548642733188f..b2183c298b0c68daee41238735621ff002338a68 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -191,6 +191,7 @@ public class ServerEntity {
@@ -197,6 +197,7 @@ public class ServerEntity {
flag4 = true;
flag5 = true;
}
@@ -17,7 +17,7 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..b0517b9483a8cfd74997f89efdc0d855
} else {
this.wasOnGround = this.entity.onGround();
this.teleportDelay = 0;
@@ -198,6 +199,11 @@ public class ServerEntity {
@@ -204,6 +205,11 @@ public class ServerEntity {
flag4 = true;
flag5 = true;
}
@@ -29,7 +29,7 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..b0517b9483a8cfd74997f89efdc0d855
}
if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) {
@@ -270,6 +276,21 @@ public class ServerEntity {
@@ -276,6 +282,21 @@ public class ServerEntity {
});
}

View File

@@ -6,14 +6,14 @@ Subject: [PATCH] Fix Paper#6045, block goal shouldn't load chunks
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
index 4bbc36404b396500df0d9db380cf223b5897662e..2dda876b01b34f26337f53f2b3b6a2a1110bd96a 100644
index 07519c817cc6de04a98198c43a0c2b02ba3141eb..3f4ba1f12e1d560abe2540d34d6f1cdd94ec5e55 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
@@ -119,6 +119,7 @@ public abstract class MoveToBlockGoal extends Goal {
@@ -120,6 +120,7 @@ public abstract class MoveToBlockGoal extends Goal {
for(int m = 0; m <= l; m = m > 0 ? -m : 1 - m) {
for(int n = m < l && m > -l ? l : 0; n <= l; n = n > 0 ? -n : 1 - n) {
mutableBlockPos.setWithOffset(blockPos, m, k - 1, n);
+ if (top.leavesmc.leaves.LeavesConfig.fixPaper6045 && !this.mob.level().hasChunkAt(mutableBlockPos)) continue; // Leaves - if this block isn't loaded, continue
if (this.mob.isWithinRestriction(mutableBlockPos) && this.isValidTarget(this.mob.level(), mutableBlockPos)) {
this.blockPos = mutableBlockPos;
setTargetPosition(mutableBlockPos.immutable()); // Paper
this.mob.movingTarget = mutableBlockPos == BlockPos.ZERO ? null : mutableBlockPos.immutable(); // Paper

View File

@@ -25,10 +25,10 @@ index 200ed770b57e1a9240abf0473968d4b85cbefe3c..bf16715db2424f0b05854ae7665b4448
public static long getCoordinateKey(final ChunkPos pair) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index d28f4e71a370606cf1626f7176aef815365b6cbe..2446413b944c7955c88b7f2930e86abfe375ab6c 100644
index 30a2cd24727d1cffc31b077b383487f3bdb6ce4a..3f334ff8da00d37364e796685f672edfc8b449bf 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -309,7 +309,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public double yo;
public double zo;
private Vec3 position;

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Move ThreadUnsafeRandom Initialization
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 9be0aa933b2a1d5d2962871102ffa576df56245b..8846eb5b21924b00a870dfdd57fc9afe9988a263 100644
index 384327f4a77e0fd92a5de35c4beba767143bbc36..d046ffa452a6fe2f2f35a961fec792f27ed6df38 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -970,7 +970,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -965,7 +965,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
@@ -19,10 +19,10 @@ index 9be0aa933b2a1d5d2962871102ffa576df56245b..8846eb5b21924b00a870dfdd57fc9afe
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index e7c8d223fb6d82b017031d58a17050081e70ff3b..b8c9684247fcb4af3a42dfae59a3e68a320fd4b4 100644
index 111d28fc2e26783a714b10f91877b09f5e8f8fa1..0a44fddad2f90983ae46bd6465e7ee857a702674 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -202,6 +202,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -201,6 +201,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public abstract ResourceKey<LevelStem> getTypeKey();
@@ -31,7 +31,7 @@ index e7c8d223fb6d82b017031d58a17050081e70ff3b..b8c9684247fcb4af3a42dfae59a3e68a
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
@@ -294,6 +296,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -293,6 +295,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end - optimise collisions
}
@@ -41,6 +41,6 @@ index e7c8d223fb6d82b017031d58a17050081e70ff3b..b8c9684247fcb4af3a42dfae59a3e68a
+ }
+ // Leaves end - thread unsafe random get
+
// Paper start
// Paper start - Cancel hit for vanished players
// ret true if no collision
public final boolean checkEntityCollision(BlockState data, Entity source, net.minecraft.world.phys.shapes.CollisionContext voxelshapedcollision,

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)
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index d6089c0d0b076d232834619bc93bc64f0be57340..c4577d7dc27bb48c95794212de4abf2e31458380 100644
index cb755283ef6bf8812e2c2ad8b546627a334b75a2..9659b5adb9824df325285763ef211cd189174668 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -503,6 +503,11 @@ public class ServerChunkCache extends ChunkSource {
@@ -510,6 +510,11 @@ public class ServerChunkCache extends ChunkSource {
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
gameprofilerfiller.push("pollingChunks");
@@ -22,10 +22,10 @@ index d6089c0d0b076d232834619bc93bc64f0be57340..c4577d7dc27bb48c95794212de4abf2e
// 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
index 8846eb5b21924b00a870dfdd57fc9afe9988a263..14512a65562704586ad7283850b2f497391d5c10 100644
index d046ffa452a6fe2f2f35a961fec792f27ed6df38..9018a9b714a157045e473294ee59980c561b9050 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -973,6 +973,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -968,6 +968,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
// private final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(this.random.nextLong()); // Leaves - moved to super
// Paper end
@@ -39,7 +39,7 @@ index 8846eb5b21924b00a870dfdd57fc9afe9988a263..14512a65562704586ad7283850b2f497
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
ChunkPos chunkcoordintpair = chunk.getPos();
boolean flag = this.isRaining();
@@ -983,7 +990,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -978,7 +985,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
gameprofilerfiller.push("thunder");
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
@@ -49,7 +49,7 @@ index 8846eb5b21924b00a870dfdd57fc9afe9988a263..14512a65562704586ad7283850b2f497
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
index b544446deb857a6a580b7a7be5a1ea571f996ff6..cb58c50b1979480f82f9e91ab3a155318ac7dd59 100644
index b2807c4493a558e2fd11b2a1f04593c6299d5874..6f89a493f557a55075263a74f32682fec66f4f23 100644
--- a/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 {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Early return optimization for target finding
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..a7a1c25208031d9540794d2e068620bd8043b4ce 100644
index c8a80c1b2fedff22e8a877d466062375ffb2f0d7..458e6838e953dae2b17c1cd1823feaa58ab8edcb 100644
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
@@ -75,9 +75,17 @@ public class TargetingConditions {
@@ -22,7 +22,7 @@ index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..a7a1c25208031d9540794d2e068620bd
+ }
+ }
double d = this.testInvisible ? targetEntity.getVisibilityPercent(baseEntity) : 1.0D;
double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper
double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper - Fix MC-145656
- double f = baseEntity.distanceToSqr(targetEntity.getX(), targetEntity.getY(), targetEntity.getZ());
+ // Leaves end - check range before getting visibility
if (f > e * e) {

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)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 85169a9082268fa77453a64196a419d59cb88c9a..bc8d5b9d79fff1fdf10f6458e5a84eef98adbf0e 100644
index d90955687caa5fbe925c55184ac14fa3946afa74..0328722b7c25c258ff7adc312faf4f80ce76f1bd 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2415,6 +2415,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2413,6 +2413,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public ProfilerFiller getProfiler() {
@@ -22,10 +22,10 @@ index 85169a9082268fa77453a64196a419d59cb88c9a..bc8d5b9d79fff1fdf10f6458e5a84eef
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index b8c9684247fcb4af3a42dfae59a3e68a320fd4b4..371df99e14cfe5525d6b6525d97c3958a307994c 100644
index 0a44fddad2f90983ae46bd6465e7ee857a702674..33c8f71c85a8a29b21cfad4ecfb845f9cf3ebb65 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1789,6 +1789,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1788,6 +1788,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public ProfilerFiller getProfiler() {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Reduce entity allocations
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 2446413b944c7955c88b7f2930e86abfe375ab6c..d89379606a5ef6c57b84f1434a34672096363b44 100644
index 3f334ff8da00d37364e796685f672edfc8b449bf..3c9ac99fae71570120482de4b615492217af17da 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -441,6 +441,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -440,6 +440,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.originWorld;
}
// Paper end
@@ -19,7 +19,7 @@ index 2446413b944c7955c88b7f2930e86abfe375ab6c..d89379606a5ef6c57b84f1434a346720
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
index 7204b973c3ad9239e82355513f6d538107102e48..4ee998ae0406d20e3106b7e51911d86313a2e2f8 100644
index 897d7632ecfea40890433474870dd7a5e534d8ab..e1f3890dd63332a5af3aa08cd4ba24ef2eaf233a 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
@@ -23,9 +23,11 @@ public class AttributeMap {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Remove lambda from ticking guard
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 14512a65562704586ad7283850b2f497391d5c10..1af3dd85ba10599eec17102c3cb6d86fba84e08d 100644
index 9018a9b714a157045e473294ee59980c561b9050..b1f7e80c6c762be4ac960cdd98970924da54b5dc 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -907,7 +907,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -902,7 +902,24 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
gameprofilerfiller.push("tick");

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)
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 4be0ae32912cd2250647c4540cedc3e39568f265..de5061ae7d0ecbb34a10f630a3ebd38c89e9862f 100644
index 69a8dc72609e73c85581ac782b3d5ae09ed7c7f7..f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1433,19 +1433,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1429,19 +1429,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance);
}

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)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 79b2831322b8312448c89b5276af40d1efa880d2..1f3a8f314832acc575e7d9d054eaa09ab6fdd1e4 100644
index 3c9ac99fae71570120482de4b615492217af17da..b02e83af62d6d14e01642569dfce84e97aaf1822 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4390,16 +4390,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4388,16 +4388,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -35,7 +35,7 @@ index 79b2831322b8312448c89b5276af40d1efa880d2..1f3a8f314832acc575e7d9d054eaa09a
double d1 = 0.0D;
boolean flag = this.isPushedByFluid();
boolean flag1 = false;
@@ -4407,38 +4409,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4405,38 +4407,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
@@ -181,7 +181,7 @@ index 79b2831322b8312448c89b5276af40d1efa880d2..1f3a8f314832acc575e7d9d054eaa09a
if (vec3d.length() > 0.0D) {
if (k1 > 0) {
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
index f0de72afad4bb571153436399386a6a8a70582a6..dd0a589f6d1e61407a555be14f63e338c5333b6a 100644
index 796bbef3544e06b8e7aac7e8ac5f740a2613f4bd..e4701dd6e023331c9138549cdeece5c0a270877d 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
@@ -25,6 +25,7 @@ public class LevelChunkSection {
@@ -208,7 +208,7 @@ index f0de72afad4bb571153436399386a6a8a70582a6..dd0a589f6d1e61407a555be14f63e338
}
this.updateBlockCallback(x, y, z, iblockdata1, state); // Paper - optimise collisions
@@ -161,6 +164,7 @@ public class LevelChunkSection {
@@ -162,6 +165,7 @@ public class LevelChunkSection {
if (fluid.isRandomlyTicking()) {
this.tickingFluidCount = (short) (this.tickingFluidCount + 1);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] BBOR Protocol
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 23707e17000639167bb11c9c5303ca1e5abf44aa..74b31fe44e4a043d0415637b0ed67983062a6c67 100644
index 02427973b52898ab2d87d7585801fe14555d2ae4..4c7262354c85aab0e70b7bfdadaa9741b0beadc5 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1623,6 +1623,7 @@ public abstract class PlayerList {
@@ -1622,6 +1622,7 @@ public abstract class PlayerList {
entityplayer.getRecipeBook().sendInitialRecipeBook(entityplayer);
}
@@ -17,7 +17,7 @@ index 23707e17000639167bb11c9c5303ca1e5abf44aa..74b31fe44e4a043d0415637b0ed67983
public boolean isAllowCheatsForAllPlayers() {
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 cb58c50b1979480f82f9e91ab3a155318ac7dd59..8268600fc06c500cbbb5658b0626ce4e36854e95 100644
index 6f89a493f557a55075263a74f32682fec66f4f23..226783152422548a5ac157605fb25cddef5eeeb6 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -931,6 +931,11 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] InstantBlockUpdater Reintroduced
This patch is Powered by Carpet-TIS-Addition(https://github.com/plusls/Carpet-TIS-Addition)
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 33dcb0c113614c7605ba750afb80459b68d78f99..e304b4977dd77bd770335accae697e7c7bc90ecc 100644
index 33c8f71c85a8a29b21cfad4ecfb845f9cf3ebb65..6d3a652da337ec684ea939552bcadd61473e6cc6 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -70,6 +70,7 @@ import net.minecraft.world.level.lighting.LevelLightEngine;
@@ -17,7 +17,7 @@ index 33dcb0c113614c7605ba750afb80459b68d78f99..e304b4977dd77bd770335accae697e7c
import net.minecraft.world.level.redstone.NeighborUpdater;
import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
import net.minecraft.world.level.storage.LevelData;
@@ -247,7 +248,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -246,7 +247,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.thread = Thread.currentThread();
this.biomeManager = new BiomeManager(this, i);
this.isDebug = flag1;

View File

@@ -6,13 +6,13 @@ Subject: [PATCH] Player operation limiter
This patch is Powered by plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 41acc2e1883af2220dcdfb9bbefef1976a54d202..7564aeccc8542335b3e065558d04bfd0ee49eab8 100644
index 23260d76c00e37df8499168ebfae21f0ee077cca..bb3b204a9734b75fe8dbeca7e44267a3278750e2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -282,6 +282,10 @@ public class ServerPlayer extends Player {
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
public @Nullable String clientBrandName = null; // Paper - Brand name
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
public @Nullable String clientBrandName = null; // Paper - Brand support
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
+ // Leaves start - player operation limiter
+ private int instaBreakCountPerTick = 0;
+ private int placeBlockCountPerTick = 0;
@@ -62,7 +62,7 @@ index 41acc2e1883af2220dcdfb9bbefef1976a54d202..7564aeccc8542335b3e065558d04bfd0
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index f8fd44500fb2a5b8273d317dbb1789fae24252fd..76cf6ebc80068b3effdbdd74c0213a7d536bf97f 100644
index cfd4ac06a9af6bf3fac293110482e1df690e075e..68f351d87f178810df64b63d9f01f1314081a13f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -44,6 +44,7 @@ import org.bukkit.event.Event;
@@ -94,7 +94,7 @@ index f8fd44500fb2a5b8273d317dbb1789fae24252fd..76cf6ebc80068b3effdbdd74c0213a7d
this.debugLogging(pos, true, sequence, reason);
} else {
diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java
index be8014cfb483e7bf5bbba11bea904d256b436b2f..247aec2924558e52b460deb36c9a2592a38a98e8 100644
index d5e7cc59314b2f16d7665bc0ad8cea576f1f1235..e1ffc1b52641e9cf91f524a83b8c8ee047932d1a 100644
--- a/src/main/java/net/minecraft/world/item/BlockItem.java
+++ b/src/main/java/net/minecraft/world/item/BlockItem.java
@@ -32,9 +32,12 @@ import net.minecraft.world.level.block.state.StateDefinition;

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Stackable ShulkerBoxes
This patch is Powered by fabric-carpet(https://github.com/gnembon/fabric-carpet) and plusls-carpet-addition(https://github.com/plusls/plusls-carpet-addition)
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index 491a521f0e5e272fbad7870fa3adefdea22e179f..5dacb8896d8b78b0c467aa156c497a3eb35df26c 100644
index eb0d6238588efa35fa868f26290547574a08eca2..adc179f85a774c47d386144da6b2291e915a0e1d 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -14,10 +14,12 @@ import net.minecraft.world.entity.Entity;
@@ -48,8 +48,8 @@ index 491a521f0e5e272fbad7870fa3adefdea22e179f..5dacb8896d8b78b0c467aa156c497a3e
private boolean isMergable() {
ItemStack itemstack = this.getItem();
- return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < this.despawnRate && itemstack.getCount() < itemstack.getMaxStackSize(); // Paper - respect despawn rate in pickup check.
+ return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < this.despawnRate && itemstack.getCount() < top.leavesmc.leaves.util.ShulkerBoxUtils.getItemStackMaxCount(itemstack); // Paper - respect despawn rate in pickup check. // Leaves - stackable shulker boxes
- return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < this.despawnRate && itemstack.getCount() < itemstack.getMaxStackSize(); // Paper - Alternative item-despawn-rate
+ return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < this.despawnRate && itemstack.getCount() < top.leavesmc.leaves.util.ShulkerBoxUtils.getItemStackMaxCount(itemstack); // Paper - Alternative item-despawn-rate // Leaves - stackable shulker boxes
}
+ // Leaves end - stackable shulker boxes
@@ -132,7 +132,7 @@ index d2f6027056af9d2816542f4e3d9e278d9ec2c9b4..10db6853dafd8f757499992af84c6b61
if (this.add(i, stack.split(j)) && notifiesClient && this.player instanceof ServerPlayer) {
((ServerPlayer) this.player).connection.send(new ClientboundContainerSetSlotPacket(-2, 0, i, this.getItem(i)));
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
index 067f44d1fb245a315ec1c0fbccfef9b169c02d02..ef00f65f4096436451deeefe9153b86886b1e931 100644
index 7cef5c518207752f7e1bfdd5bbec55fe9fafca6b..925cc4d99d1388bc32cebb5238a322102b6f68e5 100644
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
@@ -456,7 +456,7 @@ public abstract class AbstractContainerMenu {
@@ -195,9 +195,9 @@ index 067f44d1fb245a315ec1c0fbccfef9b169c02d02..ef00f65f4096436451deeefe9153b868
+ if (l <= top.leavesmc.leaves.util.ShulkerBoxUtils.getItemStackMaxCount(stack)) { // Leaves - stackable shulker boxes
stack.setCount(0);
itemstack1.setCount(l);
if (!isCheck) { // Paper - dont update if only a check
if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
slot.setChanged();
} // Paper
} // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
flag1 = true;
- } else if (itemstack1.getCount() < stack.getMaxStackSize()) {
- stack.shrink(stack.getMaxStackSize() - itemstack1.getCount());
@@ -207,9 +207,9 @@ index 067f44d1fb245a315ec1c0fbccfef9b169c02d02..ef00f65f4096436451deeefe9153b868
+ stack.shrink(top.leavesmc.leaves.util.ShulkerBoxUtils.getItemStackMaxCount(stack) - itemstack1.getCount());
+ itemstack1.setCount(top.leavesmc.leaves.util.ShulkerBoxUtils.getItemStackMaxCount(stack));
+ // Leaves end - stackable shulker boxes
if (!isCheck) { // Paper - dont update if only a check
if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
slot.setChanged();
} // Paper
} // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
diff --git a/src/main/java/net/minecraft/world/inventory/Slot.java b/src/main/java/net/minecraft/world/inventory/Slot.java
index e2fd415b69e0213688561e9a19aec2cdcd267211..bb99bdd45efdb52323429565a4e13c07f5ab6d44 100644
--- a/src/main/java/net/minecraft/world/inventory/Slot.java
@@ -257,16 +257,16 @@ index 5780d349f968ea3d05cf569b63531f8e76884827..d30af75de7d146b6bf49814b0eabae94
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
return SHAPE;
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index b17b8f2a773fcdd20d26dcdb083d59f6b89af37f..62d1c35e78f84f561deea990b4938258a482fe39 100644
index dfc623059f9c5920883a06f9662f1bf3b7a2c4c6..46eeae81a7cda8fab80a255a57dcf096b37461bd 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -733,9 +733,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
if (itemstack1.isEmpty()) {
// Spigot start - SPIGOT-6693, InventorySubcontainer#setItem
ItemStack leftover = ItemStack.EMPTY; // Paper
ItemStack leftover = ItemStack.EMPTY; // Paper - Make hoppers respect inventory max stack size
- if (!stack.isEmpty() && stack.getCount() > to.getMaxStackSize()) {
+ if (!stack.isEmpty() && (stack.getCount() > to.getMaxStackSize() || stack.getCount() > stack.getMaxStackSize())) { // Leaves - stackable shulker boxes
leftover = stack; // Paper
leftover = stack; // Paper - Make hoppers respect inventory max stack size
- stack = stack.split(to.getMaxStackSize());
+ stack = stack.split(Math.min(to.getMaxStackSize(), stack.getMaxStackSize())); // Leaves - stackable shulker boxes
}

View File

@@ -7,7 +7,7 @@ This patch is Powered by Pufferfish
(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..3cf6e62ceb555eedf133e0ba82445caadaab7743 100644
index 6d8ff6c06af5545634f255ed17dc1e489ece2548..82cad323e4fba9aea082047d3eb6c4351681d9af 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -53,6 +53,11 @@ public abstract class FlowingFluid extends Fluid {
@@ -22,7 +22,7 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..3cf6e62ceb555eedf133e0ba82445caa
private final Map<FluidState, VoxelShape> shapes = Maps.newIdentityHashMap();
public FlowingFluid() {}
@@ -252,40 +257,71 @@ public abstract class FlowingFluid extends Fluid {
@@ -251,40 +256,71 @@ public abstract class FlowingFluid extends Fluid {
return false;
}
// Paper end - optimise collisions

View File

@@ -31,10 +31,10 @@ index fa1c0aee8c3a4d0868482cf5c703bbfd08e09874..c24148d8486420434922864df6f1ffa0
throw new RuntimeException("Could not reload paper configuration files", ex);
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 1af3dd85ba10599eec17102c3cb6d86fba84e08d..720a89e315225cf15342bc52d337ab5762e6d126 100644
index b1f7e80c6c762be4ac960cdd98970924da54b5dc..c78fdfaca4bb94cd1cd8075655645082b0f6746f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2748,7 +2748,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -2728,7 +2728,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void onTickingEnd(Entity entity) {
ServerLevel.this.entityTickList.remove(entity);
// Paper start - Reset pearls when they stop being ticked
@@ -44,7 +44,7 @@ index 1af3dd85ba10599eec17102c3cb6d86fba84e08d..720a89e315225cf15342bc52d337ab57
pearl.ownerUUID = null;
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 7564aeccc8542335b3e065558d04bfd0ee49eab8..2e56b8b2b8ba5c17080586745a80bc665d4231d0 100644
index bb3b204a9734b75fe8dbeca7e44267a3278750e2..5ce2329f117eea5de6094c8dd7d37aec08b5e2a6 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1533,7 +1533,7 @@ public class ServerPlayer extends Player {
@@ -57,7 +57,7 @@ index 7564aeccc8542335b3e065558d04bfd0ee49eab8..2e56b8b2b8ba5c17080586745a80bc66
@Override
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
index ffc5b68c4246a7111845230a75552bb15875a209..990cdebf1b9e64a5001c71411e64f68108aef47f 100644
index c99ab157e43fc990549fc06f5b6fb1e227014fde..22812fce0f0427e94d1fdfe08cea1a1247b0d717 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
@@ -67,7 +67,7 @@ public class EndCrystal extends Entity {
@@ -70,7 +70,7 @@ index ffc5b68c4246a7111845230a75552bb15875a209..990cdebf1b9e64a5001c71411e64f681
|| ((ServerLevel) this.level()).getDragonFight() == null
|| ((ServerLevel) this.level()).getDragonFight().respawnStage == null
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 2274541c9386e4f1bbae489a1f123d502ccbf9cc..0b8f2affbea2b1e166aa574a432a51f30d60386f 100644
index 2498f942ab55a2ee9af4822c300ec6f45811ef3f..2c4f9aa4ad22393e19e01e8e14e367968b5cba57 100644
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
@@ -71,7 +71,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
@@ -83,20 +83,20 @@ index 2274541c9386e4f1bbae489a1f123d502ccbf9cc..0b8f2affbea2b1e166aa574a432a51f3
this.setDeltaMovement(this.getDeltaMovement().add(0.0D, -0.04D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 5b6d5c799cc8e601a01b6967917e15ba1e2db721..6a2314d9506f7e1a4c8676e28125e6ac16d16ad6 100644
index 156809090f1f83ad68e7e2477a3cfddac5757a8e..7f191b04f7c84f3188b96c108616424bf54170cb 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -119,7 +119,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
if (nbt.hasUUID("Owner")) {
this.ownerUUID = nbt.getUUID("Owner");
this.cachedOwner = null;
- if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit) { this.ownerUUID = null; } // Paper - Don't store shooter name for pearls to block enderpearl travel exploit
+ if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit && !top.leavesmc.leaves.LeavesConfig.mcTechnicalMode) { this.ownerUUID = null; } // Paper - Don't store shooter name for pearls to block enderpearl travel exploit // Leaves - mc technical mode
- if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit) { this.ownerUUID = null; } // Paper - Reset pearls when they stop being ticked; Don't store shooter name for pearls to block enderpearl travel exploit
+ if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit && !top.leavesmc.leaves.LeavesConfig.mcTechnicalMode) { this.ownerUUID = null; } // Paper - Reset pearls when they stop being ticked; Don't store shooter name for pearls to block enderpearl travel exploit // Leaves - mc technical mode
}
this.leftOwner = nbt.getBoolean("LeftOwner");
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 5f5bc035f2e7d899f42d01b63d85b185e6143ef7..3493f40a1b7f7c60647b1d920359dfafa43d94f9 100644
index e9175ec3d508ee72b1893e5b102033c886e9f022..232a70f79e6c5bd7fc055c0adf65ad0bbff55116 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -95,7 +95,7 @@ public final class NaturalSpawner {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Return nether portal fix
This patch is powered by NetherPortalFix(https://github.com/TwelveIterationMods/NetherPortalFix)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index b22dd3700c913d0391c8641fca46e89ed5cfff6b..ee85716ac98caa2e63f34be26a48d6b75b0179e3 100644
index 5ce2329f117eea5de6094c8dd7d37aec08b5e2a6..d816d6aa67d077ea93a0438c07eb38cd4491798f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -187,6 +187,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -40,7 +40,7 @@ index b22dd3700c913d0391c8641fca46e89ed5cfff6b..ee85716ac98caa2e63f34be26a48d6b7
+ }
+ // Leaves end - nether portal fix
}
// Paper start
// Paper start - Reset shield blocking on dimension change
if (this.isBlocking()) {
@@ -1345,6 +1364,30 @@ public class ServerPlayer extends Player {
protected Optional<BlockUtil.FoundRectangle> getExitPortal(ServerLevel worldserver, BlockPos blockposition, boolean flag, WorldBorder worldborder, int searchRadius, boolean canCreatePortal, int createRadius) { // CraftBukkit
@@ -74,7 +74,7 @@ index b22dd3700c913d0391c8641fca46e89ed5cfff6b..ee85716ac98caa2e63f34be26a48d6b7
return optional;
} else {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index fd91f1b08ce02d74b496ef3182a810cfcc6ac1e0..68a0974bad1205681468f2978f71035680548ab8 100644
index 4c7262354c85aab0e70b7bfdadaa9741b0beadc5..a7730d9ffc6ccd743e227c99bb3bd43f282dee19 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -121,6 +121,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent;
@@ -85,7 +85,7 @@ index fd91f1b08ce02d74b496ef3182a810cfcc6ac1e0..68a0974bad1205681468f2978f710356
public abstract class PlayerList {
@@ -1004,6 +1005,24 @@ public abstract class PlayerList {
@@ -1003,6 +1004,24 @@ public abstract class PlayerList {
if (fromWorld != location.getWorld()) {
PlayerChangedWorldEvent event = new PlayerChangedWorldEvent(entityplayer.getBukkitEntity(), fromWorld);
this.server.server.getPluginManager().callEvent(event);
@@ -111,7 +111,7 @@ index fd91f1b08ce02d74b496ef3182a810cfcc6ac1e0..68a0974bad1205681468f2978f710356
// Save player file again if they were disconnected
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 5e7b77047d9900187a1def4270db1d4dbbf0e926..ab8e19e67f173a6c05b4895b3fa78a1eb2b13675 100644
index 70190eae8fcf50dd75c3a7a23b86906c0f3367aa..3d4211c5af1a9b4495dc0aeead51a6f5fe72bf06 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -240,7 +240,7 @@ public abstract class LivingEntity extends Entity implements Attackable {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Xaero Map Protocol
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 68a0974bad1205681468f2978f71035680548ab8..fe13fe480fdd932f7ed4444488d7c9b01a5cf49f 100644
index a7730d9ffc6ccd743e227c99bb3bd43f282dee19..5f67d9e77aab73056328ba48c50f678c1e0f7262 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1323,6 +1323,7 @@ public abstract class PlayerList {
@@ -1322,6 +1322,7 @@ public abstract class PlayerList {
player.connection.send(new ClientboundInitializeBorderPacket(worldborder));
player.connection.send(new ClientboundSetTimePacket(world.getGameTime(), world.getDayTime(), world.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)));
player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(world.getSharedSpawnPos(), world.getSharedSpawnAngle()));

View File

@@ -31,7 +31,7 @@ index bfc1e27c37689c1fbb927404a7176780a439a057..bc8ab50ef1390a2c51110a89dc43db58
private final String baseUrl;
private final URL joinUrl;
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index a5e6b99b95e8408136f4c665aec070c5adc448da..f13f6c014ae188fb677e6360572c31ae6bc2b993 100644
index 61840cfd64caba6595dfc99c91c76a195638d4ee..46d6db53dbf44228574164cc458c94b936613623 100644
--- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java
@@ -198,7 +198,7 @@ public class Main {
@@ -44,10 +44,10 @@ index a5e6b99b95e8408136f4c665aec070c5adc448da..f13f6c014ae188fb677e6360572c31ae
String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath());
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index bc8d5b9d79fff1fdf10f6458e5a84eef98adbf0e..c01e6d6844f174eceadc05d137fb4c47aadcde6a 100644
index 0328722b7c25c258ff7adc312faf4f80ce76f1bd..2136cdddbaa90201c778efa435a35588476e9e9c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -260,7 +260,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -259,7 +259,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private boolean isDemo;
private volatile boolean isReady;
private long lastOverloadWarningNanos;

View File

@@ -5,20 +5,20 @@ 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
index 8e64aa46fab22ba507d9e4d1418dc103d53c61f6..15961ba0f3a70e680e1e32d0a502fcfb4cff705a 100644
index b02e83af62d6d14e01642569dfce84e97aaf1822..053d510c435baeab08ad0acac600327f88e62dec 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -549,7 +549,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -548,7 +548,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F;
- this.random = SHARED_RANDOM; // Paper
+ this.random = top.leavesmc.leaves.LeavesConfig.useVanillaRandom ? RandomSource.create() : SHARED_RANDOM; // Paper // Leaves - vanilla plz
- this.random = SHARED_RANDOM; // Paper - Share random for entities to make them more random
+ this.random = top.leavesmc.leaves.LeavesConfig.useVanillaRandom ? RandomSource.create() : SHARED_RANDOM; // Paper - Share random for entities to make them more random // Leaves - vanilla plz
this.remainingFireTicks = -this.getFireImmuneTicks();
this.fluidHeight = new Object2DoubleArrayMap(2);
this.fluidOnEyes = new HashSet();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index a87a34b0c4c8e5d0cf079025c230b1434c919b54..c56dd96ab35dae5331e9cec4bc27cdb78c1741fc 100644
index f9521a6e115f0c975a7885b024c99eae300b63bf..358b4efefbf9de576194040ca5da9b877afa3e1b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -1036,7 +1036,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -31,20 +31,20 @@ index a87a34b0c4c8e5d0cf079025c230b1434c919b54..c56dd96ab35dae5331e9cec4bc27cdb7
this.setFlags(EnumSet.of(Goal.Flag.MOVE));
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index f60c4cd0543fd5d50fa7e2c1a9e8381227adb540..8c9c694744951dc11b9f8828f27e4d4a2210a3bc 100644
index 4f32597c7af34d599f6658fe4962d41624e60419..23efed794def54b0563ed5ab1a43773f3bb7378b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -44,7 +44,7 @@ public class Squid extends WaterAnimal {
public Squid(EntityType<? extends Squid> type, Level world) {
super(type, world);
- //this.random.setSeed((long)this.getId()); // Paper - we set the random to shared, do not clobber the seed
+ if (top.leavesmc.leaves.LeavesConfig.useVanillaRandom) this.random.setSeed(this.getId()); // Paper - we set the random to shared, do not clobber the seed // Leaves - vanilla plz
- //this.random.setSeed((long)this.getId()); // Paper - Share random for entities to make them more random
+ if (top.leavesmc.leaves.LeavesConfig.useVanillaRandom) this.random.setSeed(this.getId()); // Paper - Share random for entities to make them more random // Leaves - vanilla plz
this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
}
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index 5dacb8896d8b78b0c467aa156c497a3eb35df26c..454bcdc843425d67e265e7ec7b56e9dd90dc0030 100644
index adc179f85a774c47d386144da6b2291e915a0e1d..51cc6ef73da00133bbdc838b1911159a414ba4df 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -73,7 +73,13 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -63,7 +63,7 @@ index 5dacb8896d8b78b0c467aa156c497a3eb35df26c..454bcdc843425d67e265e7ec7b56e9dd
// Paper end - Don't use level random in entity constructors
// 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
index 0b8f2affbea2b1e166aa574a432a51f30d60386f..defc764756f73b278d3e87216c2cb8c6739736ab 100644
index 2c4f9aa4ad22393e19e01e8e14e367968b5cba57..f85163a6238ca657f03f552a360776651dcfb67f 100644
--- a/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 {

View File

@@ -20,10 +20,10 @@ index d0a487f0d563181818c5670749e8dd3a9d939265..140a9070fb5859e762e40ddb1e4259f6
label25:
{
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c01e6d6844f174eceadc05d137fb4c47aadcde6a..18b134cf2ef2af3b713f94084ea9d0ad3643cbbc 100644
index 2136cdddbaa90201c778efa435a35588476e9e9c..1482dce5e76d9bc235e188ada456948d5e28d361 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1689,7 +1689,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1687,7 +1687,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.push("tick");
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
index 18b134cf2ef2af3b713f94084ea9d0ad3643cbbc..badbe74cc193a53d66551e423027f751fb7cf3d7 100644
index 1482dce5e76d9bc235e188ada456948d5e28d361..fc241a006ecddbef4ff563e2249e2a2800b9bf03 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1725,6 +1725,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1723,6 +1723,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("server gui refresh");
top.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(); // Leaves - protocol
@@ -37,7 +37,7 @@ index 76d67d01388ecc1af6b43212e018edc678e84d72..5e8d281760e509dd353b052c29f058ed
this.stopTrackingObjective(objective);
}
diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java
index 470495903a9f0f8b925ddc4fb3d8213c556fccd9..eccc31755dfdea31c0dc5a652f24bca93befee3c 100644
index be74adc86f0ca467f3b59e7b57fd47a8f381d86e..2f2d33d03b3547ffd7ad28d08d1284cd5ece7843 100644
--- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java
@@ -105,6 +105,11 @@ public class PistonBaseBlock extends DirectionalBlock {
@@ -67,7 +67,7 @@ index 470495903a9f0f8b925ddc4fb3d8213c556fccd9..eccc31755dfdea31c0dc5a652f24bca9
}
}
} else {
// Paper start - fix headless pistons breaking blocks
// Paper start - Protect Bedrock and End Portal/Frames from being destroyed; fix headless pistons breaking blocks
BlockPos headPos = pos.relative(enumdirection);
if (io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits || world.getBlockState(headPos) == Blocks.PISTON_HEAD.defaultBlockState().setValue(FACING, enumdirection)) { // double check to make sure we're not a headless piston.
+ // Leaves start - break bedrock list

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable distance check for UseItemOnPacket
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 4028861fe9d2fd15179238be473165689fc39619..4bddf96387d6429cd02943f16d797cf78c62aab1 100644
index f82634e3d1e9f165ec3d87e4d0e15ad7e96f92a7..1aad5bb505439f1588e879d3ace8c976b1435527 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1938,7 +1938,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1918,7 +1918,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Vec3 vec3d2 = vec3d.subtract(vec3d1);
double d0 = 1.0000001D;

View File

@@ -5,7 +5,7 @@ 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
index 54a77399c1c42a1bcdbb4fd2cc09469a4838bd7c..22d014ec4cc7f3ad5df6cf28988b0bd983de301f 100644
index 35869e655a7488f7b5868895287b8045b03f2d63..001bfc1cae653ad2e451d6f40ab57dfb8351bfc0 100644
--- a/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 {
@@ -60,15 +60,15 @@ index 54a77399c1c42a1bcdbb4fd2cc09469a4838bd7c..22d014ec4cc7f3ad5df6cf28988b0bd9
public boolean canBeHitByProjectile() {
return !this.isSpectator() && super.canBeHitByProjectile();
diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java
index 247aec2924558e52b460deb36c9a2592a38a98e8..7b2a397e8b3f60fe233ae8867af9b020b31c75ed 100644
index e1ffc1b52641e9cf91f524a83b8c8ee047932d1a..2c799cd93fbba079f53dd37535126a6c0e0261b7 100644
--- a/src/main/java/net/minecraft/world/item/BlockItem.java
+++ b/src/main/java/net/minecraft/world/item/BlockItem.java
@@ -228,7 +228,7 @@ public class BlockItem extends Item {
CollisionContext voxelshapecollision = entityhuman == null ? CollisionContext.empty() : CollisionContext.of(entityhuman);
// CraftBukkit start - store default return
Level world = context.getLevel(); // Paper
- boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && world.checkEntityCollision(state, entityhuman, voxelshapecollision, context.getClickedPos(), true); // Paper
+ boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && (top.leavesmc.leaves.LeavesConfig.creativeNoClip && context.getPlayer() != null ? context.getPlayer().canSpectatingPlace(world, state, context.getClickedPos(), voxelshapecollision) : world.checkEntityCollision(state, entityhuman, voxelshapecollision, context.getClickedPos(), true)); // Paper // Leaves - creative no clip
Level world = context.getLevel(); // Paper - Cancel hit for vanished players
- boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && world.checkEntityCollision(state, entityhuman, voxelshapecollision, context.getClickedPos(), true); // Paper - Cancel hit for vanished players
+ boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && (top.leavesmc.leaves.LeavesConfig.creativeNoClip && context.getPlayer() != null ? context.getPlayer().canSpectatingPlace(world, state, context.getClickedPos(), voxelshapecollision) : world.checkEntityCollision(state, entityhuman, voxelshapecollision, context.getClickedPos(), true)); // Paper - Cancel hit for vanished players // Leaves - creative no clip
org.bukkit.entity.Player player = (context.getPlayer() instanceof ServerPlayer) ? (org.bukkit.entity.Player) context.getPlayer().getBukkitEntity() : null;
BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - Expose hand in BlockCanBuildEvent
@@ -99,7 +99,7 @@ index 5c311270a39f6b4996c8b58822d24556c67adc41..cb40179236952edcc1678a58a5886b19
}
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index b7a0d8ffd1823a1d1edee6baaa62c15f69e6af3d..b0acc2f37a8ebc5d93dcf33a0b89bd9c4444fccf 100644
index d0e8842a2c4f7dbd0d6ac3694b2a6a5395d8a542..0bf810971464d27b3e26b24cb8579d450a1fd37b 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -18,6 +18,7 @@ import net.minecraft.util.Mth;
@@ -120,7 +120,7 @@ index b7a0d8ffd1823a1d1edee6baaa62c15f69e6af3d..b0acc2f37a8ebc5d93dcf33a0b89bd9c
public boolean isSpawning() {
diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
index 1ef87580574919796dbba707f44a413ee5c5781b..75433bfff255d4b665f6900f3fea3092518c9295 100644
index c71690dbc3dc52803945f1608f0ee3ba94146354..2564ece9ffa4093ded2bceef1cd6bea2c72178b6 100644
--- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
@@ -142,7 +142,7 @@ public class PistonMovingBlockEntity extends BlockEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Spawn ignore lc
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 797725f7472ed36bf5a1369a7dfe600a9749cbac..7eec9dc8237ff04c53b573c3cc87e6cdbfdda7ed 100644
index 232a70f79e6c5bd7fc055c0adf65ad0bbff55116..4eac3f2acaf70e83b9241ed55ae5f9ecf39d2e67 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -40,6 +40,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -19,7 +19,7 @@ index 797725f7472ed36bf5a1369a7dfe600a9749cbac..7eec9dc8237ff04c53b573c3cc87e6cd
@@ -204,6 +205,19 @@ public final class NaturalSpawner {
}
public static int spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer<Entity> trackEntity) {
// Paper end - add parameters and int ret type
// Paper end - Optional per player mob spawns
+ // Leaves start - ignore lc
+ if (top.leavesmc.leaves.LeavesConfig.ignoreLC) {
+ int spawnN = 0;
@@ -37,7 +37,7 @@ index 797725f7472ed36bf5a1369a7dfe600a9749cbac..7eec9dc8237ff04c53b573c3cc87e6cd
if (blockposition.getY() >= world.getMinBuildHeight() + 1) {
@@ -212,6 +226,16 @@ public final class NaturalSpawner {
return 0; // Paper
return 0; // Paper - Optional per player mob spawns
}
+ // Leaves start - ignore lc

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
index eb85cdc005be3cd2fc95e5e207a2621dfc298f05..b9529693ff28e3be6fc20523e76d3cc7ccacec6f 100644
index f9cbcc0b6da9008be060ee4cca0a9d87c3a156ed..4eb025a4eabeb7b7abb4819bba172ee824d4c8e3 100644
--- a/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
@@ -26,7 +26,7 @@ index eb85cdc005be3cd2fc95e5e207a2621dfc298f05..b9529693ff28e3be6fc20523e76d3cc7
int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX());
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
@@ -977,7 +977,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -969,7 +969,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
private boolean skipPlayer(ServerPlayer player) {
@@ -36,7 +36,7 @@ index eb85cdc005be3cd2fc95e5e207a2621dfc298f05..b9529693ff28e3be6fc20523e76d3cc7
}
void updatePlayerStatus(ServerPlayer player, boolean added) {
@@ -1014,6 +1015,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1006,6 +1007,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
public void move(ServerPlayer player) {
@@ -45,10 +45,10 @@ index eb85cdc005be3cd2fc95e5e207a2621dfc298f05..b9529693ff28e3be6fc20523e76d3cc7
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
index 4bddf96387d6429cd02943f16d797cf78c62aab1..f840bc9bd3ee059a66aec64d0c6a9b65cbc0d42b 100644
index 1aad5bb505439f1588e879d3ace8c976b1435527..fdf8dcb60279ffee46368bd0abdade8bd63c5679 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -549,7 +549,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -546,7 +546,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
speed *= 2f; // TODO: Get the speed of the vehicle instead of the player
// Paper start - Prevent moving into unloaded chunks
@@ -58,7 +58,7 @@ index 4bddf96387d6429cd02943f16d797cf78c62aab1..f840bc9bd3ee059a66aec64d0c6a9b65
!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
index 15961ba0f3a70e680e1e32d0a502fcfb4cff705a..219e61d5a3644fb4ced66c4375ab551955fa043c 100644
index 053d510c435baeab08ad0acac600327f88e62dec..08d1337dad726203f0b4974c4a2fbf2006158df3 100644
--- a/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
@@ -85,7 +85,7 @@ index 15961ba0f3a70e680e1e32d0a502fcfb4cff705a..219e61d5a3644fb4ced66c4375ab5519
}
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 22d014ec4cc7f3ad5df6cf28988b0bd983de301f..8f617ceb59393aebd4770fba82494713648685ec 100644
index 001bfc1cae653ad2e451d6f40ab57dfb8351bfc0..7ea29129949364b7d887ed8e48e8f4f6cebaf7f4 100644
--- a/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 {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] No block update command
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 720a89e315225cf15342bc52d337ab5762e6d126..c9d4d9a3c1165ffff78dba1e894d1899a9f121b4 100644
index c78fdfaca4bb94cd1cd8075655645082b0f6746f..ff957be41684f0c722b1dcac4f2ac09975f80236 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2526,6 +2526,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -2506,6 +2506,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@Override
public void blockUpdated(BlockPos pos, Block block) {
@@ -17,7 +17,7 @@ index 720a89e315225cf15342bc52d337ab5762e6d126..c9d4d9a3c1165ffff78dba1e894d1899
// CraftBukkit start
if (this.populating) {
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index d1effd5d7b9eb2d715c9a3e16adbef2541b1ccf2..bffb03816205ed1241a7bd28bc52753d91a94a43 100644
index ed27a963223bfe18310ad5adabf461b5e307ef9c..80e9b0615fc8036897b2dc8b0aefc4ef4a0f16f7 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -482,7 +482,7 @@ public final class ItemStack {
@@ -30,7 +30,7 @@ index d1effd5d7b9eb2d715c9a3e16adbef2541b1ccf2..bffb03816205ed1241a7bd28bc52753d
world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point
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 8268600fc06c500cbbb5658b0626ce4e36854e95..b52ac7c98e42d9e80c55bfb9ea562fcbf3c729d0 100644
index 226783152422548a5ac157605fb25cddef5eeeb6..f05e51f76a20aafe8e272cc595a4aca634d50d7f 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -481,7 +481,7 @@ public class LevelChunk extends ChunkAccess {
@@ -43,10 +43,10 @@ index 8268600fc06c500cbbb5658b0626ce4e36854e95..b52ac7c98e42d9e80c55bfb9ea562fcb
if (iblockdata.hasBlockEntity()) {
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index 3cf6e62ceb555eedf133e0ba82445caadaab7743..8c3c9c64ea9de68a57d18164e016602016a79406 100644
index 82cad323e4fba9aea082047d3eb6c4351681d9af..8a9b471b3cfff45a6c78d8fffa0efb3304152acb 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -521,6 +521,7 @@ public abstract class FlowingFluid extends Fluid {
@@ -520,6 +520,7 @@ public abstract class FlowingFluid extends Fluid {
@Override
public void tick(Level world, BlockPos pos, FluidState state) {

View File

@@ -142,7 +142,7 @@ index 06648f9751fd8a322d0809ffebf6a544596ee1a4..40e957a4364c8017072dcd81fcb7cf2c
@Override
diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java
index 4c8f2dbdd6e384be026ae1c890096f89fd744eb0..5f6d8ad7340112ffb1c0581562a3f3df7c44a13b 100644
index eea9866aecb7189455319d83561fcef35a777d7a..68d8caf3c912d9f578bf7214d068e60b7c59b2ef 100644
--- a/src/main/java/net/minecraft/nbt/CompoundTag.java
+++ b/src/main/java/net/minecraft/nbt/CompoundTag.java
@@ -17,6 +17,7 @@ import javax.annotation.Nullable;
@@ -202,7 +202,7 @@ index ff13d67151c50ea11a45117e524c7524e2b1a202..c25d23c9c2ed887ce9ae7f07cd8aa0d1
@Override
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index c6f773afc39e7c97d13d1977a7609fc46714709d..9cdf39bef3112ac0a522c8bc8cb1b2b5171272ea 100644
index d6179829579a07c29565d024f53069375be53fb7..6d0cf98fccd7b4e9b970b4d2f9d13c29c53044b3 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -57,6 +57,7 @@ import org.apache.commons.lang3.Validate;
@@ -214,10 +214,10 @@ index c6f773afc39e7c97d13d1977a7609fc46714709d..9cdf39bef3112ac0a522c8bc8cb1b2b5
public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 7f5a5403959a54dd794b1a0f492f40c925622928..8c90406bf8b6c3d459dc27adf3671b72ac764867 100644
index b2183c298b0c68daee41238735621ff002338a68..3957ab1ebd7e84cfe0bef81a8cce566dca9972dc 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -348,7 +348,7 @@ public class ServerEntity {
@@ -354,7 +354,7 @@ public class ServerEntity {
if (this.entity instanceof LivingEntity) {
List<Pair<EquipmentSlot, ItemStack>> list = Lists.newArrayList();
@@ -227,7 +227,7 @@ index 7f5a5403959a54dd794b1a0f492f40c925622928..8c90406bf8b6c3d459dc27adf3671b72
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
index c9d4d9a3c1165ffff78dba1e894d1899a9f121b4..721d46d649cb2ffdf087f2d289cd3e8cc05ed241 100644
index ff957be41684f0c722b1dcac4f2ac09975f80236..6e9a26916a2e82dd56e51978a562e96ae8e480ac 100644
--- a/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;
@@ -238,7 +238,7 @@ index c9d4d9a3c1165ffff78dba1e894d1899a9f121b4..721d46d649cb2ffdf087f2d289cd3e8c
public class ServerLevel extends Level implements WorldGenLevel {
@@ -1074,7 +1075,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1069,7 +1070,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
BlockPos blockposition2 = blockposition.set(j + randomX, randomY, k + randomZ);
BlockState iblockdata = com.destroystokyo.paper.util.maplist.IBlockDataList.getBlockDataFromRaw(raw);
@@ -247,7 +247,7 @@ index c9d4d9a3c1165ffff78dba1e894d1899a9f121b4..721d46d649cb2ffdf087f2d289cd3e8c
}
// We drop the fluid tick since LAVA is ALREADY TICKED by the above method (See LiquidBlock).
// TODO CHECK ON UPDATE (ping the Canadian)
@@ -1380,7 +1381,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1375,7 +1376,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
public static List<Entity> getCurrentlyTickingEntities() {
Entity ticking = currentlyTickingEntity.get();
@@ -257,7 +257,7 @@ index c9d4d9a3c1165ffff78dba1e894d1899a9f121b4..721d46d649cb2ffdf087f2d289cd3e8c
return ret;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f840bc9bd3ee059a66aec64d0c6a9b65cbc0d42b..c9cc163b67a8c71e2ff482da768f8fab8fac6acb 100644
index fdf8dcb60279ffee46368bd0abdade8bd63c5679..bf56d8f6a8fe06c5a356befa14d7eebf9af9460d 100644
--- a/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;
@@ -268,24 +268,24 @@ index f840bc9bd3ee059a66aec64d0c6a9b65cbc0d42b..c9cc163b67a8c71e2ff482da768f8fab
public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl implements ServerGamePacketListener, ServerPlayerConnection, TickablePacketListener {
@@ -781,13 +782,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async
@@ -778,13 +779,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async
// 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 start - split and make configurable
- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
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
- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - AsyncTabCompleteEvent & kick event cause
+ 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;
}
// Paper start
String str = packet.getCommand(); int index = -1;
if (str.length() > 64 && ((index = str.indexOf(' ')) == -1 || index >= 64)) {
- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper
+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray))); // Paper - kick event cause // Leaves - reduce array allocations
- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper
+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", ArrayConstants.emptyObjectArray))); // Paper // Leaves - reduce array allocations
return;
}
// Paper end
@@ -3211,7 +3212,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start
@@ -3191,7 +3192,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start - auto recipe limit
if (!org.bukkit.Bukkit.isPrimaryThread()) {
if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) {
- this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
@@ -294,7 +294,7 @@ index f840bc9bd3ee059a66aec64d0c6a9b65cbc0d42b..c9cc163b67a8c71e2ff482da768f8fab
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index a9f5af48c1f97b2e635727b48f4383502b17d82f..17997f3b4ee9e166372cdcb6c43ba49bb70e56fd 100644
index f92d240e2984b0b49d09662ff33f5c524605ed47..3094c8e5cca90865d4f063e4db0d395ff1ee9265 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -44,6 +44,7 @@ import org.bukkit.craftbukkit.util.Waitable;
@@ -326,7 +326,7 @@ index a9f5af48c1f97b2e635727b48f4383502b17d82f..17997f3b4ee9e166372cdcb6c43ba49b
final String s;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index f304ee9293828302ca26d9af766abdbcc842a3c1..12577cbfe26eaa65f475ec3385d362b4c4fa7595 100644
index 5f67d9e77aab73056328ba48c50f678c1e0f7262..d9848bbe9c1874f85c4d774e24fea60261251ccb 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -122,6 +122,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent;
@@ -337,7 +337,7 @@ index f304ee9293828302ca26d9af766abdbcc842a3c1..12577cbfe26eaa65f475ec3385d362b4
public abstract class PlayerList {
@@ -734,7 +735,7 @@ public abstract class PlayerList {
@@ -733,7 +734,7 @@ public abstract class PlayerList {
while (iterator.hasNext()) {
entityplayer = (ServerPlayer) iterator.next();
this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved
@@ -347,7 +347,7 @@ index f304ee9293828302ca26d9af766abdbcc842a3c1..12577cbfe26eaa65f475ec3385d362b4
// Instead of kicking then returning, we need to store the kick reason
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
index 665120a62525f56912263a3e1b6f12f6c3e15dec..7fd220838520bf0f971d6fbe6d9286592d590253 100644
index 35f973cc2c0989256fa21abaf0327c2f36dbe4c9..a9ece1225fa302843423006f610889cd9773fbfb 100644
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
@@ -25,6 +25,7 @@ import javax.annotation.Nullable;
@@ -358,7 +358,7 @@ index 665120a62525f56912263a3e1b6f12f6c3e15dec..7fd220838520bf0f971d6fbe6d928659
public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
@@ -79,7 +80,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
@@ -77,7 +78,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
}
public String[] getUserList() {
@@ -368,7 +368,7 @@ index 665120a62525f56912263a3e1b6f12f6c3e15dec..7fd220838520bf0f971d6fbe6d928659
public boolean isEmpty() {
diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java
index e23995acb97100830079677aab0896487a705416..53e81721507cfc8f88be0ca9565746d78b2a1686 100644
index 63c45b6f625fbab5e1d7513132f4d89fcab7a23d..820d53aa8806796284c9803f949d3b3d8c054999 100644
--- a/src/main/java/net/minecraft/util/ZeroBitStorage.java
+++ b/src/main/java/net/minecraft/util/ZeroBitStorage.java
@@ -4,9 +4,10 @@ import java.util.Arrays;
@@ -396,7 +396,7 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8d949983a30f27a60982f6b406151408
private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) {
this.type = type;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 6771f0e4a35e4f82b8c905dc8c30cdc8752864c8..b6115b44d1654dbc62019dffd8c8163f37e8f7e7 100644
index 3d4211c5af1a9b4495dc0aeead51a6f5fe72bf06..efa7d206009700cffd72e09bb910e56195511bdb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3144,7 +3144,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -409,7 +409,7 @@ index 6771f0e4a35e4f82b8c905dc8c30cdc8752864c8..b6115b44d1654dbc62019dffd8c8163f
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
index 65e13870262c67cd51a129b5954b2a34a51b5eb3..23e0e9125f7f68a602fa4d6c3c9562fe25bb3374 100644
index 24ad2a51366a4fdcf35f2c1f63bbc2d339bd0d3f..005edbf57dad37f3fd369e4af1dddb6393ee2132 100644
--- a/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 {
@@ -462,7 +462,7 @@ index 7de9d012e7416eaa0189b513a0972c846e93c4b6..505cae0013a501cbff094a83c491af96
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index bffb03816205ed1241a7bd28bc52753d91a94a43..b6f0e75270b22df4aff8feee4b8ae7cd0295aec7 100644
index 80e9b0615fc8036897b2dc8b0aefc4ef4a0f16f7..2dee534271a6bda96a9eb094a07c9fc33f549c0f 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1052,7 +1052,7 @@ public final class ItemStack {
@@ -504,7 +504,7 @@ index 6c2e8049c2197ddc912c1a0fc99c87beae81e25b..be13baa7b51c4ad377b50d8ca8f7cfad
private static Enchantment register(String name, Enchantment 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
index ab3b63c9e48570d203dfcf0b8d30ab0ae85719bc..3f8113b22ebbb7ff783308033edcf10259dc0e82 100644
index 6d3a652da337ec684ea939552bcadd61473e6cc6..ce85d69027cbfb06666c9242576d3abbd7cc2831 100644
--- a/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;
@@ -515,7 +515,7 @@ index ab3b63c9e48570d203dfcf0b8d30ab0ae85719bc..3f8113b22ebbb7ff783308033edcf102
public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1845,7 +1846,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1844,7 +1845,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public org.bukkit.entity.Entity[] getChunkEntities(int chunkX, int chunkZ) {
io.papermc.paper.world.ChunkEntitySlices slices = ((ServerLevel)this).getEntityLookup().getChunk(chunkX, chunkZ);
if (slices == null) {
@@ -564,7 +564,7 @@ index d78fe4081bc2938326066e0afddb4a6c833a4bf7..4246f6edb9f4989227fb3c3709f8e22e
@Override
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
index d31bcddad2fa2ebac6269cc7bf22254710c1843e..2d167509b24c690f14fc0584fde0bedd267cb0f8 100644
index 29580b4f6841c5c3398f8b4b224d9383f006cfb1..d1c102b9e12033c6ba6cd66706e891c4aa7c0009 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -59,6 +59,7 @@ import org.bukkit.event.inventory.FurnaceSmeltEvent;
@@ -585,7 +585,7 @@ index d31bcddad2fa2ebac6269cc7bf22254710c1843e..2d167509b24c690f14fc0584fde0bedd
private static final int[] SLOTS_FOR_SIDES = new int[]{1};
public static final int DATA_LIT_DURATION = 1;
diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
index b3a90d6ef0e17c236e0b3c46e2d0012671afdaa7..f273d6ab29d8c2a36a4a00ef341d2a8e7ce3e8c3 100644
index 63e187c65cb855031f286aad0d25ac4694f7a331..8d73357f0120ada1634f18ded0f72218e533776b 100644
--- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
+++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java
@@ -12,7 +12,6 @@ import net.minecraft.nbt.NbtAccounter;

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Skip entity move if movement is zero
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
index c3a91af3a6e9ca8177994bacaf375d1e7df1d0c4..f9682798c74aaae9c0610c00b2f52cda990e35a4 100644
index 42249dc3f994d1e4ce1c5e1c6e2ec1f7d4d41324..a4acf29239e1c05e8afc42c92763f00a31762aa0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -317,6 +317,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -316,6 +316,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public float yRotO;
public float xRotO;
private AABB bb;
@@ -17,7 +17,7 @@ index c3a91af3a6e9ca8177994bacaf375d1e7df1d0c4..f9682798c74aaae9c0610c00b2f52cda
public boolean onGround;
public boolean horizontalCollision;
public boolean verticalCollision;
@@ -1052,6 +1053,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1051,6 +1052,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// Paper end - detailed watchdog information
public void move(MoverType movementType, Vec3 movement) {
@@ -28,10 +28,10 @@ index c3a91af3a6e9ca8177994bacaf375d1e7df1d0c4..f9682798c74aaae9c0610c00b2f52cda
+ }
+ }
+ // Leaves end - skip entity move if movement is zero
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
// Paper start - detailed watchdog information
io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main");
synchronized (this.posLock) {
@@ -4084,6 +4092,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4082,6 +4090,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public final void setBoundingBox(AABB boundingBox) {

View File

@@ -5,7 +5,7 @@ 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
index c4577d7dc27bb48c95794212de4abf2e31458380..dc4b71023e43757ef0dad9d8b850afd304308ad9 100644
index 9659b5adb9824df325285763ef211cd189174668..3217af4adb16a48150652258e59b49cf1cf33873 100644
--- a/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 {
@@ -21,7 +21,7 @@ index c4577d7dc27bb48c95794212de4abf2e31458380..dc4b71023e43757ef0dad9d8b850afd3
private static int getChunkCacheKey(int x, int z) {
return x & 3 | ((z & 3) << 2);
}
@@ -509,7 +515,21 @@ public class ServerChunkCache extends ChunkSource {
@@ -516,7 +522,21 @@ public class ServerChunkCache extends ChunkSource {
}
// Leaves end - reset ice & snow tick random
gameprofilerfiller.push("filteringLoadedChunks");
@@ -44,7 +44,7 @@ index c4577d7dc27bb48c95794212de4abf2e31458380..dc4b71023e43757ef0dad9d8b850afd3
// Paper - optimise chunk tick iteration
@@ -597,10 +617,20 @@ public class ServerChunkCache extends ChunkSource {
@@ -604,10 +624,20 @@ public class ServerChunkCache extends ChunkSource {
}
Util.shuffle(shuffled, this.level.random);
chunkIterator = shuffled.iterator();
@@ -68,7 +68,7 @@ index c4577d7dc27bb48c95794212de4abf2e31458380..dc4b71023e43757ef0dad9d8b850afd3
LevelChunk chunk1 = chunkIterator.next();
// Paper end - optimise chunk tick iteration
ChunkPos chunkcoordintpair = chunk1.getPos();
@@ -631,7 +661,7 @@ public class ServerChunkCache extends ChunkSource {
@@ -638,7 +668,7 @@ public class ServerChunkCache extends ChunkSource {
// Paper end - optimise chunk tick iteration
chunk1.incrementInhabitedTime(j);
if (spawn && flag && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration
@@ -78,7 +78,7 @@ index c4577d7dc27bb48c95794212de4abf2e31458380..dc4b71023e43757ef0dad9d8b850afd3
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 7eec9dc8237ff04c53b573c3cc87e6cdbfdda7ed..2aafb872578d266f2826e5bddebc9b4ab9b5050b 100644
index 4eac3f2acaf70e83b9241ed55ae5f9ecf39d2e67..8faaf4a8bcd75c79808bcfd2b6b86729eebd8ee1 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -133,6 +133,12 @@ public final class NaturalSpawner {
@@ -107,10 +107,10 @@ index 7eec9dc8237ff04c53b573c3cc87e6cdbfdda7ed..2aafb872578d266f2826e5bddebc9b4a
boolean spawnThisTick = true;
int limit = enumcreaturetype.getMaxInstancesPerChunk();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 38d842bc0fb7d9c39a3673983a643248e9563fe2..8f57c3805547354af3f5167acc7efca9047f91e2 100644
index cd559e6aaf4bd2bd322c953bbb186135489ddcaa..aa0a1cbbbd4f2f027e24a4166bd5be4009c2ac3e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2425,6 +2425,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2422,6 +2422,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return CraftFeatureFlag.getFromNMS(this.getHandle().enabledFeatures()).stream().map(FeatureFlag.class::cast).collect(Collectors.toUnmodifiableSet());
}

View File

@@ -94,7 +94,7 @@ index 676a1499747b071515479130875157263d3a8352..e5ef298dc1df9cc42b3d349939a966b7
if (((List) object).size() >= i) {
return (List) object;
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
index f941e7add46e690e21d39111bed520df9156f154..5ea28c20b34b46eb68fb8a2d468ea009a30180c0 100644
index cb05ec292d26320562e51da96a5a28cb04ecc7e4..6cf0b94b185d901ee79f376a6d2ffd8ccfae5b84 100644
--- a/src/main/java/net/minecraft/server/PlayerAdvancements.java
+++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java
@@ -223,7 +223,7 @@ public class PlayerAdvancements {
@@ -107,7 +107,7 @@ index f941e7add46e690e21d39111bed520df9156f154..5ea28c20b34b46eb68fb8a2d468ea009
}
// 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
index c9cc163b67a8c71e2ff482da768f8fab8fac6acb..1d5e7cde06e4f4aa65caaf9b28c1663a59b62679 100644
index bf56d8f6a8fe06c5a356befa14d7eebf9af9460d..de8bf759b74c8969d12b38c952f48633966d5b74 100644
--- a/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
@@ -120,7 +120,7 @@ index c9cc163b67a8c71e2ff482da768f8fab8fac6acb..1d5e7cde06e4f4aa65caaf9b28c1663a
} else {
connection.setListener(this);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 12577cbfe26eaa65f475ec3385d362b4c4fa7595..eb3e88093fc7862a134b130f63768d1bba7990a7 100644
index d9848bbe9c1874f85c4d774e24fea60261251ccb..42f54487ba2a6afbdacf0f1de0f9161c47140b4f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -123,6 +123,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent;
@@ -141,7 +141,7 @@ index 12577cbfe26eaa65f475ec3385d362b4c4fa7595..eb3e88093fc7862a134b130f63768d1b
private CraftServer cserver;
@@ -181,6 +183,120 @@ public abstract class PlayerList {
}
abstract public void loadAndSaveFiles(); // Paper - moved from DedicatedPlayerList constructor
abstract public void loadAndSaveFiles(); // Paper - fix converting txt to json file; moved from DedicatedPlayerList constructor
+ // Leaves start - replay api
+ public void placeNewPhotographer(Connection connection, ServerPhotographer player, ServerLevel worldserver, Location location) {
@@ -259,7 +259,7 @@ index 12577cbfe26eaa65f475ec3385d362b4c4fa7595..eb3e88093fc7862a134b130f63768d1b
+
public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData) {
player.isRealPlayer = true; // Paper
player.loginTime = System.currentTimeMillis(); // Paper
player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed
@@ -327,6 +443,7 @@ public abstract class PlayerList {
// entityplayer.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(this.players)); // CraftBukkit - replaced with loop below
@@ -281,7 +281,7 @@ index 12577cbfe26eaa65f475ec3385d362b4c4fa7595..eb3e88093fc7862a134b130f63768d1b
onlinePlayers.add(entityplayer1); // Paper - Use single player info update packet on join
}
// Paper start - Use single player info update packet on join
@@ -613,6 +736,43 @@ public abstract class PlayerList {
@@ -612,6 +735,43 @@ public abstract class PlayerList {
}
@@ -323,9 +323,9 @@ index 12577cbfe26eaa65f475ec3385d362b4c4fa7595..eb3e88093fc7862a134b130f63768d1b
+ // Leaves stop - replay mod api
+
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component
// Paper start
// Paper start - Fix kick event leave message not being sent
return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())));
@@ -681,6 +841,7 @@ public abstract class PlayerList {
@@ -680,6 +840,7 @@ public abstract class PlayerList {
entityplayer.retireScheduler(); // Paper - Folia schedulers
entityplayer.getAdvancements().stopListening();
this.players.remove(entityplayer);
@@ -334,7 +334,7 @@ index 12577cbfe26eaa65f475ec3385d362b4c4fa7595..eb3e88093fc7862a134b130f63768d1b
this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer);
UUID uuid = entityplayer.getUUID();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 69a7933bca98d29f215edfe3839e416207d083f9..7e97276a05a2771d644b1f3a54363dad485b4eac 100644
index 6b2c19f3ea4fb8e2f6afc165ece6d0c66ba59a75..de36a75a68915f87573280600ad5b52d6b344555 100644
--- a/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;
@@ -375,7 +375,7 @@ index 69a7933bca98d29f215edfe3839e416207d083f9..7e97276a05a2771d644b1f3a54363dad
+ // Leaves end - replay mod api
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index fa92ba466c958eea0330cd24bf45b96958a13204..29f66df9b0984c4fe624e37f1c7d4e712a55541f 100644
index dc7ba0ce76031e6dd7e550ceaf3b2f97cbc307f1..ca4a3830e2c57107921be7eef6f15f3680809321 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -58,6 +58,8 @@ import top.leavesmc.leaves.bot.ServerBot;

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Fix vehicle teleport by end gateway
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index b0acc2f37a8ebc5d93dcf33a0b89bd9c4444fccf..c06092aa35d44ba98b9680dc72eeba09f6d07822 100644
index 0bf810971464d27b3e26b24cb8579d450a1fd37b..8cf9db4bf550cfec402fdfbfcc098cd18ea499d7 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -108,7 +108,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
if (!list.isEmpty()) {
// Paper start
// Paper start - Ensure safe gateway teleport
for (Entity entity : list) {
- if (entity.canChangeDimensions()) {
+ if (true || entity.canChangeDimensions()) { // Leaves - be vanilla

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Force Void Trade
diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
index 17cc25b6fbc85c9e0023be7e9d857b2d76f6e58c..75bb3f2d2eaf8ffe542534fec40084674003ec64 100644
index fd1648546542f146ba7b866873f105ed1427ef7d..1ecbb7cb0f608e11ce84d7082bd4d3018a2bdfd5 100644
--- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
@@ -59,6 +59,7 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -34,10 +34,10 @@ index 17cc25b6fbc85c9e0023be7e9d857b2d76f6e58c..75bb3f2d2eaf8ffe542534fec4008467
@@ -162,7 +169,7 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@Override
public void notifyTrade(MerchantOffer offer) {
// offer.increaseUses(); // Paper - handled in processTrade
// offer.increaseUses(); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
- this.ambientSoundTime = -this.getAmbientSoundInterval();
+ if (!voidTrade) this.ambientSoundTime = -this.getAmbientSoundInterval(); // Leaves - force void trade
// this.rewardTradeXp(offer); // Paper - handled in processTrade
// this.rewardTradeXp(offer); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
if (this.tradingPlayer instanceof ServerPlayer) {
CriteriaTriggers.TRADE.trigger((ServerPlayer) this.tradingPlayer, this, offer.getResult());
@@ -180,7 +187,7 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa
@@ -74,7 +74,7 @@ index 17cc25b6fbc85c9e0023be7e9d857b2d76f6e58c..75bb3f2d2eaf8ffe542534fec4008467
+ // Leaves end - force void trade
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 0b334ab58d723f27dae68974ed6ec5d64b10ad40..a63549154fc3a2c93b7f66072bc9a89a31bea55f 100644
index 82f52d90c38be29b788bef2a3bb520e4792de763..73ab81f16b1e5ea091bf3c34d23c52d5d3db9f70 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -347,6 +347,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -101,7 +101,7 @@ index 0b334ab58d723f27dae68974ed6ec5d64b10ad40..a63549154fc3a2c93b7f66072bc9a89a
this.updateMerchantTimer = 40;
this.increaseProfessionLevelOnUpdate = true;
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 833563e237462ccfc1b730b8f5fb35340d0db854..92981bbfe854339fdb52a5940fadda009987e8e8 100644
index 1c89f20debfad9807c90a21cc336d5790294ebce..1666bf3f94b6da030ef5d887c255bdfcf8b081cf 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -120,6 +120,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -113,7 +113,7 @@ index 833563e237462ccfc1b730b8f5fb35340d0db854..92981bbfe854339fdb52a5940fadda00
this.openTradingScreen(player, this.getDisplayName(), 1);
}
diff --git a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java
index 8eab7596e1f7d1beb9ab0d70d1310d26822262e9..55ae9ccbadeb3bb358dd04aadd7b32b14f5bc96f 100644
index 9c17c14de888ef3fbf4139cbad3889ece1d74aa1..39855fc8858f48ea3db00fc35b2b22e66643fdf9 100644
--- a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java
@@ -26,7 +26,7 @@ public class MerchantMenu extends AbstractContainerMenu {
@@ -126,13 +126,13 @@ index 8eab7596e1f7d1beb9ab0d70d1310d26822262e9..55ae9ccbadeb3bb358dd04aadd7b32b1
private int merchantLevel;
private boolean showProgressBar;
diff --git a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java
index 4f7457578ab3118d10e0d5dfc23d79c9b20c2f44..a71d4fd78e1a9b6f4f691d512f372f0cf2b60b4e 100644
index 02feea12c998f37098b72becf6bfaf6b27d155de..b0ac4dcb539c3286a0c79ce7322f8cb8a2237d75 100644
--- a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java
+++ b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java
@@ -20,6 +20,7 @@ public class MerchantOffer {
public float priceMultiplier;
public int xp;
public boolean ignoreDiscounts; // Paper
public boolean ignoreDiscounts; // Paper - Add ignore discounts API
+ public int voidTradeUses; // Leaves - force void trade
// CraftBukkit start
private CraftMerchantRecipe bukkitHandle;
@@ -140,7 +140,7 @@ index 4f7457578ab3118d10e0d5dfc23d79c9b20c2f44..a71d4fd78e1a9b6f4f691d512f372f0c
@@ -73,6 +74,7 @@ public class MerchantOffer {
this.specialPriceDiff = nbt.getInt("specialPrice");
this.demand = nbt.getInt("demand");
this.ignoreDiscounts = nbt.getBoolean("Paper.IgnoreDiscounts"); // Paper
this.ignoreDiscounts = nbt.getBoolean("Paper.IgnoreDiscounts"); // Paper - Add ignore discounts API
+ this.voidTradeUses = 0; // Leaves - force void trade
}
@@ -188,7 +188,7 @@ index 4f7457578ab3118d10e0d5dfc23d79c9b20c2f44..a71d4fd78e1a9b6f4f691d512f372f0c
public void setToOutOfStock() {
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index c06092aa35d44ba98b9680dc72eeba09f6d07822..a2df4fd3c0beb001cd313b3e48f677f37455b772 100644
index 8cf9db4bf550cfec402fdfbfcc098cd18ea499d7..edebf6ab2711ba3e3e689269d9abd6067ecab605 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -225,6 +225,16 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {

View File

@@ -5,19 +5,19 @@ Subject: [PATCH] Disable moved wrongly threshold
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 1d5e7cde06e4f4aa65caaf9b28c1663a59b62679..ce64b31bee8003942ad6f9dae64d41b0b07218fa 100644
index de8bf759b74c8969d12b38c952f48633966d5b74..1c7408e5eac4869c492b2d4d79faf76fad1ae940 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -559,7 +559,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -556,7 +556,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper end
// Paper end - Prevent moving into unloaded chunks
- if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
+ if (!top.leavesmc.leaves.LeavesConfig.disableMovedWronglyThreshold && d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // Leaves - disable can
// CraftBukkit end
ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8});
this.send(new ClientboundMoveVehiclePacket(entity));
@@ -595,7 +595,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -592,7 +592,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
d10 = d6 * d6 + d7 * d7 + d8 * d8;
boolean flag2 = false;
@@ -26,7 +26,7 @@ index 1d5e7cde06e4f4aa65caaf9b28c1663a59b62679..ce64b31bee8003942ad6f9dae64d41b0
flag2 = true; // Paper - diff on change, this should be moved wrongly
ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)});
}
@@ -1428,7 +1428,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1423,7 +1423,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY,
toX, toY, toZ, toYaw, toPitch, true);
if (!event.isAllowed()) {
@@ -35,9 +35,9 @@ index 1d5e7cde06e4f4aa65caaf9b28c1663a59b62679..ce64b31bee8003942ad6f9dae64d41b0
ServerGamePacketListenerImpl.LOGGER.warn("{} moved too quickly! {},{},{}", new Object[]{this.player.getName().getString(), d6, d7, d8});
this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot());
return;
@@ -1498,7 +1498,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1493,7 +1493,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
d10 = d6 * d6 + d7 * d7 + d8 * d8;
boolean flag2 = false;
boolean movedWrongly = false; // Paper - Add fail move event; rename
- if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
+ if (!top.leavesmc.leaves.LeavesConfig.disableMovedWronglyThreshold && !this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot // Leaves - disable can

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Linear region file format
This patch is Powered by LinearPurpur(https://github.com/StupidCraft/LinearPurpur)
diff --git a/build.gradle.kts b/build.gradle.kts
index 3f1316110dd00ae51e2bde8bd87e3b582587b92c..32977ad358c48cc17b0c56f516f74c42336eb38a 100644
index ca79034c1f044a9096de65b0936971c4fd68eb32..990dc1fdd1bffa6bc96f7b325d3e12d55f58e27b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -36,6 +36,10 @@ dependencies {
@@ -103,12 +103,12 @@ 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
index 5dea3d1a33f107959562d64493baffc7dc6dfdd3..983a2cd560921b41bd393bd11b15f0735144d6d3 100644
index 89be9c19db11c9fda0bc21a7f3d30493913e4d3c..e718e1a439dc3e5aef6edd005ba077a09b491260 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -868,13 +868,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -860,13 +860,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
// Paper start - chunk status cache "api"
public ChunkStatus getChunkStatusOnDiskIfCached(ChunkPos chunkPos) {
- net.minecraft.world.level.chunk.storage.RegionFile regionFile = regionFileCache.getRegionFileIfLoaded(chunkPos);
+ top.leavesmc.leaves.region.AbstractRegionFile regionFile = regionFileCache.getRegionFileIfLoaded(chunkPos); // Leaves
@@ -122,7 +122,7 @@ index 5dea3d1a33f107959562d64493baffc7dc6dfdd3..983a2cd560921b41bd393bd11b15f073
if (regionFile == null || !regionFileCache.chunkExists(chunkPos)) {
return null;
@@ -892,7 +892,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -884,7 +884,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
}
public void updateChunkStatusOnDisk(ChunkPos chunkPos, @Nullable CompoundTag compound) throws IOException {
@@ -132,7 +132,7 @@ index 5dea3d1a33f107959562d64493baffc7dc6dfdd3..983a2cd560921b41bd393bd11b15f073
regionFile.setStatus(chunkPos.x, chunkPos.z, ChunkSerializer.getStatus(compound));
}
diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..c54b88834981d3a2a23c862cc54733b2dcd3a654 100644
index 77dd632a266f4abed30b87b7909d77857c01e316..68416a42ff257d3ba4881496262cfa3b6ca2755a 100644
--- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
+++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java
@@ -61,7 +61,7 @@ public class WorldUpgrader {
@@ -144,7 +144,7 @@ index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..c54b88834981d3a2a23c862cc54733b2
private final DimensionDataStorage overworldDataStorage;
public WorldUpgrader(LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, Registry<LevelStem> dimensionOptionsRegistry, boolean eraseCache) {
@@ -235,7 +235,7 @@ public class WorldUpgrader {
@@ -241,7 +241,7 @@ public class WorldUpgrader {
File file = this.levelStorage.getDimensionPath(world).toFile();
File file1 = new File(file, "region");
File[] afile = file1.listFiles((file2, s) -> {
@@ -153,7 +153,7 @@ index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..c54b88834981d3a2a23c862cc54733b2
});
if (afile == null) {
@@ -254,7 +254,10 @@ public class WorldUpgrader {
@@ -260,7 +260,10 @@ public class WorldUpgrader {
int l = Integer.parseInt(matcher.group(2)) << 5;
try {
@@ -166,7 +166,7 @@ index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..c54b88834981d3a2a23c862cc54733b2
try {
for (int i1 = 0; i1 < 32; ++i1) {
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
index c50d317d63f5ce61788abf449ec59a542b021f50..20b347d80757a702b630d816bbac55a1bea68512 100644
index 6cf83502a954cce9c562ec036bfeddb477d38b73..d43c41d377dd04d0babb99170203e2f5bb831204 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
@@ -26,7 +26,7 @@ import net.minecraft.nbt.NbtIo; // Paper
@@ -192,7 +192,7 @@ index c50d317d63f5ce61788abf449ec59a542b021f50..20b347d80757a702b630d816bbac55a1
+ }
+ // Leaves end
+
// Paper start - try to recover from RegionFile header corruption
// Paper start - Attempt to recalculate regionfile header if it is corrupt
private static long roundToSectors(long bytes) {
long sectors = bytes >>> 12; // 4096 = 2^12
@@ -128,7 +138,7 @@ public class RegionFile implements AutoCloseable {
@@ -204,7 +204,7 @@ index c50d317d63f5ce61788abf449ec59a542b021f50..20b347d80757a702b630d816bbac55a1
if (!this.canRecalcHeader) {
return false;
}
@@ -954,10 +964,10 @@ public class RegionFile implements AutoCloseable {
@@ -955,10 +965,10 @@ public class RegionFile implements AutoCloseable {
private static int getChunkIndex(int x, int z) {
return (x & 31) + (z & 31) * 32;
}
@@ -217,7 +217,7 @@ index c50d317d63f5ce61788abf449ec59a542b021f50..20b347d80757a702b630d816bbac55a1
final int offset = getChunkIndex(x, z);
boolean previous = this.oversized[offset] == 1;
this.oversized[offset] = (byte) (oversized ? 1 : 0);
@@ -996,7 +1006,7 @@ public class RegionFile implements AutoCloseable {
@@ -997,7 +1007,7 @@ public class RegionFile implements AutoCloseable {
return this.regionFile.getParent().resolve(this.regionFile.getFileName().toString().replaceAll("\\.mca$", "") + "_oversized_" + x + "_" + z + ".nbt");
}
@@ -227,7 +227,7 @@ index c50d317d63f5ce61788abf449ec59a542b021f50..20b347d80757a702b630d816bbac55a1
try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new InflaterInputStream(Files.newInputStream(file))))) {
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
index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082392641c8 100644
index 30d4efc896fe8b2ec0e8b091045c7d07f952b00b..8718b525a84f717a6c2ee9cc6cef8dfd826df8b9 100644
--- a/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 {
@@ -326,7 +326,7 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
@@ -123,28 +153,46 @@ public class RegionFileStorage implements AutoCloseable {
}
// Paper end - cache regionfile does not exist state
if (this.regionCache.size() >= io.papermc.paper.configuration.GlobalConfiguration.get().misc.regionFileCacheSize) { // Paper - configurable
if (this.regionCache.size() >= io.papermc.paper.configuration.GlobalConfiguration.get().misc.regionFileCacheSize) { // Paper - Sanitise RegionFileCache and make configurable.
- ((RegionFile) this.regionCache.removeLast()).close();
+ this.regionCache.removeLast().close(); // Leaves
}
@@ -378,16 +378,16 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
}
// Paper end
return regionfile1;
@@ -172,7 +220,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -156,7 +204,7 @@ public class RegionFileStorage implements AutoCloseable {
org.apache.logging.log4j.LogManager.getLogger().fatal(msg + " (" + file.toString().replaceAll(".+[\\\\/]", "") + " - " + x + "," + z + ") Go clean it up to remove this message. /minecraft:tp " + (x<<4)+" 128 "+(z<<4) + " - DO NOT REPORT THIS TO PAPER - You may ask for help on Discord, but do not file an issue. These error messages can not be removed.");
}
- private static CompoundTag readOversizedChunk(RegionFile regionfile, ChunkPos chunkCoordinate) throws IOException {
+ private static CompoundTag readOversizedChunk(top.leavesmc.leaves.region.AbstractRegionFile regionfile, ChunkPos chunkCoordinate) throws IOException { // Leaves
synchronized (regionfile) {
try (DataInputStream datainputstream = regionfile.getChunkDataInputStream(chunkCoordinate)) {
CompoundTag oversizedData = regionfile.getOversizedData(chunkCoordinate.x, chunkCoordinate.z);
@@ -219,14 +267,14 @@ public class RegionFileStorage implements AutoCloseable {
@@ -191,14 +239,14 @@ public class RegionFileStorage implements AutoCloseable {
@Nullable
public CompoundTag read(ChunkPos pos) throws IOException {
// CraftBukkit start - SPIGOT-5680: There's no good reason to preemptively create files on read, save that for writing
@@ -404,7 +404,7 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
// We add the regionfile parameter to avoid the potential deadlock (on fileLock) if we went back to obtain a regionfile
// if we decide to re-read
// Paper end
@@ -236,7 +284,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -208,7 +256,7 @@ public class RegionFileStorage implements AutoCloseable {
// Paper start
if (regionfile.isOversized(pos.x, pos.z)) {
@@ -413,7 +413,7 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
return readOversizedChunk(regionfile, pos);
}
// Paper end
@@ -250,12 +298,12 @@ public class RegionFileStorage implements AutoCloseable {
@@ -222,12 +270,12 @@ public class RegionFileStorage implements AutoCloseable {
if (this.isChunkData) {
ChunkPos chunkPos = ChunkSerializer.getChunkCoordinate(nbttagcompound);
if (!chunkPos.equals(pos)) {
@@ -429,7 +429,7 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
return null;
}
}
@@ -289,13 +337,13 @@ public class RegionFileStorage implements AutoCloseable {
@@ -261,13 +309,13 @@ public class RegionFileStorage implements AutoCloseable {
return nbttagcompound;
} finally { // Paper start
@@ -445,7 +445,7 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
if (regionfile == null) {
return;
}
@@ -325,7 +373,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -297,7 +345,7 @@ public class RegionFileStorage implements AutoCloseable {
}
protected void write(ChunkPos pos, @Nullable CompoundTag nbt) throws IOException {
@@ -454,16 +454,16 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
if (nbt == null && regionfile == null) {
return;
}
@@ -375,7 +423,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -347,7 +395,7 @@ public class RegionFileStorage implements AutoCloseable {
}
// Paper end
// Paper end - Chunk save reattempt
} finally { // Paper start
- regionfile.fileLock.unlock();
+ regionfile.getFileLock().unlock(); // Leaves
} // Paper end
}
@@ -384,7 +432,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -356,7 +404,7 @@ public class RegionFileStorage implements AutoCloseable {
ObjectIterator objectiterator = this.regionCache.values().iterator();
while (objectiterator.hasNext()) {
@@ -472,7 +472,7 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
try {
regionfile.close();
@@ -400,7 +448,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -372,7 +420,7 @@ public class RegionFileStorage implements AutoCloseable {
ObjectIterator objectiterator = this.regionCache.values().iterator();
while (objectiterator.hasNext()) {
@@ -482,13 +482,13 @@ index 6bec4549fbcfb68a053300451e25babf8ff38e99..b25f674e68714b11a9ca2a231f470082
regionfile.flush();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 2916fb49c69daaa660fc7f53821e8be766226345..433bbdb42ba5a7b4454eca2895dbf9dbf01086d5 100644
index aa0a1cbbbd4f2f027e24a4166bd5be4009c2ac3e..eedc10b3fd0ae2da321d66d1b08f55edf031accf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -567,7 +567,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -565,7 +565,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
world.getChunk(x, z); // make sure we're at ticket level 32 or lower
return true;
}
- net.minecraft.world.level.chunk.storage.RegionFile file;
+ top.leavesmc.leaves.region.AbstractRegionFile file; // Leaves
try {

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
index 3f8113b22ebbb7ff783308033edcf10259dc0e82..cacc6876ed4dc27d090f9d046fe8a4634f240176 100644
index ce85d69027cbfb06666c9242576d3abbd7cc2831..bf2cf885552249765f005086750a8457c0949c49 100644
--- a/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;
@@ -16,7 +16,7 @@ index 3f8113b22ebbb7ff783308033edcf10259dc0e82..cacc6876ed4dc27d090f9d046fe8a463
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.TickingBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
@@ -1030,7 +1031,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1029,7 +1030,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
if ((i & 1) != 0) {