From 1343a050856ad152246b90ebd2bb6fa673feadd4 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 21 May 2021 17:25:06 -0500 Subject: [PATCH] Updated Upstream (Paper, Tuinity, & Airplane) Upstream has released updates that appear to apply and compile correctly Paper Changes: f3e541ca1 Actually list all missing hard depends (#5701) 11f83fe8e [CI-SKIP] [Auto] Rebuild Patches a36e5d65f MC-148809: Fix incorrect structure block data length Tuinity Changes: f0e91a4ae Update Upstream (Paper) Airplane Changes: 50babee71 Update Upstream (Tuinity) 85e0c63f5 Revert "Allow plugins to stupidly replace server internals" db3fe2c70 Remove auto import 6b32e01eb Allow plugins to stupidly replace server internals f849f00fc Flare update ac10e43a9 Flare update --- Paper | 2 +- patches/api/0002-Airplane-API-Changes.patch | 11 ++--- .../server/0001-Tuinity-Server-Changes.patch | 42 ++++++++----------- .../server/0002-Airplane-Server-Changes.patch | 19 ++++----- patches/server/0004-Purpur-config-files.patch | 6 +-- .../0080-Add-phantom-spawning-options.patch | 4 +- ...-Add-allow-water-in-end-world-option.patch | 4 +- patches/server/0103-Ridables.patch | 4 +- ...ggling-special-MobSpawners-per-world.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 8 ++-- 10 files changed, 47 insertions(+), 57 deletions(-) diff --git a/Paper b/Paper index 3dcbdc73b..f3e541ca1 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 3dcbdc73bd7b5cc15806da319c0bdec2d6c968d7 +Subproject commit f3e541ca1be95f48a82ccf09a1f843edba4deddb diff --git a/patches/api/0002-Airplane-API-Changes.patch b/patches/api/0002-Airplane-API-Changes.patch index 289819c06..7052870a4 100644 --- a/patches/api/0002-Airplane-API-Changes.patch +++ b/patches/api/0002-Airplane-API-Changes.patch @@ -626,17 +626,14 @@ copy of the Program in return for a fee. END OF TERMS AND CONDITIONS diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 81da90531cc3a7ab13d455860f89411081825949..bccd68dd74fd5152d8c4feacb0e5d4409199de5d 100644 +index 81da90531cc3a7ab13d455860f89411081825949..a20d3ae5cc09732e79fa10f9df76b221aa7eab2d 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -@@ -153,8 +153,8 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot +@@ -153,6 +153,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot throw new ClassNotFoundException(name); } -- @Override -- protected Class findClass(String name) throws ClassNotFoundException { + public Class _airplane_findClass(@NotNull String name) throws ClassNotFoundException { return this.classes.get(name); } // Airplane -+ @Override protected Class findClass(String name) throws ClassNotFoundException { + @Override + protected Class findClass(String name) throws ClassNotFoundException { if (name.startsWith("org.bukkit.") || name.startsWith("net.minecraft.")) { - throw new ClassNotFoundException(name); - } diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index 5917dff0a..d4c847a97 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -17251,7 +17251,7 @@ index 03584572fa5bf0d96fc4cecece573547f9c94cea..8bc965a3b3d0d4140c6b94636f0b33b2 } diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9def540caf 100644 +index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..cb8064df7e9f1b8b4d4292486e2193680d83663c 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java @@ -154,6 +154,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -17263,10 +17263,10 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPosition lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -190,10 +192,70 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -189,11 +191,69 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + }); } // Paper end - fix and optimise world upgrading - + // Tuinity start - optimise checkDespawn + public final List getNearbyPlayers(@Nullable Entity source, double sourceX, double sourceY, double sourceZ, double maxRange, @Nullable Predicate predicate) { + Chunk chunk; @@ -17323,9 +17323,8 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d + public @Nullable EntityHuman a(double d0, double d1, double d2, double d3, @Nullable Predicate predicate) { + return this.getNearestPlayer(null, d0, d1, d2, d3, predicate); + } -+ + // Tuinity end - optimise checkDespawn -+ + protected World(WorldDataMutable worlddatamutable, ResourceKey resourcekey, final DimensionManager dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName()); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName(), this.spigotConfig); // Paper @@ -17334,7 +17333,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d this.generator = gen; this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit -@@ -355,6 +417,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -355,6 +415,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @Override public final Chunk getChunkAt(int i, int j) { // Paper - final to help inline @@ -17350,7 +17349,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d return (Chunk) this.getChunkAt(i, j, ChunkStatus.FULL, true); // Paper - avoid a method jump } -@@ -429,6 +500,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -429,6 +498,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @Override public boolean a(BlockPosition blockposition, IBlockData iblockdata, int i, int j) { @@ -17358,7 +17357,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d // CraftBukkit start - tree generation if (this.captureTreeGeneration) { // Paper start -@@ -530,6 +602,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -530,6 +600,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { // CraftBukkit start - Split off from above in order to directly send client and physic updates public void notifyAndUpdatePhysics(BlockPosition blockposition, Chunk chunk, IBlockData oldBlock, IBlockData newBlock, IBlockData actualBlock, int i, int j) { @@ -17366,7 +17365,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d IBlockData iblockdata = newBlock; IBlockData iblockdata1 = oldBlock; IBlockData iblockdata2 = actualBlock; -@@ -542,7 +615,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -542,7 +613,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.notify(blockposition, iblockdata1, iblockdata, i); // Paper start - per player view distance - allow block updates for non-ticking chunks in player view distance // if copied from above @@ -17375,7 +17374,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d ((WorldServer)this).getChunkProvider().flagDirty(blockposition); // Paper end - per player view distance } -@@ -964,6 +1037,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -964,6 +1035,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return; // Paper end } @@ -17383,7 +17382,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d } // Paper start - Prevent armor stands from doing entity lookups @Override -@@ -1147,10 +1221,44 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1147,10 +1219,44 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return this.getChunkAt(i, j, ChunkStatus.FULL, false); } @@ -17429,7 +17428,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d int i = MathHelper.floor((axisalignedbb.minX - 2.0D) / 16.0D); int j = MathHelper.floor((axisalignedbb.maxX + 2.0D) / 16.0D); int k = MathHelper.floor((axisalignedbb.minZ - 2.0D) / 16.0D); -@@ -1206,7 +1314,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1206,7 +1312,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper if (chunk != null) { @@ -17438,7 +17437,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d } } } -@@ -1229,7 +1337,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1229,7 +1335,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { Chunk chunk = (Chunk)this.getChunkIfLoadedImmediately(i1, j1); // Paper if (chunk != null) { @@ -17447,7 +17446,7 @@ index f7f593a9e58b537109fa6ca1c783f6614f4bfad5..276b1f0c9c9af7db31fba9be0593ae9d } } } -@@ -1237,6 +1345,106 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1237,6 +1343,106 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return list; } @@ -19635,10 +19634,10 @@ index c96eac4b0b519b2807153fa5a8ebf5a020a2b140..b5c8d9b17c2d5e229db5b48448709194 int j = 0; diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java -index 74d826853389b8e01ffe2b076cf2b179d29da216..71db36d61a02a104449f8634b2737928874190f6 100644 +index 74d826853389b8e01ffe2b076cf2b179d29da216..6ef54d8929814172427cb0dba5dc7711f6be69d1 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java -@@ -22,13 +22,19 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final +@@ -22,8 +22,15 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final public final Long2ObjectLinkedOpenHashMap cache = new Long2ObjectLinkedOpenHashMap(); private final File b; private final boolean c; @@ -19654,12 +19653,7 @@ index 74d826853389b8e01ffe2b076cf2b179d29da216..71db36d61a02a104449f8634b2737928 this.b = file; this.c = flag; } - -- - // Paper start - public static ChunkCoordIntPair getRegionFileCoordinates(File file) { - String fileName = file.getName(); -@@ -83,9 +89,9 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final +@@ -83,9 +90,9 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final this.b.mkdirs(); } @@ -19671,7 +19665,7 @@ index 74d826853389b8e01ffe2b076cf2b179d29da216..71db36d61a02a104449f8634b2737928 this.cache.putAndMoveToFirst(i, regionfile1); // Paper start -@@ -174,6 +180,13 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final +@@ -174,6 +181,13 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final return null; } // CraftBukkit end @@ -19685,7 +19679,7 @@ index 74d826853389b8e01ffe2b076cf2b179d29da216..71db36d61a02a104449f8634b2737928 try { // Paper DataInputStream datainputstream = regionfile.a(chunkcoordintpair); // Paper start -@@ -189,6 +202,17 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final +@@ -189,6 +203,17 @@ public class RegionFileCache implements AutoCloseable { // Paper - no final try { if (datainputstream != null) { nbttagcompound = NBTCompressedStreamTools.a((DataInput) datainputstream); diff --git a/patches/server/0002-Airplane-Server-Changes.patch b/patches/server/0002-Airplane-Server-Changes.patch index 9b50625e2..d22e4f7b1 100644 --- a/patches/server/0002-Airplane-Server-Changes.patch +++ b/patches/server/0002-Airplane-Server-Changes.patch @@ -3122,19 +3122,18 @@ index 43418273f00f3703c7bd86586847d469af92c18f..d11e79093f9a5121c98b7da840bc79d2 // Paper end } diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index 276b1f0c9c9af7db31fba9be0593ae9def540caf..15c4319920246d53be791cc3b4a4705c717a75c5 100644 +index cb8064df7e9f1b8b4d4292486e2193680d83663c..d1591f8d0b45126acef5d24ddb41d76293f5b42d 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -18,6 +18,8 @@ import java.util.function.Consumer; +@@ -18,6 +18,7 @@ import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.Supplier; import javax.annotation.Nullable; + -+import gg.airplane.AirplaneConfig; import net.minecraft.CrashReport; import net.minecraft.CrashReportSystemDetails; import net.minecraft.ReportedException; -@@ -69,6 +71,8 @@ import net.minecraft.world.level.saveddata.maps.WorldMap; +@@ -69,6 +70,8 @@ import net.minecraft.world.level.saveddata.maps.WorldMap; import net.minecraft.world.level.storage.WorldData; import net.minecraft.world.level.storage.WorldDataMutable; import net.minecraft.world.phys.AxisAlignedBB; @@ -3143,7 +3142,7 @@ index 276b1f0c9c9af7db31fba9be0593ae9def540caf..15c4319920246d53be791cc3b4a4705c import net.minecraft.world.phys.shapes.OperatorBoolean; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShapeCollision; -@@ -104,7 +108,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -104,7 +107,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { //public final List tileEntityList = Lists.newArrayList(); // Paper - remove unused list public final List tileEntityListTick = Lists.newArrayList(); protected final List tileEntityListPending = Lists.newArrayList(); @@ -3152,7 +3151,7 @@ index 276b1f0c9c9af7db31fba9be0593ae9def540caf..15c4319920246d53be791cc3b4a4705c public final Thread serverThread; private final boolean debugWorld; private int d; -@@ -387,6 +391,91 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -385,6 +388,91 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return null; } @@ -3244,7 +3243,7 @@ index 276b1f0c9c9af7db31fba9be0593ae9def540caf..15c4319920246d53be791cc3b4a4705c public static boolean isValidLocation(BlockPosition blockposition) { return blockposition.isValidLocation(); // Paper - use better/optimized check } -@@ -908,12 +997,17 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -906,12 +994,17 @@ public abstract class World implements GeneratorAccess, AutoCloseable { gameprofilerfiller.enter("blockEntities"); timings.tileEntityTick.startTiming(); // Spigot if (!this.tileEntityListUnload.isEmpty()) { @@ -3262,7 +3261,7 @@ index 276b1f0c9c9af7db31fba9be0593ae9def540caf..15c4319920246d53be791cc3b4a4705c this.tileEntityListUnload.clear(); } -@@ -1025,19 +1119,19 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1023,19 +1116,19 @@ public abstract class World implements GeneratorAccess, AutoCloseable { public void a(Consumer consumer, Entity entity) { try { @@ -3285,11 +3284,11 @@ index 276b1f0c9c9af7db31fba9be0593ae9def540caf..15c4319920246d53be791cc3b4a4705c } // Paper start - Prevent armor stands from doing entity lookups @Override -@@ -1723,6 +1817,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1721,6 +1814,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } public GameProfilerFiller getMethodProfiler() { -+ if (AirplaneConfig.disableMethodProfiler) return net.minecraft.util.profiling.GameProfilerDisabled.a; // Airplane ++ if (gg.airplane.AirplaneConfig.disableMethodProfiler) return net.minecraft.util.profiling.GameProfilerDisabled.a; // Airplane return (GameProfilerFiller) this.methodProfiler.get(); } diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 41e21e777..46f12520e 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -65,10 +65,10 @@ index 3e63ea5ae2d31a502fa639806a926cd1ab8b6796..cbccb889167f8e235f417e224bbf5f02 io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index 15c4319920246d53be791cc3b4a4705c717a75c5..18c8c1e5064b8704236b4a75abc2f995e0f8c6d7 100644 +index d1591f8d0b45126acef5d24ddb41d76293f5b42d..b67914145517bd027f297cc4358d287b6899919f 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -159,6 +159,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -158,6 +158,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { public final ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final com.tuinity.tuinity.config.TuinityConfig.WorldConfig tuinityConfig; // Tuinity - Server Config @@ -76,7 +76,7 @@ index 15c4319920246d53be791cc3b4a4705c717a75c5..18c8c1e5064b8704236b4a75abc2f995 public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPosition lastPhysicsProblem; // Spigot -@@ -260,6 +261,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -257,6 +258,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName(), this.spigotConfig); // Paper this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((net.minecraft.world.level.storage.WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config diff --git a/patches/server/0080-Add-phantom-spawning-options.patch b/patches/server/0080-Add-phantom-spawning-options.patch index c61045092..403f57275 100644 --- a/patches/server/0080-Add-phantom-spawning-options.patch +++ b/patches/server/0080-Add-phantom-spawning-options.patch @@ -61,10 +61,10 @@ index d98526785ff2fa3b72e8ffffcb89a57a2203a5c8..7859d84471436b427138593776ebd30a return iblockdata.r(iblockaccess, blockposition) ? false : (iblockdata.isPowerSource() ? false : (!fluid.isEmpty() ? false : (iblockdata.a((Tag) TagsBlock.PREVENT_MOB_SPAWNING_INSIDE) ? false : !entitytypes.a(iblockdata)))); } diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index 18c8c1e5064b8704236b4a75abc2f995e0f8c6d7..adfb33278901677a5f63452813e284baebdaa7f3 100644 +index b67914145517bd027f297cc4358d287b6899919f..fc5e2263d05661672b3295da46d7e7495c5b40b6 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -1760,6 +1760,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1757,6 +1757,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return new DifficultyDamageScaler(this.getDifficulty(), this.getDayTime(), i, f); } diff --git a/patches/server/0083-Add-allow-water-in-end-world-option.patch b/patches/server/0083-Add-allow-water-in-end-world-option.patch index e1790359d..63647813a 100644 --- a/patches/server/0083-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0083-Add-allow-water-in-end-world-option.patch @@ -27,10 +27,10 @@ index d126f668828e0788e369294c0b376ef52b344f2c..154a76b1b77a97bdf65153250c41275f return true; diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index adfb33278901677a5f63452813e284baebdaa7f3..66dadc03972020810e7b4c76188f536cad8149cf 100644 +index fc5e2263d05661672b3295da46d7e7495c5b40b6..8382d0f3158da3c90bba082e62411998632c3644 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -1836,4 +1836,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1833,4 +1833,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable { public final boolean isDebugWorld() { return this.debugWorld; } diff --git a/patches/server/0103-Ridables.patch b/patches/server/0103-Ridables.patch index 9f3e89123..56b72b35c 100644 --- a/patches/server/0103-Ridables.patch +++ b/patches/server/0103-Ridables.patch @@ -5590,10 +5590,10 @@ index 96efd974f1eb9c1e7c70e576e51ed69e15aacb99..fc86ef53c48503139667f7703019a07c default int getHeight() { diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index 66dadc03972020810e7b4c76188f536cad8149cf..0488b69f7b0bd4bf7d23488b7df615f515fa5d0b 100644 +index 8382d0f3158da3c90bba082e62411998632c3644..0167222759972d1221284bb6eb0de6779c3b9a95 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -1845,5 +1845,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1842,5 +1842,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable { public boolean isTheEnd() { return getWorld().getEnvironment() == org.bukkit.World.Environment.THE_END; } diff --git a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch index 1fd28e49c..cb13d58ef 100644 --- a/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0109-Allow-toggling-special-MobSpawners-per-world.patch @@ -93,10 +93,10 @@ index 7c8a2151be8a0f48cba1c15d231d5dbdb500b4d6..361771fc4fcf16b1b013c55073401953 if (SpawnerCreature.a(EntityPositionTypes.Surface.ON_GROUND, iworldreader, blockposition2, EntityTypes.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index 0488b69f7b0bd4bf7d23488b7df615f515fa5d0b..a318c37d1b855739441119bcccbeb05722205b82 100644 +index 0167222759972d1221284bb6eb0de6779c3b9a95..edc6e9ea7f6b4fcdab004188e4c6a6e4763a6196 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -261,7 +261,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -258,7 +258,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName(), this.spigotConfig); // Paper this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((net.minecraft.world.level.storage.WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config diff --git a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch index f6e7ebe19..c4b672975 100644 --- a/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0124-Add-adjustable-breeding-cooldown-to-config.patch @@ -33,10 +33,10 @@ index 4de0a733819d408e8b9a55b604f455281d7732c5..94b5874c1eb90c02a557179a2a1170b1 entityageable.setBaby(true); entityageable.setPositionRotation(this.locX(), this.locY(), this.locZ(), 0.0F, 0.0F); diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index a318c37d1b855739441119bcccbeb05722205b82..b8b22d4fbd8c2620d47c3de8d5bccdfc6c9ec63b 100644 +index edc6e9ea7f6b4fcdab004188e4c6a6e4763a6196..2108ba779bbe4d3a060c494f54909952f659ddea 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java -@@ -43,6 +43,7 @@ import net.minecraft.world.DifficultyDamageScaler; +@@ -42,6 +42,7 @@ import net.minecraft.world.DifficultyDamageScaler; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityTypes; @@ -44,7 +44,7 @@ index a318c37d1b855739441119bcccbeb05722205b82..b8b22d4fbd8c2620d47c3de8d5bccdfc import net.minecraft.world.entity.decoration.EntityArmorStand; import net.minecraft.world.entity.player.EntityHuman; import net.minecraft.world.item.ItemStack; -@@ -168,6 +169,48 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -167,6 +168,48 @@ public abstract class World implements GeneratorAccess, AutoCloseable { private int tileTickPosition; public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here @@ -93,7 +93,7 @@ index a318c37d1b855739441119bcccbeb05722205b82..b8b22d4fbd8c2620d47c3de8d5bccdfc public CraftWorld getWorld() { return this.world; -@@ -262,6 +305,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -259,6 +302,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((net.minecraft.world.level.storage.WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config this.purpurConfig = new net.pl3x.purpur.PurpurWorldConfig((((net.minecraft.world.level.storage.WorldDataServer)worlddatamutable).getName()), env); // Purpur