diff --git a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch index 1af9288754..d2889e126c 100644 --- a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch +++ b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch @@ -1,4 +1,4 @@ -From 207bb124c37c659b47420cfbd7e924e5e3149e55 Mon Sep 17 00:00:00 2001 +From cabe477c5c143734d6b8242e4ab82203ca85a2b6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Mar 2016 19:36:20 -0400 Subject: [PATCH] MC Dev fixes @@ -134,6 +134,28 @@ index 2dd27edc8..6def3616e 100644 })); CraftingManager.LOGGER.info("Loaded {} recipes", map1.size()); } +diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java +index f2c0e06ba..909d13c42 100644 +--- a/src/main/java/net/minecraft/server/EnderDragonBattle.java ++++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java +@@ -376,7 +376,7 @@ public class EnderDragonBattle { + + private void a(BlockPosition blockposition) { + this.d.triggerEffect(3000, blockposition, 0); +- WorldGenerator.END_GATEWAY.b((WorldGenFeatureConfiguration) WorldGenEndGatewayConfiguration.a()).a(this.d, this.d.getChunkProvider().getChunkGenerator(), new Random(), blockposition); ++ WorldGenerator.END_GATEWAY.b(WorldGenEndGatewayConfiguration.a()).a(this.d, this.d.getChunkProvider().getChunkGenerator(), new Random(), blockposition); // Paper - decompile fix + } + + private void a(boolean flag) { +@@ -388,7 +388,7 @@ public class EnderDragonBattle { + } + } + +- worldgenendtrophy.b((WorldGenFeatureConfiguration) WorldGenFeatureConfiguration.e).a(this.d, this.d.getChunkProvider().getChunkGenerator(), new Random(), this.o); ++ worldgenendtrophy.b(WorldGenFeatureConfiguration.e).a(this.d, this.d.getChunkProvider().getChunkGenerator(), new Random(), this.o); // Paper - decompile fix + } + + private EntityEnderDragon o() { diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java index 7d44348c7..73ecdd22e 100644 --- a/src/main/java/net/minecraft/server/EntityVindicator.java @@ -178,7 +200,7 @@ index 1f3ea23ae..b098d86e3 100644 } } diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java -index 3be9efd22..8d9b9af9b 100644 +index 3be9efd22..3a1ad2346 100644 --- a/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java @@ -281,12 +281,12 @@ public class IBlockData extends BlockDataAbstract implements @@ -204,7 +226,7 @@ index 3be9efd22..8d9b9af9b 100644 + this.f = new VoxelShape[a.length]; // Paper - decompile fix VoxelShape voxelshape = block.i(iblockdata, BlockAccessAir.INSTANCE, BlockPosition.ZERO); - EnumDirection[] aenumdirection = IBlockData.a.a; -+ EnumDirection[] aenumdirection = IBlockData.a.a; // Paper - decompile fix ++ EnumDirection[] aenumdirection = a; // Paper - decompile fix i = aenumdirection.length; @@ -359,6 +381,41 @@ index 829a7ae0a..8b9e47b4c 100644 default String asString() { return this.toString(); +diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java +index 22035b6c0..5406f4c40 100644 +--- a/src/main/java/net/minecraft/server/NBTTagList.java ++++ b/src/main/java/net/minecraft/server/NBTTagList.java +@@ -51,7 +51,7 @@ public class NBTTagList extends NBTList { + return "TAG_List"; + } + }; +- private static final ByteSet b = new ByteOpenHashSet(Arrays.asList(1, 2, 3, 4, 5, 6)); ++ private static final ByteSet b = new ByteOpenHashSet(Arrays.asList((byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 6)); // Paper - decompiler fix + private final List list; + private byte type; + +diff --git a/src/main/java/net/minecraft/server/NextTickListEntry.java b/src/main/java/net/minecraft/server/NextTickListEntry.java +index 8471920b8..e9c405fb5 100644 +--- a/src/main/java/net/minecraft/server/NextTickListEntry.java ++++ b/src/main/java/net/minecraft/server/NextTickListEntry.java +@@ -37,13 +37,13 @@ public class NextTickListEntry { + return this.a.hashCode(); + } + +- public static Comparator> a() { ++ public static Comparator a() { // Paper - decompile fix + return Comparator.comparingLong((nextticklistentry) -> { +- return nextticklistentry.b; ++ return ((NextTickListEntry) nextticklistentry).b; // Paper - decompile fix + }).thenComparing((nextticklistentry) -> { +- return nextticklistentry.c; ++ return ((NextTickListEntry) nextticklistentry).c; // Paper - decompile fix + }).thenComparingLong((nextticklistentry) -> { +- return nextticklistentry.f; ++ return ((NextTickListEntry) nextticklistentry).f; // Paper - decompile fix + }); + } + diff --git a/src/main/java/net/minecraft/server/RegionFileSection.java b/src/main/java/net/minecraft/server/RegionFileSection.java index 737afc7d7..db9f0196b 100644 --- a/src/main/java/net/minecraft/server/RegionFileSection.java @@ -565,5 +622,5 @@ index 55fe7625a..19e68a783 100644 t0.a(nbttagcompound.getCompound("data")); -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0004-MC-Utils.patch b/Spigot-Server-Patches/0004-MC-Utils.patch index 5721c30c32..bfeea8c107 100644 --- a/Spigot-Server-Patches/0004-MC-Utils.patch +++ b/Spigot-Server-Patches/0004-MC-Utils.patch @@ -1,4 +1,4 @@ -From d1c2226c691007cd5409244b74ed91ca98fb0231 Mon Sep 17 00:00:00 2001 +From 1e7b04123a676af53fc29813810da8778f3456f3 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 20:55:47 -0400 Subject: [PATCH] MC Utils @@ -117,33 +117,32 @@ index 55373cae0..cfffbd031 100644 public TileEntity a(BlockPosition blockposition, Chunk.EnumTileEntityState chunk_enumtileentitystate) { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/ChunkCache.java b/src/main/java/net/minecraft/server/ChunkCache.java -index 11c4d23ba..818872944 100644 +index 11c4d23ba..53c15c1c0 100644 --- a/src/main/java/net/minecraft/server/ChunkCache.java +++ b/src/main/java/net/minecraft/server/ChunkCache.java -@@ -71,6 +71,30 @@ public class ChunkCache implements IBlockAccess, ICollisionAccess { +@@ -8,7 +8,7 @@ public class ChunkCache implements IBlockAccess, ICollisionAccess { + protected final int b; + protected final IChunkAccess[][] c; + protected boolean d; +- protected final World e; ++ protected final World e; protected final World getWorld() { return e; } // Paper - OBFHELPER + + public ChunkCache(World world, BlockPosition blockposition, BlockPosition blockposition1) { + this.e = world; +@@ -71,6 +71,20 @@ public class ChunkCache implements IBlockAccess, ICollisionAccess { return this.a(i, j); } + // Paper start - if loaded util -+ @Nullable -+ @Override -+ public IChunkAccess getChunkIfLoadedImmediately(int x, int z) { -+ IChunkAccess chunk = this.getChunkAt(x, z, ChunkStatus.FULL, false); -+ if (chunk instanceof ChunkEmpty) { -+ return null; -+ } -+ return chunk; -+ } -+ + @Override + public Fluid getFluidIfLoaded(BlockPosition blockposition) { -+ IChunkAccess chunk = this.getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4); ++ IChunkAccess chunk = getWorld().getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4); + return chunk == null ? null : chunk.getFluid(blockposition); + } + + @Override + public IBlockData getTypeIfLoaded(BlockPosition blockposition) { -+ IChunkAccess chunk = this.getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4); ++ IChunkAccess chunk = getWorld().getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4); + return chunk == null ? null : chunk.getType(blockposition); + } + // Paper end @@ -1149,5 +1148,5 @@ index d8358a0f0..d0b813008 100644 + // Paper end } -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0066-Add-World-Util-Methods.patch b/Spigot-Server-Patches/0066-Add-World-Util-Methods.patch index 699093273f..7c63384959 100644 --- a/Spigot-Server-Patches/0066-Add-World-Util-Methods.patch +++ b/Spigot-Server-Patches/0066-Add-World-Util-Methods.patch @@ -1,10 +1,33 @@ -From c9cf346e450300465e7d6491d96007120a892e30 Mon Sep 17 00:00:00 2001 +From 538c2d1c4e8c4325641ea2577add8af9f8344c38 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 20:16:03 -0400 Subject: [PATCH] Add World Util Methods Methods that can be used for other patches to help improve logic. +diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java +index 5d8404f8a..adc2e8ff7 100644 +--- a/src/main/java/net/minecraft/server/World.java ++++ b/src/main/java/net/minecraft/server/World.java +@@ -235,6 +235,18 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + + return chunk == null ? null : chunk.getFluid(blockposition); + } ++ ++ public boolean isLoadedAndInBounds(BlockPosition blockposition) { ++ return getWorldBorder().isInBounds(blockposition) && getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4) != null; ++ } ++ public Chunk getChunkIfLoaded(BlockPosition blockposition) { ++ return getChunkIfLoaded(blockposition.getX() >> 4, blockposition.getZ() >> 4); ++ } ++ ++ // reduces need to do isLoaded before getType ++ public IBlockData getTypeIfLoadedAndInBounds(BlockPosition blockposition) { ++ return getWorldBorder().isInBounds(blockposition) ? getTypeIfLoaded(blockposition) : null; ++ } + // Paper end + + @Override diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java index 020e5c171..4ee13ac45 100644 --- a/src/main/java/net/minecraft/server/WorldBorder.java diff --git a/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index 9a2c7dc6ab..89df082033 100644 --- a/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -1,4 +1,4 @@ -From fa37dd8d51f347ec51960d3f30ec4dedea351dcf Mon Sep 17 00:00:00 2001 +From cf0c7060639d7bb09fdcf9f8597c734db294004e Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 19:55:45 -0400 Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener @@ -44,10 +44,10 @@ index 81d3a5262..25774fb73 100644 this.methodProfiler.a(() -> { return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager()); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 182376a0a..ead8d84be 100644 +index 0138b6bbe..1519e9e6b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -378,7 +378,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -390,7 +390,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { // CraftBukkit start iblockdata1.b(this, blockposition, j); // Don't call an event for the old block to limit event spam CraftWorld world = ((WorldServer) this).getWorld(); @@ -56,7 +56,7 @@ index 182376a0a..ead8d84be 100644 BlockPhysicsEvent event = new BlockPhysicsEvent(world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), CraftBlockData.fromData(iblockdata)); this.getServer().getPluginManager().callEvent(event); -@@ -490,7 +490,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -502,7 +502,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { try { // CraftBukkit start CraftWorld world = ((WorldServer) this).getWorld(); @@ -66,7 +66,7 @@ index 182376a0a..ead8d84be 100644 this.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 8307379e9..30c9cfa12 100644 +index 38bbb3ce2..70b8b41ea 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -74,6 +74,7 @@ public class WorldServer extends World { diff --git a/Spigot-Server-Patches/0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/Spigot-Server-Patches/0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch index c8d14fa7b3..f522f9167d 100644 --- a/Spigot-Server-Patches/0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch +++ b/Spigot-Server-Patches/0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch @@ -1,14 +1,14 @@ -From ec2f595808f9c9cbe442786652708d5b305f757f Mon Sep 17 00:00:00 2001 +From 54d988e5c406fb6f6cacac327c994b2d6132d0b9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 Apr 2016 17:48:50 -0400 Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c4d5907b5..57633955c 100644 +index 1519e9e6b..4870264c6 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -448,6 +448,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -460,6 +460,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { public void b(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {} public void applyPhysics(BlockPosition blockposition, Block block) { diff --git a/Spigot-Server-Patches/0087-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0087-Remove-unused-World-Tile-Entity-List.patch index cdbe341a74..f97a764703 100644 --- a/Spigot-Server-Patches/0087-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0087-Remove-unused-World-Tile-Entity-List.patch @@ -1,4 +1,4 @@ -From 35b17f41a0ade215d61bc938a17bc058386f812b Mon Sep 17 00:00:00 2001 +From 6251ee3823300c9286d5f21cab7ee79f64ba84a3 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 00:25:28 -0400 Subject: [PATCH] Remove unused World Tile Entity List @@ -6,7 +6,7 @@ Subject: [PATCH] Remove unused World Tile Entity List Massive hit to performance and it is completely unnecessary. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 57633955c..7d5f6e220 100644 +index 4870264c6..b2cc85834 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -40,7 +40,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -18,7 +18,7 @@ index 57633955c..7d5f6e220 100644 public final List tileEntityListTick = Lists.newArrayList(); protected final List tileEntityListPending = Lists.newArrayList(); protected final java.util.Set tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); -@@ -616,9 +616,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -628,9 +628,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { }, tileentity::getPosition}); } @@ -30,7 +30,7 @@ index 57633955c..7d5f6e220 100644 this.tileEntityListTick.add(tileentity); } -@@ -654,7 +654,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -666,7 +666,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { timings.tileEntityTick.startTiming(); // Spigot if (!this.tileEntityListUnload.isEmpty()) { this.tileEntityListTick.removeAll(this.tileEntityListUnload); @@ -39,7 +39,7 @@ index 57633955c..7d5f6e220 100644 this.tileEntityListUnload.clear(); } -@@ -715,7 +715,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -727,7 +727,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { tilesThisCycle--; this.tileEntityListTick.remove(tileTickPosition--); // Spigot end @@ -48,7 +48,7 @@ index 57633955c..7d5f6e220 100644 if (this.isLoaded(tileentity.getPosition())) { this.getChunkAtWorldCoords(tileentity.getPosition()).removeTileEntity(tileentity.getPosition()); } -@@ -745,7 +745,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -757,7 +757,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3); // CraftBukkit start // From above, don't screw this up - SPIGOT-1746 @@ -57,7 +57,7 @@ index 57633955c..7d5f6e220 100644 this.a(tileentity1); } // CraftBukkit end -@@ -1005,7 +1005,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1017,7 +1017,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } else { if (tileentity != null) { this.tileEntityListPending.remove(tileentity); @@ -89,5 +89,5 @@ index 5a813c93f..8b17fb4b4 100644 while (iterator.hasNext()) { TileEntity tileentity = (TileEntity) iterator.next(); -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch b/Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch index 0c8201fc64..d6e8b2051a 100644 --- a/Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch +++ b/Spigot-Server-Patches/0101-Optimize-UserCache-Thread-Safe.patch @@ -1,4 +1,4 @@ -From 025d5128eaa1e73d661b4545dc3e44ed1b49414c Mon Sep 17 00:00:00 2001 +From 01e45083672563157c8546ae0325ad38e8a9caa1 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 16 May 2016 20:47:41 -0400 Subject: [PATCH] Optimize UserCache / Thread Safe @@ -23,7 +23,7 @@ index 2a40bb0b8..38bf3ea44 100644 // Spigot end } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index 65659996c..566f3db39 100644 +index 65659996c..d32bec70d 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -43,8 +43,8 @@ public class UserCache { @@ -66,15 +66,7 @@ index 65659996c..566f3db39 100644 String s1 = s.toLowerCase(Locale.ROOT); UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.d.get(s1); -@@ -164,6 +165,7 @@ public class UserCache { - return usercache_usercacheentry == null ? null : usercache_usercacheentry.a(); - } - -+ @Nullable public GameProfile getProfile(UUID uuid) { return a(uuid); } // Paper - OBFHELPER - @Nullable - public GameProfile getProfile(UUID uuid) { - UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.e.get(uuid); -@@ -220,8 +222,15 @@ public class UserCache { +@@ -220,8 +221,15 @@ public class UserCache { } @@ -90,7 +82,7 @@ index 65659996c..566f3db39 100644 BufferedWriter bufferedwriter = null; try { -@@ -235,6 +244,14 @@ public class UserCache { +@@ -235,6 +243,14 @@ public class UserCache { } finally { IOUtils.closeQuietly(bufferedwriter); } @@ -106,5 +98,5 @@ index 65659996c..566f3db39 100644 } -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch index c559b2f1fa..ef25488110 100644 --- a/Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/0155-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From abd5f22ee2480d2a88bb8d450e212b6788ea857c Mon Sep 17 00:00:00 2001 +From eceb81a7db137272593422ec5de6c890ba92f9d4 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 15 Jan 2018 22:11:48 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -403,7 +403,7 @@ index 000000000..3aceb0ea8 + } +} diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index 1f6a12632..6d278a0da 100644 +index 2f10dab36..670f8313a 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -1,7 +1,10 @@ @@ -450,7 +450,7 @@ index 7df3ae0ec..1ddb10741 100644 return this.minecraftSessionService; } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index e8143eff4..10935bcf3 100644 +index 581199e6d..a072222bc 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -43,7 +43,7 @@ public class UserCache { @@ -473,10 +473,10 @@ index e8143eff4..10935bcf3 100644 + } + // Paper end + - @Nullable public GameProfile getProfile(UUID uuid) { return a(uuid); } // Paper - OBFHELPER @Nullable public GameProfile getProfile(UUID uuid) { -@@ -274,7 +281,7 @@ public class UserCache { + UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.e.get(uuid); +@@ -273,7 +280,7 @@ public class UserCache { class UserCacheEntry { @@ -525,5 +525,5 @@ index 202f6ad68..2f7769c00 100644 // Paper end } -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch index bff95a0ef4..f39e629a69 100644 --- a/Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch +++ b/Spigot-Server-Patches/0167-Fix-MC-117075-TE-Unload-Lag-Spike.patch @@ -1,14 +1,14 @@ -From cb98e4077354d4495e2a641196c2b4e4fee88bd9 Mon Sep 17 00:00:00 2001 +From 5a4f65aa640f16cfe63ad3d4a6fad3d5a01e583e Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 9 Aug 2017 17:51:22 -0500 Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 312e32f1b..8cbad8362 100644 +index ef5cec964..3cab54e77 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -654,7 +654,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -666,7 +666,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { gameprofilerfiller.enter("blockEntities"); timings.tileEntityTick.startTiming(); // Spigot if (!this.tileEntityListUnload.isEmpty()) { @@ -22,5 +22,5 @@ index 312e32f1b..8cbad8362 100644 this.tileEntityListUnload.clear(); } -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch index 0713ce78f3..31139f4221 100644 --- a/Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/Spigot-Server-Patches/0178-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -1,4 +1,4 @@ -From 23a78d79f6a374067ac84e4ac07d2160bf2e6614 Mon Sep 17 00:00:00 2001 +From 1d4f71098b09cba6d0e85447da13cd260f250be8 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 31 Oct 2017 03:26:18 +0100 Subject: [PATCH] Send attack SoundEffects only to players who can see the @@ -72,10 +72,10 @@ index 2d982ce1e..fd7de143e 100644 entity.extinguish(); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 8cbad8362..117939bb7 100644 +index 3cab54e77..989d4d8ca 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -591,6 +591,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -603,6 +603,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.playSound(entityhuman, (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, soundeffect, soundcategory, f, f1); } @@ -88,5 +88,5 @@ index 8cbad8362..117939bb7 100644 public abstract void playSound(@Nullable EntityHuman entityhuman, Entity entity, SoundEffect soundeffect, SoundCategory soundcategory, float f, float f1); -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch b/Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch index 873c05599a..b693bf5a51 100644 --- a/Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch +++ b/Spigot-Server-Patches/0182-use-CB-BlockState-implementations-for-captured-block.patch @@ -1,4 +1,4 @@ -From 576298272c0aa61f8fd7f23d99c98bec4b5b2730 Mon Sep 17 00:00:00 2001 +From 8577b822d9e3d4150092229e8e65bdbe83ef91ff Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 16 Nov 2017 12:12:41 +0000 Subject: [PATCH] use CB BlockState implementations for captured blocks @@ -18,10 +18,10 @@ the blockstate that will be valid for restoration, as opposed to dropping information on restoration when the event is cancelled. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 117939bb7..39b136935 100644 +index 989d4d8ca..e7b8a6920 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -282,7 +282,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -294,7 +294,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { // CraftBukkit start - capture blockstates CraftBlockState blockstate = null; if (this.captureBlockStates) { @@ -31,5 +31,5 @@ index 117939bb7..39b136935 100644 } // CraftBukkit end -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch b/Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch index 38dd716783..d6ba079117 100644 --- a/Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch +++ b/Spigot-Server-Patches/0205-Player.setPlayerProfile-API.patch @@ -1,4 +1,4 @@ -From 32e97804d1443bf400e5f0e28293bd5901044fd4 Mon Sep 17 00:00:00 2001 +From b8ef4a1e566f44104d288e456d79bdb4e33feb9b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 18 Mar 2018 12:29:48 -0400 Subject: [PATCH] Player.setPlayerProfile API @@ -48,7 +48,7 @@ index 0614976b8..a985ae7ba 100644 uniqueId = i.getId(); // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6bdee24f8..e786641cc 100644 +index 6bdee24f8..96b1eec91 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,6 +1,8 @@ @@ -123,7 +123,7 @@ index 6bdee24f8..e786641cc 100644 + reregisterPlayer(handle); + + //Respawn the player then update their position and selected slot -+ connection.sendPacket(new net.minecraft.server.PacketPlayOutRespawn(handle.dimension, handle.world.getWorldData().getType(), handle.playerInteractManager.getGameMode())); ++ connection.sendPacket(new net.minecraft.server.PacketPlayOutRespawn(handle.dimension, net.minecraft.server.WorldData.c(handle.world.getWorldData().getSeed()), handle.world.getWorldData().getType(), handle.playerInteractManager.getGameMode())); + handle.updateAbilities(); + connection.sendPacket(new net.minecraft.server.PacketPlayOutPosition(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch(), new HashSet<>(), 0)); + net.minecraft.server.MinecraftServer.getServer().getPlayerList().updateClient(handle); @@ -138,5 +138,5 @@ index 6bdee24f8..e786641cc 100644 public void removeDisconnectingPlayer(Player player) { hiddenPlayers.remove(player.getUniqueId()); -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0255-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/Spigot-Server-Patches/0255-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 1a1ec820e7..543506a45c 100644 --- a/Spigot-Server-Patches/0255-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/Spigot-Server-Patches/0255-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -1,4 +1,4 @@ -From 3cfc49d7c12d84ddb6f278657ecdd337d29844e1 Mon Sep 17 00:00:00 2001 +From 5608410605bce2f4b96dedc1289a4254b4416ca8 Mon Sep 17 00:00:00 2001 From: Hugo Manrique Date: Mon, 23 Jul 2018 12:57:39 +0200 Subject: [PATCH] Option to prevent armor stands from doing entity lookups @@ -19,10 +19,10 @@ index b4e5948cc..0a99b8fe9 100644 + } } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 7fcc8c52d..d909d7a83 100644 +index 059e4544e..a4fd1cb37 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -788,6 +788,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -800,6 +800,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } } diff --git a/Spigot-Server-Patches/0267-Add-TNTPrimeEvent.patch b/Spigot-Server-Patches/0267-Add-TNTPrimeEvent.patch index d7563a5647..fe76eaffb3 100644 --- a/Spigot-Server-Patches/0267-Add-TNTPrimeEvent.patch +++ b/Spigot-Server-Patches/0267-Add-TNTPrimeEvent.patch @@ -1,11 +1,11 @@ -From d256ecba29766e5be9e171883aafef26faa42509 Mon Sep 17 00:00:00 2001 +From 9ee8591ff2313a13e15a06ce71b6c5503854d2f1 Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Mon, 16 Jul 2018 00:05:05 +0300 Subject: [PATCH] Add TNTPrimeEvent diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java -index 9cf7d0b9e..15d44cd98 100644 +index 0ece78d4d..3400e7ce3 100644 --- a/src/main/java/net/minecraft/server/BlockFire.java +++ b/src/main/java/net/minecraft/server/BlockFire.java @@ -2,6 +2,7 @@ package net.minecraft.server; @@ -39,7 +39,7 @@ index 9cf7d0b9e..15d44cd98 100644 } } diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java -index 44d26e096..199276f3a 100644 +index 44d26e096..ca9b0539f 100644 --- a/src/main/java/net/minecraft/server/BlockTNT.java +++ b/src/main/java/net/minecraft/server/BlockTNT.java @@ -1,6 +1,7 @@ @@ -94,7 +94,7 @@ index 44d26e096..199276f3a 100644 + // Paper start - TNTPrimeEvent + org.bukkit.block.Block tntBlock = MCUtil.toBukkitBlock(world, blockposition); + if(!new TNTPrimeEvent(tntBlock, TNTPrimeEvent.PrimeReason.ITEM, entityhuman.getBukkitEntity()).callEvent()) -+ return true; ++ return EnumInteractionResult.FAIL; + // Paper end a(world, blockposition, (EntityLiving) entityhuman); world.setTypeAndData(blockposition, Blocks.AIR.getBlockData(), 11); diff --git a/Spigot-Server-Patches/0293-Improve-death-events.patch b/Spigot-Server-Patches/0293-Improve-death-events.patch index a61d140ad6..f174ac51bb 100644 --- a/Spigot-Server-Patches/0293-Improve-death-events.patch +++ b/Spigot-Server-Patches/0293-Improve-death-events.patch @@ -1,4 +1,4 @@ -From 88c1f7c439fe9eeccb0cb1cbb7b22dfc46885368 Mon Sep 17 00:00:00 2001 +From 00491dfb737b8cf317f106ffebb314b64ff922cf Mon Sep 17 00:00:00 2001 From: Phoenix616 Date: Tue, 21 Aug 2018 01:39:35 +0100 Subject: [PATCH] Improve death events @@ -119,7 +119,7 @@ index 80717ad9a..53aac5bcc 100644 public void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 1592a705f..78e4fe67d 100644 +index 1592a705f..5fcf3e49a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -89,7 +89,7 @@ public abstract class EntityLiving extends Entity { @@ -189,7 +189,7 @@ index 1592a705f..78e4fe67d 100644 + entity.onKill(this); + } + if (this.isSleeping()) { -+ this.dy(); ++ this.entityWakeup(); + } + this.getCombatTracker().reset(); + } else { @@ -279,7 +279,7 @@ index 1592a705f..78e4fe67d 100644 return this.isBaby() ? (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.5F : (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index ca69f9038..139d19cde 100644 +index 850c7cc1b..51b3acadb 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -75,6 +75,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -447,5 +447,5 @@ index 844781f4e..4fb1092ce 100644 * Server methods */ -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0295-Mob-Pathfinding-API.patch b/Spigot-Server-Patches/0295-Mob-Pathfinding-API.patch index b02505352b..cec93d77f5 100644 --- a/Spigot-Server-Patches/0295-Mob-Pathfinding-API.patch +++ b/Spigot-Server-Patches/0295-Mob-Pathfinding-API.patch @@ -1,4 +1,4 @@ -From 04757b158488f08a5246b3278c20ab84447ce9f5 Mon Sep 17 00:00:00 2001 +From 16c59686eddc334ed5c83c69bd51dba172461a3a Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 9 Sep 2018 13:30:00 -0400 Subject: [PATCH] Mob Pathfinding API @@ -123,7 +123,7 @@ index 000000000..f68a07cb9 + } +} diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index bdd092e49..1cb03d464 100644 +index bdd092e49..f06764973 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java @@ -80,7 +80,7 @@ public abstract class NavigationAbstract { @@ -157,7 +157,7 @@ index bdd092e49..1cb03d464 100644 } - @Nullable -+ @Nullable public PathEntity getPathEntity() { return l(); } @Nullable // Paper - OBFHELPER ++ @Nullable public PathEntity getPathEntity() { return k(); } @Nullable // Paper - OBFHELPER public PathEntity k() { return this.c; } @@ -243,5 +243,5 @@ index 5bf1cd06f..53c2d154e 100644 public void setTarget(LivingEntity target) { EntityInsentient entity = getHandle(); -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0297-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/Spigot-Server-Patches/0297-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch index 654dbd1fe3..b4afa1ad2a 100644 --- a/Spigot-Server-Patches/0297-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch +++ b/Spigot-Server-Patches/0297-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch @@ -1,4 +1,4 @@ -From 35dce37a959e9f4b9b98f03437efbc13ac47a19c Mon Sep 17 00:00:00 2001 +From e1c3b29f882864102b37e502f90ad0714d4c063d Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Wed, 12 Sep 2018 18:53:55 +0300 Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values @@ -32,7 +32,7 @@ index 005ebec26..97d85f845 100644 this.s = this::l; if (this.i.canRead() && this.i.peek() == '#') { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 1eede4bcc..8a9a48bb8 100644 +index 1eede4bcc..fb78d6cce 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -87,6 +87,12 @@ import org.bukkit.persistence.PersistentDataContainer; @@ -189,7 +189,7 @@ index 1eede4bcc..8a9a48bb8 100644 + + NBTTagList tagList = new NBTTagList(); + for (String value : list) { -+ tagList.add(new NBTTagString(value)); ++ tagList.add(NBTTagString.a(value)); // Paper - NBTTagString.of(String str) + } + + return tagList; @@ -432,5 +432,5 @@ index 1eede4bcc..8a9a48bb8 100644 + // Paper end } -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0299-Prevent-mob-spawning-from-loading-generating-chunks.patch b/Spigot-Server-Patches/0299-Prevent-mob-spawning-from-loading-generating-chunks.patch index c9d327df9d..5ae2e1a6c5 100644 --- a/Spigot-Server-Patches/0299-Prevent-mob-spawning-from-loading-generating-chunks.patch +++ b/Spigot-Server-Patches/0299-Prevent-mob-spawning-from-loading-generating-chunks.patch @@ -1,4 +1,4 @@ -From 9df1428b0a73a35c6958d1019b4c4c85fbf503ff Mon Sep 17 00:00:00 2001 +From 04921bcf6f6be7a6db8227ca25bef34465e5a472 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 12 Sep 2018 21:12:57 -0400 Subject: [PATCH] Prevent mob spawning from loading/generating chunks @@ -6,7 +6,7 @@ Subject: [PATCH] Prevent mob spawning from loading/generating chunks also prevents if out of world border bounds diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 487114367..bcca7faed 100644 +index 224443e03..fdac5bb3a 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -25,9 +25,9 @@ public final class SpawnerCreature { @@ -14,7 +14,7 @@ index 487114367..bcca7faed 100644 if (k >= 1) { - IBlockData iblockdata = chunk.getType(blockposition1); -+ IBlockData iblockdata = world.getTypeIfLoadedAndInBounds(blockposition1); // Paper - don't load chunks for mob spawn ++ IBlockData iblockdata = worldserver.getTypeIfLoadedAndInBounds(blockposition1); // Paper - don't load chunks for mob spawn - if (!iblockdata.isOccluding(chunk, blockposition1)) { + if (iblockdata != null && !iblockdata.isOccluding(chunk, blockposition1)) { // Paper - don't load chunks for mob spawn @@ -26,10 +26,10 @@ index 487114367..bcca7faed 100644 double d0 = entityhuman.g((double) f, (double) k, (double) f1); - if (d0 > 576.0D && !blockposition.a((IPosition) (new Vec3D((double) f, (double) k, (double) f1)), 24.0D)) { -+ if (d0 > 576.0D && !blockposition.a((IPosition) (new Vec3D((double) f, (double) k, (double) f1)), 24.0D) && world.isLoadedAndInBounds(blockposition_mutableblockposition)) { // Paper - don't load chunks for mob spawn ++ if (d0 > 576.0D && !blockposition.a((IPosition) (new Vec3D((double) f, (double) k, (double) f1)), 24.0D) && worldserver.isLoadedAndInBounds(blockposition_mutableblockposition)) { // Paper - don't load chunks for mob spawn ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(blockposition_mutableblockposition); if (Objects.equals(chunkcoordintpair, chunk.getPos()) || worldserver.getChunkProvider().a(chunkcoordintpair)) { -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0311-Add-sun-related-API.patch b/Spigot-Server-Patches/0311-Add-sun-related-API.patch index b046e375db..d2b27810e9 100644 --- a/Spigot-Server-Patches/0311-Add-sun-related-API.patch +++ b/Spigot-Server-Patches/0311-Add-sun-related-API.patch @@ -1,4 +1,4 @@ -From 97dd941a53daeecad5edbeb9e55cd4d5c858e6b3 Mon Sep 17 00:00:00 2001 +From 8262e20d455717a97ebf851e6645d32ad97ba000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 7 Oct 2018 00:54:21 -0500 Subject: [PATCH] Add sun related API @@ -17,10 +17,10 @@ index eadac07f6..cbaed08f5 100644 if (this.world.J() && !this.world.isClientSide) { float f = this.aI(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 9c23060bb..8e3367435 100644 +index 7a9159252..3e4632425 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -619,6 +619,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -631,6 +631,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } } @@ -63,5 +63,5 @@ index 53c2d154e..56c233872 100644 + // Paper end } -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0319-Add-more-Witch-API.patch b/Spigot-Server-Patches/0319-Add-more-Witch-API.patch index 959e19a842..a1da413e54 100644 --- a/Spigot-Server-Patches/0319-Add-more-Witch-API.patch +++ b/Spigot-Server-Patches/0319-Add-more-Witch-API.patch @@ -1,11 +1,11 @@ -From 049e3869567e166299d0659ee10b1c068b637194 Mon Sep 17 00:00:00 2001 +From 011682cf9aa804b073a7181e545916b1552f6568 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 12 Oct 2018 14:10:46 -0500 Subject: [PATCH] Add more Witch API diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java -index be6ecfb08..f1a4c10ad 100644 +index be6ecfb08..7b6b1ad17 100644 --- a/src/main/java/net/minecraft/server/EntityWitch.java +++ b/src/main/java/net/minecraft/server/EntityWitch.java @@ -1,5 +1,11 @@ @@ -25,7 +25,7 @@ index be6ecfb08..f1a4c10ad 100644 private static final UUID b = UUID.fromString("5CD17E52-A79A-43D3-A529-90FDE04B181E"); - private static final AttributeModifier bw = (new AttributeModifier(EntityWitch.b, "Drinking speed penalty", -0.25D, AttributeModifier.Operation.ADDITION)).a(false); -+ private static final AttributeModifier bw = (new AttributeModifier(EntityWitch.b, "Drinking speed penalty", -0.25D, AttributeModifier.Operation.ADDITION)).a(false); private static final AttributeModifier DRINKING_SPEED = bz; // Paper - OBFHELPER ++ private static final AttributeModifier bw = (new AttributeModifier(EntityWitch.b, "Drinking speed penalty", -0.25D, AttributeModifier.Operation.ADDITION)).a(false); private static final AttributeModifier DRINKING_SPEED = bw; // Paper - OBFHELPER private static final DataWatcherObject bx = DataWatcher.a(EntityWitch.class, DataWatcherRegistry.i); - private int by; + private int by; public int getPotionUseTimeLeft() { return by; } public void setPotionUseTimeLeft(int timeLeft) { by = timeLeft; } // Paper - OBFHELPER @@ -146,5 +146,5 @@ index bae107e76..b43a2bbd5 100644 + // Paper end } -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0331-Optimize-redstone-algorithm.patch b/Spigot-Server-Patches/0331-Optimize-redstone-algorithm.patch index 18305eb6bb..0575a69d1c 100644 --- a/Spigot-Server-Patches/0331-Optimize-redstone-algorithm.patch +++ b/Spigot-Server-Patches/0331-Optimize-redstone-algorithm.patch @@ -1,4 +1,4 @@ -From 96fb816d07d1115f2a2dd941c55277d4c248ff14 Mon Sep 17 00:00:00 2001 +From 5225647a32d31190b65163bd55c830f46e18761b Mon Sep 17 00:00:00 2001 From: theosib Date: Thu, 27 Sep 2018 01:43:35 -0600 Subject: [PATCH] Optimize redstone algorithm @@ -1124,10 +1124,10 @@ index 5bf2fc0b3..52a4982ec 100644 c(iblockdata, world, blockposition); world.a(blockposition, false); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 8e3367435..e8f83627c 100644 +index 3e4632425..3e7ba9be6 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -526,6 +526,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -538,6 +538,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } @@ -1135,7 +1135,7 @@ index 8e3367435..e8f83627c 100644 public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) { if (!this.isClientSide) { IBlockData iblockdata = this.getType(blockposition); -@@ -1275,6 +1276,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1287,6 +1288,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return this.getBlockFacePower(blockposition.down(), EnumDirection.DOWN) > 0 ? true : (this.getBlockFacePower(blockposition.up(), EnumDirection.UP) > 0 ? true : (this.getBlockFacePower(blockposition.north(), EnumDirection.NORTH) > 0 ? true : (this.getBlockFacePower(blockposition.south(), EnumDirection.SOUTH) > 0 ? true : (this.getBlockFacePower(blockposition.west(), EnumDirection.WEST) > 0 ? true : this.getBlockFacePower(blockposition.east(), EnumDirection.EAST) > 0)))); } @@ -1144,5 +1144,5 @@ index 8e3367435..e8f83627c 100644 int i = 0; EnumDirection[] aenumdirection = World.a; -- -2.17.1 +2.24.0 diff --git a/Spigot-Server-Patches/0346-BlockDestroyEvent.patch b/Spigot-Server-Patches/0346-BlockDestroyEvent.patch index 9835f80cb0..d828336425 100644 --- a/Spigot-Server-Patches/0346-BlockDestroyEvent.patch +++ b/Spigot-Server-Patches/0346-BlockDestroyEvent.patch @@ -1,4 +1,4 @@ -From 5520641b69e980691db06799793a50b52fd497ca Mon Sep 17 00:00:00 2001 +From 10a9a42dfb78cdd1e27b1c8ea4d5a89590abb829 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 6 Feb 2019 00:20:33 -0500 Subject: [PATCH] BlockDestroyEvent @@ -11,10 +11,10 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e8f83627c..61a3ddc4d 100644 +index 3e7ba9be6..77db1b73d 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -456,8 +456,20 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -468,8 +468,20 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return false; } else { Fluid fluid = this.getFluid(blockposition); @@ -37,5 +37,5 @@ index e8f83627c..61a3ddc4d 100644 TileEntity tileentity = iblockdata.getBlock().isTileEntity() ? this.getTileEntity(blockposition) : null; -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0365-Optimize-Captured-TileEntity-Lookup.patch b/Spigot-Server-Patches/0365-Optimize-Captured-TileEntity-Lookup.patch index 61442cd87b..444d6f9933 100644 --- a/Spigot-Server-Patches/0365-Optimize-Captured-TileEntity-Lookup.patch +++ b/Spigot-Server-Patches/0365-Optimize-Captured-TileEntity-Lookup.patch @@ -1,4 +1,4 @@ -From bed92ef07ed1a7c0514c36dd12f20aaba86cbc66 Mon Sep 17 00:00:00 2001 +From 5e9eff1f0169179c20855dfdb4f0129b00180e09 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 6 Apr 2019 10:16:48 -0400 Subject: [PATCH] Optimize Captured TileEntity Lookup @@ -10,10 +10,10 @@ Optimize to check if the captured list even has values in it, and also to just do a get call since the value can never be null. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 61a3ddc4d..dfc695084 100644 +index 77db1b73d..7d39a8fbc 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1000,12 +1000,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -1012,12 +1012,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return null; } else { // CraftBukkit start @@ -31,5 +31,5 @@ index 61a3ddc4d..dfc695084 100644 if (this.tickingTileEntities) { tileentity = this.e(blockposition); -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0366-Add-Heightmap-API.patch b/Spigot-Server-Patches/0366-Add-Heightmap-API.patch index bbb5c5629e..3514092865 100644 --- a/Spigot-Server-Patches/0366-Add-Heightmap-API.patch +++ b/Spigot-Server-Patches/0366-Add-Heightmap-API.patch @@ -1,14 +1,14 @@ -From 67f62dfa1ad2c6ea8104461749bd2b43b94bb366 Mon Sep 17 00:00:00 2001 +From 2bd3daff08c36cebcfb7c1f1a7eb3718d771daa6 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Tue, 1 Jan 2019 02:22:01 -0800 Subject: [PATCH] Add Heightmap API diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index dfc695084..10bb06489 100644 +index 7d39a8fbc..9889b0543 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -577,8 +577,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -589,8 +589,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable { } } @@ -54,5 +54,5 @@ index 578fe8d19..12362d560 100644 public Location getSpawnLocation() { BlockPosition spawn = world.getSpawn(); -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0381-incremental-chunk-saving.patch b/Spigot-Server-Patches/0381-incremental-chunk-saving.patch index 0fff4ebda9..e8aeb27cf8 100644 --- a/Spigot-Server-Patches/0381-incremental-chunk-saving.patch +++ b/Spigot-Server-Patches/0381-incremental-chunk-saving.patch @@ -1,4 +1,4 @@ -From 36505b571ac2b7a8b2353960f29c818d5e880384 Mon Sep 17 00:00:00 2001 +From 9dff654d99e1c5c0d31a9974dfe1b2b8314ae3dc Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 9 Jun 2019 03:53:22 +0100 Subject: [PATCH] incremental chunk saving @@ -149,7 +149,7 @@ index 827831aab..4379434f6 100644 if (flag) { List list = (List) this.visibleChunks.values().stream().filter(PlayerChunk::hasBeenLoaded).peek(PlayerChunk::m).collect(Collectors.toList()); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index c28c0431a..0fd3cb54b 100644 +index c28c0431a..4bfa6ea0e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -791,11 +791,44 @@ public class WorldServer extends World { @@ -166,7 +166,7 @@ index c28c0431a..0fd3cb54b 100644 + + try (co.aikar.timings.Timing ignored = timings.worldSave.startTiming()) { + if (doFull) { -+ this.k_(); ++ this.saveData(); + } + + timings.worldSaveChunks.startTiming(); // Paper @@ -180,9 +180,9 @@ index c28c0431a..0fd3cb54b 100644 + WorldServer worldserver1 = this; + WorldData worlddata = worldserver1.getWorldData(); + -+ worldserver1.getWorldBorder().a(worlddata); -+ worlddata.c(this.server.getBossBattleCustomData().c()); -+ worldserver1.getDataManager().saveWorldData(worlddata, this.server.getPlayerList().r()); ++ worldserver1.getWorldBorder().save(worlddata); ++ worlddata.setCustomBossEvents(this.server.getBossBattleCustomData().save()); ++ worldserver1.getDataManager().saveWorldData(worlddata, this.server.getPlayerList().save()); + // CraftBukkit end + } + } @@ -198,6 +198,14 @@ index c28c0431a..0fd3cb54b 100644 try (co.aikar.timings.Timing ignored = timings.worldSave.startTiming()) { // Paper if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel", new Object[0])); +@@ -822,6 +855,7 @@ public class WorldServer extends World { + // CraftBukkit end + } + ++ protected void saveData() throws ExceptionWorldConflict { this.m_(); } // Paper - OBFHELPER + protected void m_() throws ExceptionWorldConflict { + this.checkSession(); + this.worldProvider.i(); -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0387-Anti-Xray.patch b/Spigot-Server-Patches/0387-Anti-Xray.patch index 293f570fce..de089a13b9 100644 --- a/Spigot-Server-Patches/0387-Anti-Xray.patch +++ b/Spigot-Server-Patches/0387-Anti-Xray.patch @@ -1,4 +1,4 @@ -From 6af2036c7be6a6b165b5e8a88ed9de26748b03f2 Mon Sep 17 00:00:00 2001 +From d46c3f2175e3fe28a373540a9e5f7a668fb4817a Mon Sep 17 00:00:00 2001 From: stonar96 Date: Mon, 20 Aug 2018 03:03:58 +0200 Subject: [PATCH] Anti-Xray @@ -1648,7 +1648,7 @@ index a905a29e7..335b64435 100644 public static TicketType a(String s, Comparator comparator) { return new TicketType<>(s, comparator, 0L); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 9ad76ab32..39725335d 100644 +index e80cb3b97..985f30372 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -2,6 +2,8 @@ package net.minecraft.server; @@ -1676,7 +1676,7 @@ index 9ad76ab32..39725335d 100644 this.generator = gen; this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit -@@ -346,6 +350,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { +@@ -358,6 +362,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { // CraftBukkit end IBlockData iblockdata1 = chunk.setType(blockposition, iblockdata, (i & 64) != 0, (i & 1024) == 0); // CraftBukkit custom NO_PLACE flag @@ -1710,5 +1710,5 @@ index 7772d5900..4570ed999 100644 return section; } -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0388-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/Spigot-Server-Patches/0388-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch index a65a3083c3..c427c2036d 100644 --- a/Spigot-Server-Patches/0388-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch +++ b/Spigot-Server-Patches/0388-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch @@ -1,4 +1,4 @@ -From d6b3a9d00583ae9f1c817cf2357385828b4c77f7 Mon Sep 17 00:00:00 2001 +From 7167eb52225425a7247cb5afc746f3c5e0902847 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 24 Mar 2019 01:01:32 -0400 Subject: [PATCH] Only count Natural Spawned mobs towards natural spawn mob @@ -38,10 +38,10 @@ index 363676348..0a7e6fff1 100644 public boolean asynchronous; public EngineMode engineMode; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 0fd3cb54b..a5cce8f4e 100644 +index 4bfa6ea0e..733f3e10e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -933,6 +933,13 @@ public class WorldServer extends World { +@@ -934,6 +934,13 @@ public class WorldServer extends World { EnumCreatureType enumcreaturetype = entity.getEntityType().e(); if (enumcreaturetype != EnumCreatureType.MISC && this.getChunkProvider().b(entity)) { @@ -56,5 +56,5 @@ index 0fd3cb54b..a5cce8f4e 100644 } } -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0390-Mark-entities-as-being-ticked-when-notifying-navigat.patch b/Spigot-Server-Patches/0390-Mark-entities-as-being-ticked-when-notifying-navigat.patch index 7a6bd4c54d..c1e1725c4c 100644 --- a/Spigot-Server-Patches/0390-Mark-entities-as-being-ticked-when-notifying-navigat.patch +++ b/Spigot-Server-Patches/0390-Mark-entities-as-being-ticked-when-notifying-navigat.patch @@ -1,14 +1,14 @@ -From 56f78814b12ea4c6d20d61805f929ad16a4e0210 Mon Sep 17 00:00:00 2001 +From 9a39e60db93fde594b0819fcf31c8ad7bde4ffa0 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 28 Jul 2019 00:51:11 +0100 Subject: [PATCH] Mark entities as being ticked when notifying navigation diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a5cce8f4e..8ea9b34a1 100644 +index 733f3e10e..049d4ef4e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1370,6 +1370,7 @@ public class WorldServer extends World { +@@ -1371,6 +1371,7 @@ public class WorldServer extends World { VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) { @@ -16,7 +16,7 @@ index a5cce8f4e..8ea9b34a1 100644 Iterator iterator = this.navigators.iterator(); while (iterator.hasNext()) { -@@ -1380,6 +1381,7 @@ public class WorldServer extends World { +@@ -1381,6 +1382,7 @@ public class WorldServer extends World { } } @@ -25,5 +25,5 @@ index a5cce8f4e..8ea9b34a1 100644 } -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0396-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch b/Spigot-Server-Patches/0396-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch index d2924dcabc..e2463fc5cc 100644 --- a/Spigot-Server-Patches/0396-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch +++ b/Spigot-Server-Patches/0396-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch @@ -1,4 +1,4 @@ -From 4e401f46a0da7fb3e383d51e6a23e7e09db0dd88 Mon Sep 17 00:00:00 2001 +From 55f4e65820156e476cff0bfa265f30573860ca87 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Sun, 14 Jul 2019 21:05:03 -0500 Subject: [PATCH] Do less work if we have a custom Bukkit generator @@ -7,7 +7,7 @@ If the Bukkit generator already has a spawn, use it immediately instead of spending time generating one that we won't use diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index fecbe7914..a08308a12 100644 +index 657f0e024..1d750eba5 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -782,12 +782,13 @@ public class WorldServer extends World { @@ -35,7 +35,7 @@ index fecbe7914..a08308a12 100644 // CraftBukkit end + // Paper start - this is useless if craftbukkit returns early -+ WorldChunkManager worldchunkmanager = this.chunkProvider.getChunkGenerator().getWorldChunkManager(); ++ WorldChunkManager worldchunkmanager = this.getChunkProvider().getChunkGenerator().getWorldChunkManager(); + List list = worldchunkmanager.a(); + Random random = new Random(this.getSeed()); + BlockPosition blockposition = worldchunkmanager.a(0, this.getSeaLevel(), 0, 256, list, random); @@ -45,5 +45,5 @@ index fecbe7914..a08308a12 100644 WorldServer.LOGGER.warn("Unable to find spawn biome"); } -- -2.24.1 +2.24.0 diff --git a/Spigot-Server-Patches/0398-implement-optional-per-player-mob-spawns.patch b/Spigot-Server-Patches/0398-implement-optional-per-player-mob-spawns.patch index 567cc95778..6bcd729b9a 100644 --- a/Spigot-Server-Patches/0398-implement-optional-per-player-mob-spawns.patch +++ b/Spigot-Server-Patches/0398-implement-optional-per-player-mob-spawns.patch @@ -1,4 +1,4 @@ -From 86be231a037cbcb9e168afa85e02d3dd83fcc97b Mon Sep 17 00:00:00 2001 +From 1dfb1d7424222fe141edd78433a2f79225570544 Mon Sep 17 00:00:00 2001 From: kickash32 Date: Mon, 19 Aug 2019 01:27:58 +0500 Subject: [PATCH] implement optional per player mob spawns @@ -755,10 +755,10 @@ index e168c528c..56dabbc15 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a08308a12..4da5c8982 100644 +index b9e37d630..25a1ef134 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -998,7 +998,20 @@ public class WorldServer extends World { +@@ -999,7 +999,20 @@ public class WorldServer extends World { } public Object2IntMap l() { @@ -780,7 +780,7 @@ index a08308a12..4da5c8982 100644 ObjectIterator objectiterator = this.entitiesById.values().iterator(); while (objectiterator.hasNext()) { -@@ -1023,11 +1036,16 @@ public class WorldServer extends World { +@@ -1024,11 +1037,16 @@ public class WorldServer extends World { continue; } // Paper end @@ -800,5 +800,5 @@ index a08308a12..4da5c8982 100644 @Override -- -2.24.1 +2.24.0