diff --git a/gradle.properties b/gradle.properties index 3fb30968..e30dad77 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,6 +4,6 @@ version=1.20.4-R0.1-SNAPSHOT mcVersion=1.20.4 packageVersion=1_20_R3 org.gradle.jvmargs=-Xmx2G -paperRef=f1820dc80a02009980e6466ea5847933861b911a +paperRef=1e7dd72f15a1d13b43792367193547c656a16ab6 preVersion=true updatingMinecraft=true \ No newline at end of file diff --git a/patches/api/0001-Leaves-Server-Config.patch b/patches/api/0001-Leaves-Server-Config.patch index 92b7c709..e0d29c1c 100644 --- a/patches/api/0001-Leaves-Server-Config.patch +++ b/patches/api/0001-Leaves-Server-Config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Server Config diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index f1fa97d12f97baf97beb92ca0719cf3cf906b225..119429ff7b4b7c3313b9affdd1adb25ae814f089 100644 +index 9af4bc16da09e59009c47911219e99450cdf2aa5..2d59fffd32299af90c7fa9579d8ce667ec9642b2 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2189,6 +2189,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2197,6 +2197,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi throw new UnsupportedOperationException("Not supported yet."); } // Paper end diff --git a/patches/api/0003-Add-fakeplayer-api.patch b/patches/api/0003-Add-fakeplayer-api.patch index 56a11aee..ad50bcad 100644 --- a/patches/api/0003-Add-fakeplayer-api.patch +++ b/patches/api/0003-Add-fakeplayer-api.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fakeplayer api diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 4863d9f21f0a0f11974be85360edc587ffd7eab3..f54403c29005b891377577a36aa79af1365adc31 100644 +index 48fab492609e0bae459d20cc2eae78b87e37ab75..d3efd7baa57135aafe840f9de06f42b73e1e4447 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -58,6 +58,7 @@ import org.jetbrains.annotations.Contract; @@ -16,7 +16,7 @@ index 4863d9f21f0a0f11974be85360edc587ffd7eab3..f54403c29005b891377577a36aa79af1 /** * Represents the Bukkit core, for version and Server singleton handling -@@ -2828,6 +2829,17 @@ public final class Bukkit { +@@ -2838,6 +2839,17 @@ public final class Bukkit { } // Paper end - Folia region threading API @@ -35,7 +35,7 @@ index 4863d9f21f0a0f11974be85360edc587ffd7eab3..f54403c29005b891377577a36aa79af1 public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 119429ff7b4b7c3313b9affdd1adb25ae814f089..7171f1b4729bf28e6c528c2f1036018a5ffcc895 100644 +index 2d59fffd32299af90c7fa9579d8ce667ec9642b2..c3f30fcf4bafd61331aeffab9539c86a0220f85d 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -58,6 +58,7 @@ import org.bukkit.util.CachedServerIcon; @@ -46,7 +46,7 @@ index 119429ff7b4b7c3313b9affdd1adb25ae814f089..7171f1b4729bf28e6c528c2f1036018a /** * Represents a server implementation. -@@ -2481,4 +2482,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2489,4 +2490,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean isOwnedByCurrentRegion(@NotNull Entity entity); // Paper end - Folia region threading API diff --git a/patches/api/0005-Hide-irrelevant-compilation-warnings.patch b/patches/api/0005-Hide-irrelevant-compilation-warnings.patch index 8b95e284..926c21f7 100644 --- a/patches/api/0005-Hide-irrelevant-compilation-warnings.patch +++ b/patches/api/0005-Hide-irrelevant-compilation-warnings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Hide irrelevant compilation warnings diff --git a/build.gradle.kts b/build.gradle.kts -index 9d817bf3f26ffd484945a00a6538970eca22ee20..a4baf13537c24b9c49fc35cf8f0fad09d14c9863 100644 +index 3e3ea0e4e4ceb3283ad2b99957e3795d66a9a716..757dd80342ace11a019a70c91201c5b43f35acb3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -109,6 +109,15 @@ val generateApiVersioningFile by tasks.registering { diff --git a/patches/api/0006-SIMD-support.patch b/patches/api/0006-SIMD-support.patch index 2eb2e161..9ada51f8 100644 --- a/patches/api/0006-SIMD-support.patch +++ b/patches/api/0006-SIMD-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] SIMD support diff --git a/build.gradle.kts b/build.gradle.kts -index a4baf13537c24b9c49fc35cf8f0fad09d14c9863..311a3134cf4b60d48c3096aebe500106dd4bd267 100644 +index 757dd80342ace11a019a70c91201c5b43f35acb3..30c391a6c884efce9d10a60f896be6f264cc8eef 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -115,6 +115,7 @@ tasks.withType { diff --git a/patches/api/0007-Leaves-API-publish.patch b/patches/api/0007-Leaves-API-publish.patch index 0aadce93..71bd3be0 100644 --- a/patches/api/0007-Leaves-API-publish.patch +++ b/patches/api/0007-Leaves-API-publish.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaves API publish diff --git a/build.gradle.kts b/build.gradle.kts -index 311a3134cf4b60d48c3096aebe500106dd4bd267..c124ac034906a065514f5a1af53b88e550ba37eb 100644 +index 30c391a6c884efce9d10a60f896be6f264cc8eef..837dfdc3a069cc2c5ba7bf8ef40d7c7699571138 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -212,3 +212,14 @@ tasks.check { diff --git a/patches/api/0010-Replay-Mod-API.patch b/patches/api/0010-Replay-Mod-API.patch index 9f2fd817..bf96d4ce 100644 --- a/patches/api/0010-Replay-Mod-API.patch +++ b/patches/api/0010-Replay-Mod-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Replay Mod API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index f54403c29005b891377577a36aa79af1365adc31..15f18b4961effe78645e54d0b0cc8c530a807a68 100644 +index d3efd7baa57135aafe840f9de06f42b73e1e4447..1c1f1c0c7ef30bde55137bc29564d8ab84dd8437 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -59,6 +59,7 @@ import org.jetbrains.annotations.NotNull; @@ -16,7 +16,7 @@ index f54403c29005b891377577a36aa79af1365adc31..15f18b4961effe78645e54d0b0cc8c53 /** * Represents the Bukkit core, for version and Server singleton handling -@@ -2839,6 +2840,11 @@ public final class Bukkit { +@@ -2849,6 +2850,11 @@ public final class Bukkit { return server.getBotManager(); } // Leaves end - Bot API @@ -29,7 +29,7 @@ index f54403c29005b891377577a36aa79af1365adc31..15f18b4961effe78645e54d0b0cc8c53 @NotNull public static Server.Spigot spigot() { diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 7171f1b4729bf28e6c528c2f1036018a5ffcc895..bb02f2e08597cd9362a587b1c9b442393cc19d54 100644 +index c3f30fcf4bafd61331aeffab9539c86a0220f85d..0162f771532a6899a60dc56b2effdd259fd3b2e4 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -59,6 +59,7 @@ import org.jetbrains.annotations.Contract; @@ -40,7 +40,7 @@ index 7171f1b4729bf28e6c528c2f1036018a5ffcc895..bb02f2e08597cd9362a587b1c9b44239 /** * Represents a server implementation. -@@ -2491,4 +2492,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2499,4 +2500,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull BotManager getBotManager(); // Leaves end - Bot API diff --git a/patches/server/0001-Build-changes.patch b/patches/server/0001-Build-changes.patch index 5fb4490d..f6aa0f05 100644 --- a/patches/server/0001-Build-changes.patch +++ b/patches/server/0001-Build-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build changes diff --git a/build.gradle.kts b/build.gradle.kts -index 170a915098f09ace226648da342a04c5c7583d11..9dd0f8b3e4042bdd3adcb2ec59fdbe9629d0915f 100644 +index b12b5a1e82a5ebf47135a3863a390a45a9d8d8ec..257520120913ab39d57ac0e79ae6381fbda0011b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,9 +26,13 @@ repositories { @@ -186,10 +186,10 @@ index 58536aabf607015939a1326f80207c0a06eed8ff..5a07dad83602425b35f480cf8a31ed32 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 782bb8ca67517dde5dba8f0a133eb8699353dd01..057b5fd0fd4f5dc2340cd80f316703edc1f88cae 100644 +index e011cfcdda2e0a609d4158b0454bdf046b04c9d9..a8b92ff8975730fb8ac752aa21aa28f9cae26dd9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -270,7 +270,7 @@ import javax.annotation.Nullable; // Paper +@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { @@ -199,7 +199,7 @@ index 782bb8ca67517dde5dba8f0a133eb8699353dd01..057b5fd0fd4f5dc2340cd80f316703ed 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 4b457cbfc56e55e0ae0fee5b69e2e75349702aab..0815d354bbcb3ce2e263690f71f32c320fe3d1d2 100644 +index a74a8a027c99eef199c1a6a54232ac2c8ffb9d08..1cc94f4edd225524b31c73700e624a6b3e2aa7db 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 { diff --git a/patches/server/0002-Delete-Timings.patch b/patches/server/0002-Delete-Timings.patch index 2b198c53..7ef57c71 100644 --- a/patches/server/0002-Delete-Timings.patch +++ b/patches/server/0002-Delete-Timings.patch @@ -1274,7 +1274,7 @@ index caa73632aee15583c6b6ed12a668c8f49b794708..d9a33968fa0f1aa5def297f34ba1dbf2 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 6e212f672579a3e08dc362c287be59ca5170d717..1f07d7cc8e15d54bc7841454aa47c8e51d77ea86 100644 +index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..d6089c0d0b076d232834619bc93bc64f0be57340 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 { @@ -1331,15 +1331,13 @@ index 6e212f672579a3e08dc362c287be59ca5170d717..1f07d7cc8e15d54bc7841454aa47c8e5 this.level.getProfiler().pop(); this.clearCache(); } -@@ -516,7 +504,6 @@ public class ServerChunkCache extends ChunkSource { - +@@ -517,13 +505,11 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("filteringLoadedChunks"); + // Paper - optimise chunk tick iteration - if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper - // Paper start - optimise chunk tick iteration - ChunkMap playerChunkMap = this.chunkMap; -@@ -556,7 +543,6 @@ public class ServerChunkCache extends ChunkSource { + // Paper - optimise chunk tick iteration if (this.level.getServer().tickRateManager().runsNormally()) { gameprofilerfiller.popPush("naturalSpawnCount"); @@ -1347,7 +1345,7 @@ index 6e212f672579a3e08dc362c287be59ca5170d717..1f07d7cc8e15d54bc7841454aa47c8e5 int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - per player mob spawning int naturalSpawnChunkCount = k; -@@ -581,7 +567,6 @@ public class ServerChunkCache extends ChunkSource { +@@ -548,7 +534,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 @@ -1355,7 +1353,7 @@ index 6e212f672579a3e08dc362c287be59ca5170d717..1f07d7cc8e15d54bc7841454aa47c8e5 this.lastSpawnState = spawnercreature_d; gameprofilerfiller.popPush("spawnAndTick"); -@@ -688,19 +673,14 @@ public class ServerChunkCache extends ChunkSource { +@@ -657,19 +642,14 @@ public class ServerChunkCache extends ChunkSource { } } // Paper end - optimise chunk tick iteration @@ -1375,7 +1373,7 @@ index 6e212f672579a3e08dc362c287be59ca5170d717..1f07d7cc8e15d54bc7841454aa47c8e5 // Paper start - optimise chunk tick iteration if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet copy = this.chunkMap.needsChangeBroadcasting.clone(); -@@ -714,8 +694,6 @@ public class ServerChunkCache extends ChunkSource { +@@ -683,8 +663,6 @@ public class ServerChunkCache extends ChunkSource { } } // Paper end - optimise chunk tick iteration @@ -1954,7 +1952,7 @@ index fa170cc1ce7011d201295b89718292d696c7fc24..6b47cd3dfd0b7a9fc670522d8591e2f4 } } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 0815d354bbcb3ce2e263690f71f32c320fe3d1d2..e815dc2a36343925150c3bcb3a0ef6fded1bc955 100644 +index 1cc94f4edd225524b31c73700e624a6b3e2aa7db..01d907e3266095bb33d3a73dc56004fd79043943 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 { diff --git a/patches/server/0003-Leaves-Server-Utils.patch b/patches/server/0003-Leaves-Server-Utils.patch index 4deae525..55e42223 100644 --- a/patches/server/0003-Leaves-Server-Utils.patch +++ b/patches/server/0003-Leaves-Server-Utils.patch @@ -31,18 +31,18 @@ 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 9abe817ae202edaa2d88cd59ae5c7db0b1c634be..a260235364b7acaac5ffa28234400ee907a4889b 100644 +index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..3c9b90b8d997790f3e4302eee41919780e561aff 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API - public boolean collidingWithWorldBorder; // Paper -+ private CompoundTag leavesData = new CompoundTag(); // Leaves - Leaves ex data public boolean fixedPose = false; // Paper ++ private CompoundTag leavesData = new CompoundTag(); // Leaves - Leaves ex data public void setOrigin(@javax.annotation.Nonnull Location location) { -@@ -2478,6 +2479,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + this.origin = location.toVector(); +@@ -2473,6 +2474,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -50,7 +50,7 @@ index 9abe817ae202edaa2d88cd59ae5c7db0b1c634be..a260235364b7acaac5ffa28234400ee9 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2625,6 +2627,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2620,6 +2622,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -62,7 +62,7 @@ index 9abe817ae202edaa2d88cd59ae5c7db0b1c634be..a260235364b7acaac5ffa28234400ee9 } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); -@@ -4916,4 +4923,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4911,4 +4918,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end diff --git a/patches/server/0005-Leaves-Server-Config-And-Command.patch b/patches/server/0005-Leaves-Server-Config-And-Command.patch index d4a7a39e..4ee7b1ca 100644 --- a/patches/server/0005-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0005-Leaves-Server-Config-And-Command.patch @@ -68,10 +68,10 @@ index d1f19c87d6112e7ab9afa5c2e6d6ec529b351d24..1c4a75b556be384807cbc26e7ee8b580 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 057b5fd0fd4f5dc2340cd80f316703edc1f88cae..04d9a1838f1c47c83eb94ea85e46d689c83a679a 100644 +index a8b92ff8975730fb8ac752aa21aa28f9cae26dd9..89f4f6d1a9822569b267a90ee091b8d219b73abe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1036,6 +1036,7 @@ public final class CraftServer implements Server { +@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); @@ -79,7 +79,7 @@ index 057b5fd0fd4f5dc2340cd80f316703edc1f88cae..04d9a1838f1c47c83eb94ea85e46d689 for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1051,6 +1052,7 @@ public final class CraftServer implements Server { +@@ -1052,6 +1053,7 @@ public final class CraftServer implements Server { } } world.spigotConfig.init(); // Spigot @@ -87,7 +87,7 @@ index 057b5fd0fd4f5dc2340cd80f316703edc1f88cae..04d9a1838f1c47c83eb94ea85e46d689 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1066,6 +1068,7 @@ public final class CraftServer implements Server { +@@ -1067,6 +1069,7 @@ public final class CraftServer implements Server { this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper @@ -95,7 +95,7 @@ index 057b5fd0fd4f5dc2340cd80f316703edc1f88cae..04d9a1838f1c47c83eb94ea85e46d689 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -3009,6 +3012,14 @@ public final class CraftServer implements Server { +@@ -3010,6 +3013,14 @@ public final class CraftServer implements Server { { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -111,7 +111,7 @@ index 057b5fd0fd4f5dc2340cd80f316703edc1f88cae..04d9a1838f1c47c83eb94ea85e46d689 @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 e815dc2a36343925150c3bcb3a0ef6fded1bc955..afe922d39eeacc7916862a3287a9e97e22813dab 100644 +index 01d907e3266095bb33d3a73dc56004fd79043943..06c00aa070334deeae96524b35ff129547e675ea 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 { diff --git a/patches/server/0006-Leaves-Protocol-Core.patch b/patches/server/0006-Leaves-Protocol-Core.patch index 142e78d3..c408fd87 100644 --- a/patches/server/0006-Leaves-Protocol-Core.patch +++ b/patches/server/0006-Leaves-Protocol-Core.patch @@ -77,10 +77,10 @@ index cd4e8facc10796fbb68141994b7fed5ca379f1a4..937c4aefc5f24cbfe3f9c9fce3cfb2f4 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 04d9a1838f1c47c83eb94ea85e46d689c83a679a..8fa5e507214b79573506c987a7060013dbf5ac2e 100644 +index 89f4f6d1a9822569b267a90ee091b8d219b73abe..72e8f8cc4db8b75e3c93470911a0509eef2d9a1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -467,6 +467,7 @@ public final class CraftServer implements Server { +@@ -463,6 +463,7 @@ public final class CraftServer implements Server { MapPalette.setMapColorCache(new CraftMapColorCache(this.logger)); } datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper @@ -88,7 +88,7 @@ index 04d9a1838f1c47c83eb94ea85e46d689c83a679a..8fa5e507214b79573506c987a7060013 } public boolean getCommandBlockOverride(String command) { -@@ -1071,6 +1072,7 @@ public final class CraftServer implements Server { +@@ -1072,6 +1073,7 @@ public final class CraftServer implements Server { top.leavesmc.leaves.LeavesConfig.registerCommands(); // Leaves - Server Command this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); diff --git a/patches/server/0007-Fix-gravity-block-duper.patch b/patches/server/0007-Fix-gravity-block-duper.patch index 1834dbb4..0293347e 100644 --- a/patches/server/0007-Fix-gravity-block-duper.patch +++ b/patches/server/0007-Fix-gravity-block-duper.patch @@ -5,10 +5,10 @@ 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 a260235364b7acaac5ffa28234400ee907a4889b..ab66958a734ff303f25e62fec21f1b250aeec5ab 100644 +index 3c9b90b8d997790f3e4302eee41919780e561aff..2134c810da69a8c4a2bddcb29c0534d7ad65e8aa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -505,38 +505,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -504,38 +504,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean updatingSectionStatus = false; // Paper end @@ -48,7 +48,7 @@ index a260235364b7acaac5ffa28234400ee907a4889b..ab66958a734ff303f25e62fec21f1b25 public boolean isLegacyTrackingEntity = false; -@@ -3183,7 +3154,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3178,7 +3149,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); diff --git a/patches/server/0010-Fakeplayer-support.patch b/patches/server/0010-Fakeplayer-support.patch index d5e2228f..7f3ba51c 100644 --- a/patches/server/0010-Fakeplayer-support.patch +++ b/patches/server/0010-Fakeplayer-support.patch @@ -17,7 +17,7 @@ index 31fa6a0cb00139bfcb71f4fd30da8b736bf491f2..1ad8b58fc3e97026173727fd4bb84782 Set> 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 c0ea20dcee8bb293df96bc6ee019e50ad6b383fd..f265b3b3736de5ff3bc1b52146d11f92033730a5 100644 +index 2ae08b21c63490bbf8cd870f9585d82ed131f815..c6f773afc39e7c97d13d1977a7609fc46714709d 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> { @@ -99,18 +99,10 @@ index d9a33968fa0f1aa5def297f34ba1dbf229ee7c32..a54e9a6a35760eae2c70eb6b9d4881ec } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8efbbd379244e3ed54d4aba199037cc20ccd096a..5ae4f2a4138611ef4428719f27b991612cb962e8 100644 +index d1f20a8a3ccea1f074624163eb96da023142a459..5922236bc6c69a8266144435e665861a657778ac 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -95,7 +95,6 @@ import net.minecraft.util.Mth; - import net.minecraft.util.RandomSource; - import net.minecraft.util.Unit; - import net.minecraft.world.damagesource.DamageSource; --import net.minecraft.world.damagesource.DamageSources; - import net.minecraft.world.effect.MobEffectInstance; - import net.minecraft.world.effect.MobEffects; - import net.minecraft.world.entity.Entity; -@@ -186,6 +185,7 @@ import org.bukkit.event.player.PlayerTeleportEvent; +@@ -186,6 +186,7 @@ import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.inventory.MainHand; @@ -118,7 +110,7 @@ index 8efbbd379244e3ed54d4aba199037cc20ccd096a..5ae4f2a4138611ef4428719f27b99161 // CraftBukkit end public class ServerPlayer extends Player { -@@ -730,15 +730,19 @@ public class ServerPlayer extends Player { +@@ -730,15 +731,19 @@ public class ServerPlayer extends Player { } // Paper start - Configurable container update tick rate @@ -146,7 +138,7 @@ index 8efbbd379244e3ed54d4aba199037cc20ccd096a..5ae4f2a4138611ef4428719f27b99161 Entity entity = this.getCamera(); -@@ -754,7 +758,7 @@ public class ServerPlayer extends Player { +@@ -754,7 +759,7 @@ public class ServerPlayer extends Player { } } @@ -155,7 +147,7 @@ index 8efbbd379244e3ed54d4aba199037cc20ccd096a..5ae4f2a4138611ef4428719f27b99161 if (this.levitationStartPos != null) { CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime); } -@@ -947,7 +951,7 @@ public class ServerPlayer extends Player { +@@ -947,7 +952,7 @@ public class ServerPlayer extends Player { List loot = new java.util.ArrayList<>(this.getInventory().getContainerSize()); // Paper boolean keepInventory = this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) || this.isSpectator(); @@ -163,8 +155,8 @@ index 8efbbd379244e3ed54d4aba199037cc20ccd096a..5ae4f2a4138611ef4428719f27b99161 + if (!keepInventory || this instanceof ServerBot) { // Leaves - skip bot for (ItemStack item : this.getInventory().getContents()) { if (!item.isEmpty() && !EnchantmentHelper.hasVanishingCurse(item)) { - loot.add(new DefaultDrop(item, stack -> this.drop(stack, true, false))); // Paper - drop function taken from Inventory#dropAll -@@ -1271,6 +1275,13 @@ public class ServerPlayer extends Player { + loot.add(new DefaultDrop(item, stack -> this.drop(stack, true, false, false))); // Paper - drop function taken from Inventory#dropAll (don't fire drop event) +@@ -1271,6 +1276,13 @@ public class ServerPlayer extends Player { this.lastSentHealth = -1.0F; this.lastSentFood = -1; @@ -282,10 +274,10 @@ index 937c4aefc5f24cbfe3f9c9fce3cfb2f40db5675b..81c09a9686731953787b56c3c8a20543 + // 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 ab66958a734ff303f25e62fec21f1b250aeec5ab..741b090e46a34e9c7711ddebf06c12316b5ad7de 100644 +index 2134c810da69a8c4a2bddcb29c0534d7ad65e8aa..2bd6e02291b6ac6ff31e85f6721bb89b2efc704b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1421,7 +1421,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1420,7 +1420,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return offsetFactor; } @@ -361,10 +353,10 @@ index dfeb3e336e06ef01f5401a362755030db942bb07..c51413bf02b3572a05f09d2f0d02493d if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper 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 8fa5e507214b79573506c987a7060013dbf5ac2e..a36b234f884e2aae88a29fae872aeef662b27712 100644 +index 72e8f8cc4db8b75e3c93470911a0509eef2d9a1f..9782a52dbbad0f1c4baaf3651790b19619def28f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -265,6 +265,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor; +@@ -259,6 +259,7 @@ import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.error.MarkedYAMLException; import net.md_5.bungee.api.chat.BaseComponent; // Spigot @@ -372,7 +364,7 @@ index 8fa5e507214b79573506c987a7060013dbf5ac2e..a36b234f884e2aae88a29fae872aeef6 import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper -@@ -310,6 +311,7 @@ public final class CraftServer implements Server { +@@ -305,6 +306,7 @@ public final class CraftServer implements Server { public static Exception excessiveVelEx; // Paper - Velocity warnings private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper @@ -380,7 +372,7 @@ index 8fa5e507214b79573506c987a7060013dbf5ac2e..a36b234f884e2aae88a29fae872aeef6 // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -3241,4 +3243,11 @@ public final class CraftServer implements Server { +@@ -3242,4 +3244,11 @@ public final class CraftServer implements Server { } // Paper end @@ -393,10 +385,10 @@ index 8fa5e507214b79573506c987a7060013dbf5ac2e..a36b234f884e2aae88a29fae872aeef6 + // 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 aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..801ee163a71ab2afd822c7f17bf45573c0fd83f5 100644 +index 1727e932ac6b9ca09b5df96f9547ff125114e15a..418f16debd40e7588c8cfea2876a9688ceb11730 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -199,6 +199,8 @@ import org.bukkit.plugin.Plugin; +@@ -54,6 +54,8 @@ import org.bukkit.plugin.Plugin; import org.bukkit.util.BoundingBox; import org.bukkit.util.NumberConversions; import org.bukkit.util.Vector; @@ -405,20 +397,15 @@ index aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..801ee163a71ab2afd822c7f17bf45573 import net.md_5.bungee.api.chat.BaseComponent; // Spigot -@@ -236,7 +238,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - if (entity instanceof LivingEntity) { - // Players - if (entity instanceof net.minecraft.world.entity.player.Player) { -- if (entity instanceof ServerPlayer) { return new CraftPlayer(server, (ServerPlayer) entity); } -+ // Leaves start - add CraftBot -+ if (entity instanceof ServerPlayer) { -+ if (entity instanceof ServerBot) { return new CraftBot(server, (ServerBot) entity); } -+ else { return new CraftPlayer(server, (ServerPlayer) entity); } -+ } -+ // Leaves end - add CraftBot - else { return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity); } - } - // Water Animals +@@ -91,6 +93,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity); + } + ++ if (entity instanceof ServerBot) { return new CraftBot(server, (ServerBot) entity); } ++ + // Special case complex part, since there is no extra entity type for them + if (entity instanceof EnderDragonPart complexPart) { + if (complexPart.parentMob instanceof EnderDragon) { diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java index 74ff54724626908a083063c54983e0adfbbf7749..7afc1618f2014df67ca42f00c09e863c16afda56 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java diff --git a/patches/server/0023-Optimize-entity-coordinate-key.patch b/patches/server/0023-Optimize-entity-coordinate-key.patch index 9c1e309b..915ed983 100644 --- a/patches/server/0023-Optimize-entity-coordinate-key.patch +++ b/patches/server/0023-Optimize-entity-coordinate-key.patch @@ -25,7 +25,7 @@ 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 741b090e46a34e9c7711ddebf06c12316b5ad7de..94de127e75688b6e5fa5660eb853140438258083 100644 +index 2bd6e02291b6ac6ff31e85f6721bb89b2efc704b..0cdfb9470c29132f75a5b3df05178626a56e4e6e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -307,7 +307,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch b/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch index 1fdbaa57..90efc893 100644 --- a/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch +++ b/patches/server/0027-Optimize-random-calls-in-chunk-ticking.patch @@ -6,7 +6,7 @@ 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 1f07d7cc8e15d54bc7841454aa47c8e51d77ea86..8a3e55b3a79a174a2a55f38d39ed4b8ba29b8763 100644 +index d6089c0d0b076d232834619bc93bc64f0be57340..c4577d7dc27bb48c95794212de4abf2e31458380 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 { @@ -19,8 +19,8 @@ index 1f07d7cc8e15d54bc7841454aa47c8e51d77ea86..8a3e55b3a79a174a2a55f38d39ed4b8b + } + // Leaves end - reset ice & snow tick random gameprofilerfiller.push("filteringLoadedChunks"); + // Paper - optimise chunk tick iteration - // Paper start - 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 eacc88d49f1c4158eb60a7b4425134fa827a6381..62745cdb8cb2d153621dc5e4c8ebd2cbd5fc7c08 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/patches/server/0032-Reduce-entity-allocations.patch b/patches/server/0032-Reduce-entity-allocations.patch index 3b7b01da..ad97bbd3 100644 --- a/patches/server/0032-Reduce-entity-allocations.patch +++ b/patches/server/0032-Reduce-entity-allocations.patch @@ -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 94de127e75688b6e5fa5660eb853140438258083..13d6f4e7ca613fe11e97b5a562b494ce9ce5d211 100644 +index 0cdfb9470c29132f75a5b3df05178626a56e4e6e..c4fb0f8e4aa77f8c6d77ad0ca9f8d985ea6cec3e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -440,6 +440,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -439,6 +439,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.originWorld; } // Paper end diff --git a/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch b/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch index 20031e0c..d0b26118 100644 --- a/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch +++ b/patches/server/0039-Reduce-entity-fluid-lookups-if-no-fluids.patch @@ -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 13d6f4e7ca613fe11e97b5a562b494ce9ce5d211..2d9af0ad73e718fe387dc0df1984c83a962319f3 100644 +index c4fb0f8e4aa77f8c6d77ad0ca9f8d985ea6cec3e..76508bdb3331f8b33d1b7575e8500cef3fa7e8f4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4384,16 +4384,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4379,16 +4379,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -35,7 +35,7 @@ index 13d6f4e7ca613fe11e97b5a562b494ce9ce5d211..2d9af0ad73e718fe387dc0df1984c83a double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4401,38 +4403,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4396,38 +4398,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0047-Player-operation-limiter.patch b/patches/server/0047-Player-operation-limiter.patch index dbbc33b0..4fe6da6b 100644 --- a/patches/server/0047-Player-operation-limiter.patch +++ b/patches/server/0047-Player-operation-limiter.patch @@ -6,10 +6,10 @@ 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 5ae4f2a4138611ef4428719f27b991612cb962e8..7ba1067382a53740e82480db9ce2ba48f28beb92 100644 +index 5922236bc6c69a8266144435e665861a657778ac..d8f0e6f64a28df720306f6b77d78cfabfba4ffe9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -281,6 +281,10 @@ public class ServerPlayer extends Player { +@@ -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 @@ -20,7 +20,7 @@ index 5ae4f2a4138611ef4428719f27b991612cb962e8..7ba1067382a53740e82480db9ce2ba48 // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); -@@ -722,6 +726,7 @@ public class ServerPlayer extends Player { +@@ -723,6 +727,7 @@ public class ServerPlayer extends Player { this.joining = false; } // CraftBukkit end @@ -28,7 +28,7 @@ index 5ae4f2a4138611ef4428719f27b991612cb962e8..7ba1067382a53740e82480db9ce2ba48 this.gameMode.tick(); this.wardenSpawnTracker.tick(); --this.spawnInvulnerableTime; -@@ -2765,5 +2770,32 @@ public class ServerPlayer extends Player { +@@ -2766,5 +2771,32 @@ public class ServerPlayer extends Player { public CraftPlayer getBukkitEntity() { return (CraftPlayer) super.getBukkitEntity(); } diff --git a/patches/server/0052-Return-nether-portal-fix.patch b/patches/server/0052-Return-nether-portal-fix.patch index 72d6dfa9..8021ad20 100644 --- a/patches/server/0052-Return-nether-portal-fix.patch +++ b/patches/server/0052-Return-nether-portal-fix.patch @@ -6,10 +6,10 @@ 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 7ba1067382a53740e82480db9ce2ba48f28beb92..b60f13f552b5bccf01e1c9e0bfc1e82013ad31a9 100644 +index d8f0e6f64a28df720306f6b77d78cfabfba4ffe9..08851bf5f7aa89b18f347bfc6e7f3d40b59a99e3 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.TeleportCause; +@@ -187,6 +187,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.inventory.MainHand; import top.leavesmc.leaves.bot.ServerBot; @@ -17,7 +17,7 @@ index 7ba1067382a53740e82480db9ce2ba48f28beb92..b60f13f552b5bccf01e1c9e0bfc1e820 // CraftBukkit end public class ServerPlayer extends Player { -@@ -1291,6 +1292,24 @@ public class ServerPlayer extends Player { +@@ -1292,6 +1293,24 @@ public class ServerPlayer extends Player { PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.level().getCraftServer().getPluginManager().callEvent(changeEvent); // CraftBukkit end @@ -42,7 +42,7 @@ index 7ba1067382a53740e82480db9ce2ba48f28beb92..b60f13f552b5bccf01e1c9e0bfc1e820 } // Paper start if (this.isBlocking()) { -@@ -1343,6 +1362,30 @@ public class ServerPlayer extends Player { +@@ -1344,6 +1363,30 @@ public class ServerPlayer extends Player { protected Optional getExitPortal(ServerLevel worldserver, BlockPos blockposition, boolean flag, WorldBorder worldborder, int searchRadius, boolean canCreatePortal, int createRadius) { // CraftBukkit Optional optional = super.getExitPortal(worldserver, blockposition, flag, worldborder, searchRadius, canCreatePortal, createRadius); // CraftBukkit diff --git a/patches/server/0056-Use-vanilla-random-config.patch b/patches/server/0056-Use-vanilla-random-config.patch index 9d255fd4..d743f308 100644 --- a/patches/server/0056-Use-vanilla-random-config.patch +++ b/patches/server/0056-Use-vanilla-random-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use vanilla random config diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2d9af0ad73e718fe387dc0df1984c83a962319f3..4c703438c091171df4bd673b6b732d07490e9cc5 100644 +index 76508bdb3331f8b33d1b7575e8500cef3fa7e8f4..e4ad454fed1d4f615621c7973598f8106f57b5ab 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -548,7 +548,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -547,7 +547,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; diff --git a/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch b/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch index 3d18db0b..a4ef2167 100644 --- a/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch +++ b/patches/server/0073-Elytra-aeronautics-no-chunk-load.patch @@ -58,10 +58,10 @@ index ab64a28775d3b5b57a103e2bedaf6af30e62bca7..c70597690364e044a0d4231eb2895cc5 !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 4c703438c091171df4bd673b6b732d07490e9cc5..9752b4205b5d3047b29fc7e98233f4f601826a57 100644 +index e4ad454fed1d4f615621c7973598f8106f57b5ab..c555922aaf678261fa67403194b3df08ab390e15 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1069,7 +1069,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1068,7 +1068,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } } @@ -76,7 +76,7 @@ index 4c703438c091171df4bd673b6b732d07490e9cc5..9752b4205b5d3047b29fc7e98233f4f6 this.level().getProfiler().push("move"); if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); -@@ -2008,6 +2014,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2003,6 +2009,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.yo = y; this.zo = d4; this.setPos(d3, y, d4); diff --git a/patches/server/0074-Fix-Paper-9372.patch b/patches/server/0074-Fix-Paper-9372.patch index e42a23e5..aef12442 100644 --- a/patches/server/0074-Fix-Paper-9372.patch +++ b/patches/server/0074-Fix-Paper-9372.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix Paper#9372 This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish) diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b60f13f552b5bccf01e1c9e0bfc1e82013ad31a9..700613bf12bb1b1c23bc33f335edb553edb2c630 100644 +index 08851bf5f7aa89b18f347bfc6e7f3d40b59a99e3..40cd9577157ff1c3eb7a018c5803c6b49701065d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1262,6 +1262,7 @@ public class ServerPlayer extends Player { +@@ -1263,6 +1263,7 @@ public class ServerPlayer extends Player { this.setServerLevel(worldserver); this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); @@ -17,7 +17,7 @@ index b60f13f552b5bccf01e1c9e0bfc1e82013ad31a9..700613bf12bb1b1c23bc33f335edb553 worldserver.addDuringPortalTeleport(this); worldserver1.getProfiler().pop(); this.triggerDimensionChangeTriggers(worldserver1); -@@ -2075,6 +2076,7 @@ public class ServerPlayer extends Player { +@@ -2076,6 +2077,7 @@ public class ServerPlayer extends Player { public void moveTo(double x, double y, double z) { super.moveTo(x, y, z); this.connection.resetPosition(); @@ -25,7 +25,7 @@ index b60f13f552b5bccf01e1c9e0bfc1e82013ad31a9..700613bf12bb1b1c23bc33f335edb553 } @Override -@@ -2321,6 +2323,7 @@ public class ServerPlayer extends Player { +@@ -2322,6 +2324,7 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundSetCameraPacket(this.camera)); this.connection.resetPosition(); @@ -33,7 +33,7 @@ index b60f13f552b5bccf01e1c9e0bfc1e82013ad31a9..700613bf12bb1b1c23bc33f335edb553 } } -@@ -2760,6 +2763,7 @@ public class ServerPlayer extends Player { +@@ -2761,6 +2764,7 @@ public class ServerPlayer extends Player { public void forceSetPositionRotation(double x, double y, double z, float yaw, float pitch) { this.moveTo(x, y, z, yaw, pitch); this.connection.resetPosition(); diff --git a/patches/server/0079-Container-open-passthrough.patch b/patches/server/0079-Container-open-passthrough.patch index 05d7beb3..842a10cc 100644 --- a/patches/server/0079-Container-open-passthrough.patch +++ b/patches/server/0079-Container-open-passthrough.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Container open passthrough diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index ade170b4c76ad4a36eb2fba831d438642c096205..872f50bdf238ff6cf3d327b3858323a84fcb777d 100644 +index a09f6a2f9fdbe8361f67b543f3b337789897b982..fa9670bec73398225f670f64dc96ce9ee17443a9 100644 --- a/src/main/java/net/minecraft/world/level/block/SignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java @@ -117,6 +117,25 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo diff --git a/patches/server/0082-SIMD-support.patch b/patches/server/0082-SIMD-support.patch index adf49da0..202e82e7 100644 --- a/patches/server/0082-SIMD-support.patch +++ b/patches/server/0082-SIMD-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] SIMD support diff --git a/build.gradle.kts b/build.gradle.kts -index 9dd0f8b3e4042bdd3adcb2ec59fdbe9629d0915f..eb7f6bda9fb38dd100d24fb92fce77b93974d874 100644 +index 257520120913ab39d57ac0e79ae6381fbda0011b..7c020e9ff53d05af5512ac65f3a3f1c3da6fe2a8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -83,6 +83,7 @@ tasks.withType { diff --git a/patches/server/0093-Reduce-array-allocations.patch b/patches/server/0093-Reduce-array-allocations.patch index 9be16d07..6d3c5190 100644 --- a/patches/server/0093-Reduce-array-allocations.patch +++ b/patches/server/0093-Reduce-array-allocations.patch @@ -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 f265b3b3736de5ff3bc1b52146d11f92033730a5..50c73aaf95df8cb993994c59d1d4ecdd97951772 100644 +index c6f773afc39e7c97d13d1977a7609fc46714709d..9cdf39bef3112ac0a522c8bc8cb1b2b5171272ea 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; diff --git a/patches/server/0094-Optimize-sun-burn-tick.patch b/patches/server/0094-Optimize-sun-burn-tick.patch index 747512a1..8e2686cf 100644 --- a/patches/server/0094-Optimize-sun-burn-tick.patch +++ b/patches/server/0094-Optimize-sun-burn-tick.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize sun burn tick 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 9752b4205b5d3047b29fc7e98233f4f601826a57..3d450dd637502941fb0a0be9aa64f09bf14eef0a 100644 +index c555922aaf678261fa67403194b3df08ab390e15..595fd0bd92714b262db500dfafa6b651be8a19cd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1994,8 +1994,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1989,8 +1989,22 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S /** @deprecated */ @Deprecated public float getLightLevelDependentMagicValue() { diff --git a/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch index 3609083a..68dab78a 100644 --- a/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0101-Skip-entity-move-if-movement-is-zero.patch @@ -6,7 +6,7 @@ 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 3d450dd637502941fb0a0be9aa64f09bf14eef0a..98570eb6c9c42bba4daf32d447c29650cfcd4de7 100644 +index 595fd0bd92714b262db500dfafa6b651be8a19cd..30b49bdf47145e7ca87cd31a67a5aef4f46162fd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -315,6 +315,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -17,7 +17,7 @@ index 3d450dd637502941fb0a0be9aa64f09bf14eef0a..98570eb6c9c42bba4daf32d447c29650 public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1047,6 +1048,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1046,6 +1047,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end - detailed watchdog information public void move(MoverType movementType, Vec3 movement) { @@ -31,7 +31,7 @@ index 3d450dd637502941fb0a0be9aa64f09bf14eef0a..98570eb6c9c42bba4daf32d447c29650 // Paper start - detailed watchdog information io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); synchronized (this.posLock) { -@@ -4085,6 +4093,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4080,6 +4088,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch b/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch index 89f01ab2..4464e9bd 100644 --- a/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch +++ b/patches/server/0103-Skip-negligible-planar-movement-multiplication.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Skip negligible planar movement multiplication 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 98570eb6c9c42bba4daf32d447c29650cfcd4de7..295f16965ef33c6369303b3c9a19be047223afaa 100644 +index 30b49bdf47145e7ca87cd31a67a5aef4f46162fd..ee531617b44988cd8b65b4dc5618aac43076330c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1218,9 +1218,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1217,9 +1217,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.tryCheckInsideBlocks(); diff --git a/patches/server/0109-Force-peaceful-mode-switch.patch b/patches/server/0109-Force-peaceful-mode-switch.patch index 24991d93..10f97c0c 100644 --- a/patches/server/0109-Force-peaceful-mode-switch.patch +++ b/patches/server/0109-Force-peaceful-mode-switch.patch @@ -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 8a3e55b3a79a174a2a55f38d39ed4b8ba29b8763..d1a32a9e5267c27d1983abfb4812a6063964291f 100644 +index c4577d7dc27bb48c95794212de4abf2e31458380..dc4b71023e43757ef0dad9d8b850afd304308ad9 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,10 +21,12 @@ index 8a3e55b3a79a174a2a55f38d39ed4b8ba29b8763..d1a32a9e5267c27d1983abfb4812a606 private static int getChunkCacheKey(int x, int z) { return x & 3 | ((z & 3) << 2); } -@@ -510,6 +516,21 @@ public class ServerChunkCache extends ChunkSource { +@@ -509,7 +515,21 @@ public class ServerChunkCache extends ChunkSource { + } // Leaves end - reset ice & snow tick random gameprofilerfiller.push("filteringLoadedChunks"); - +- // Paper - optimise chunk tick iteration ++ + // Leaves start - peaceful mode switch + if (peacefulModeSwitchTick > 0) { + if (this.level.getLevelData().getGameTime() % peacefulModeSwitchTick == 0) { @@ -39,11 +41,10 @@ index 8a3e55b3a79a174a2a55f38d39ed4b8ba29b8763..d1a32a9e5267c27d1983abfb4812a606 + peacefulModeSwitchCount = -1; + } + // Leaves end - peaceful mode switch -+ - // Paper start - optimise chunk tick iteration - ChunkMap playerChunkMap = this.chunkMap; - for (ServerPlayer player : this.level.players) { -@@ -628,10 +649,20 @@ public class ServerChunkCache extends ChunkSource { + + // Paper - optimise chunk tick iteration + +@@ -597,10 +617,20 @@ public class ServerChunkCache extends ChunkSource { } Util.shuffle(shuffled, this.level.random); chunkIterator = shuffled.iterator(); @@ -64,10 +65,10 @@ index 8a3e55b3a79a174a2a55f38d39ed4b8ba29b8763..d1a32a9e5267c27d1983abfb4812a606 + try { + // Paper end - optimise chunk tick iteration + while (chunkIterator.hasNext()) { - LevelChunk chunk1 = chunkIterator.next(); // Paper - optimise chunk tick iteration + LevelChunk chunk1 = chunkIterator.next(); + // Paper end - optimise chunk tick iteration ChunkPos chunkcoordintpair = chunk1.getPos(); - -@@ -662,7 +693,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -631,7 +661,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 diff --git a/patches/server/0111-Replay-Mod-API.patch b/patches/server/0111-Replay-Mod-API.patch index 3b11157b..595e3609 100644 --- a/patches/server/0111-Replay-Mod-API.patch +++ b/patches/server/0111-Replay-Mod-API.patch @@ -334,10 +334,10 @@ index cd962621ee0d8bd17926a90ce960c46f1ae5a8dd..2a2262a9f0ead7a9b477cf7a75905b8d 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 a36b234f884e2aae88a29fae872aeef662b27712..43e4c9fe0243f29d66b0255306b02e07f886d8c6 100644 +index 9782a52dbbad0f1c4baaf3651790b19619def28f..824adc860bd01b30e1669bb1635a1da0ef8996a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -266,6 +266,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; +@@ -260,6 +260,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; import net.md_5.bungee.api.chat.BaseComponent; // Spigot import top.leavesmc.leaves.entity.CraftBotManager; @@ -345,7 +345,7 @@ index a36b234f884e2aae88a29fae872aeef662b27712..43e4c9fe0243f29d66b0255306b02e07 import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper -@@ -312,6 +313,7 @@ public final class CraftServer implements Server { +@@ -307,6 +308,7 @@ public final class CraftServer implements Server { private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper private final CraftBotManager botManager = new CraftBotManager(); @@ -353,7 +353,7 @@ index a36b234f884e2aae88a29fae872aeef662b27712..43e4c9fe0243f29d66b0255306b02e07 // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -393,7 +395,7 @@ public final class CraftServer implements Server { +@@ -388,7 +390,7 @@ public final class CraftServer implements Server { public CraftServer(DedicatedServer console, PlayerList playerList) { this.console = console; this.playerList = (DedicatedPlayerList) playerList; @@ -362,7 +362,7 @@ index a36b234f884e2aae88a29fae872aeef662b27712..43e4c9fe0243f29d66b0255306b02e07 @Override public CraftPlayer apply(ServerPlayer player) { return player.getBukkitEntity(); -@@ -3250,4 +3252,11 @@ public final class CraftServer implements Server { +@@ -3251,4 +3253,11 @@ public final class CraftServer implements Server { return botManager; } // Leaves end - Bot API @@ -375,10 +375,10 @@ index a36b234f884e2aae88a29fae872aeef662b27712..43e4c9fe0243f29d66b0255306b02e07 + // 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 801ee163a71ab2afd822c7f17bf45573c0fd83f5..8598a20fa2a2a81ccbf2099f52c15103f91d53d0 100644 +index 418f16debd40e7588c8cfea2876a9688ceb11730..a7215be2bdafaa35c3553eb5a94f0f4fc3ea9047 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -203,6 +203,8 @@ import top.leavesmc.leaves.bot.ServerBot; +@@ -58,6 +58,8 @@ import top.leavesmc.leaves.bot.ServerBot; import top.leavesmc.leaves.entity.CraftBot; import net.md_5.bungee.api.chat.BaseComponent; // Spigot @@ -387,14 +387,14 @@ index 801ee163a71ab2afd822c7f17bf45573c0fd83f5..8598a20fa2a2a81ccbf2099f52c15103 public abstract class CraftEntity implements org.bukkit.entity.Entity { private static PermissibleBase perm; -@@ -241,6 +243,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { - // Leaves start - add CraftBot - if (entity instanceof ServerPlayer) { - if (entity instanceof ServerBot) { return new CraftBot(server, (ServerBot) entity); } -+ if (entity instanceof ServerPhotographer) { return new CraftPhotographer(server, (ServerPhotographer) entity); } - else { return new CraftPlayer(server, (ServerPlayer) entity); } - } - // Leaves end - add CraftBot +@@ -94,6 +96,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + } + + if (entity instanceof ServerBot) { return new CraftBot(server, (ServerBot) entity); } ++ if (entity instanceof ServerPhotographer) { return new CraftPhotographer(server, (ServerPhotographer) entity); } + + // Special case complex part, since there is no extra entity type for them + if (entity instanceof EnderDragonPart complexPart) { diff --git a/src/main/java/top/leavesmc/leaves/entity/CraftPhotographer.java b/src/main/java/top/leavesmc/leaves/entity/CraftPhotographer.java new file mode 100644 index 0000000000000000000000000000000000000000..65fd6fd9e6af4e43268f1f1507a37e1bd95d41b8 diff --git a/patches/server/0118-Spider-jockeys-drop-gapples.patch b/patches/server/0118-Spider-jockeys-drop-gapples.patch index 2ea848e6..2f775484 100644 --- a/patches/server/0118-Spider-jockeys-drop-gapples.patch +++ b/patches/server/0118-Spider-jockeys-drop-gapples.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spider jockeys drop gapples diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 6f12e342adf1a008709fd9a4fbbbe1da8ec31b83..aaac1df6a29b64446f964285b5e825bc145017b0 100644 +index 9063f66b0497a3eb3893e307e685be692cc5c128..02b5bac9fd1687278e77a5a644b6b1ead33fc6ef 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -154,6 +154,18 @@ public class Spider extends Monster {