diff --git a/AirplaneLite b/AirplaneLite index 296f9531..3200f2a2 160000 --- a/AirplaneLite +++ b/AirplaneLite @@ -1 +1 @@ -Subproject commit 296f9531bd40d8210d14d863bc41127bf9fcd036 +Subproject commit 3200f2a255cfd43767431625e0fe9039d17126ca diff --git a/Empirecraft b/Empirecraft index bdbacfb3..a8914cb8 160000 --- a/Empirecraft +++ b/Empirecraft @@ -1 +1 @@ -Subproject commit bdbacfb3b34bb5b706921bda88b4aea5917ea4df +Subproject commit a8914cb8ed18d96eb1452d1e052c5e6d3007f1d7 diff --git a/Origami b/Origami index eb7662a1..ab42df90 160000 --- a/Origami +++ b/Origami @@ -1 +1 @@ -Subproject commit eb7662a1f773df0c578fe1e5d8b0ba634ddde213 +Subproject commit ab42df90d612411d873d4d3d426f17c4fbc78053 diff --git a/PATCHES.md b/PATCHES.md index dfb418e9..c9c4b24d 100644 --- a/PATCHES.md +++ b/PATCHES.md @@ -16,8 +16,6 @@ # Patches | server | Add JsonList save timings | Ivan Pekov | | | api | Add NBT API as a first-class lib | tr7zw | | | server | Add NBT API as a first-class lib | tr7zw | | -| api | Add StructureLocateEvent | dfsek | | -| server | Add StructureLocateEvent | dfsek | | | server | Add a special case for floodgate and offline uuids | Ivan Pekov | | | server | Add component util | William Blake Galbreath | | | api | Add last tick time API | Ivan Pekov | tr7zw | diff --git a/Purpur b/Purpur index ba421382..7e8bf667 160000 --- a/Purpur +++ b/Purpur @@ -1 +1 @@ -Subproject commit ba4213825991acd0b14ea2930c597bd019be4de7 +Subproject commit 7e8bf667fa109167089cd4b0750e1194284cdd64 diff --git a/Tuinity b/Tuinity index 6da59b2b..c04b0058 160000 --- a/Tuinity +++ b/Tuinity @@ -1 +1 @@ -Subproject commit 6da59b2b20532c1b4434080bad351929d07b9405 +Subproject commit c04b0058d3149106079ebb68d126ab80b1cabefa diff --git a/patches/api/0008-Add-StructureLocateEvent.patch b/patches/api/0008-Add-StructureLocateEvent.patch deleted file mode 100644 index 8b28fb32..00000000 --- a/patches/api/0008-Add-StructureLocateEvent.patch +++ /dev/null @@ -1,149 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: dfsek -Date: Tue, 15 Sep 2020 21:59:16 -0700 -Subject: [PATCH] Add StructureLocateEvent - - -diff --git a/src/main/java/org/bukkit/event/world/StructureLocateEvent.java b/src/main/java/org/bukkit/event/world/StructureLocateEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..1011b03fcc7be912e617a6fde3f62e68d70f2c1c ---- /dev/null -+++ b/src/main/java/org/bukkit/event/world/StructureLocateEvent.java -@@ -0,0 +1,137 @@ -+package org.bukkit.event.world; -+ -+import org.bukkit.Location; -+import org.bukkit.StructureType; -+import org.bukkit.World; -+import org.bukkit.event.Cancellable; -+import org.bukkit.event.HandlerList; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; -+ -+/** -+ * Called before a structure/feature is located. -+ * This happens when:
-+ * - The /locate command is used.
-+ * - An Eye of Ender is used.
-+ * - An Explorer/Treasure Map is activated.
-+ * - {@link World#locateNearestStructure(Location, StructureType, int, boolean)} is invoked. -+ */ -+public class StructureLocateEvent extends WorldEvent implements Cancellable { -+ private static final HandlerList handlers = new HandlerList(); -+ private final Location origin; -+ private Location result = null; -+ private StructureType type; -+ private int radius; -+ private boolean findUnexplored; -+ private boolean cancelled = false; -+ public StructureLocateEvent(@NotNull World world, @NotNull Location origin, @NotNull StructureType structureType, int radius, boolean findUnexplored) { -+ super(world); -+ this.origin = origin; -+ this.type = structureType; -+ this.radius = radius; -+ this.findUnexplored = findUnexplored; -+ } -+ -+ @NotNull -+ @Override -+ public HandlerList getHandlers() { -+ return handlers; -+ } -+ -+ @NotNull -+ public static HandlerList getHandlerList() { -+ return handlers; -+ } -+ -+ /** -+ * Gets the location set as the structure location, if it was defined.
-+ * Returns null if it has not been set by {@link StructureLocateEvent#setResult(Location)}.
-+ * Since this event fires before the search is done, the actual location is unknown at this point.
-+ * If you wish to manipulate the location, use {@link World#locateNearestStructure(Location, StructureType, int, boolean)} -+ * @return The result location, if it has been set. null if it has not. -+ */ -+ @Nullable -+ public Location getResult() { -+ return result; -+ } -+ -+ /** -+ * Sets the result Location. This causes the search to be skipped, and the location passed here to be used as the result. -+ * @param result the Location of the structure. -+ */ -+ public void setResult(@Nullable Location result) { -+ this.result = result; -+ } -+ -+ /** -+ * Gets the {@link StructureType} that is to be located. -+ * @return the structure type. -+ */ -+ @NotNull -+ public StructureType getType() { -+ return type; -+ } -+ -+ /** -+ * Sets the {@link StructureType} that is to be located. -+ * @param type the structure type. -+ */ -+ public void setType(@NotNull StructureType type) { -+ this.type = type; -+ } -+ -+ /** -+ * Gets the location from which the search is to be conducted. -+ * @return Location where search begins -+ */ -+ @NotNull -+ public Location getOrigin() { -+ return origin; -+ } -+ -+ /** -+ * Gets the search radius in which to attempt locating the structure.
-+ * This radius may not always be obeyed during the structure search! -+ * @return the search radius. -+ */ -+ public int getRadius() { -+ return radius; -+ } -+ -+ /** -+ * Sets the search radius in which to attempt locating the structure.
-+ * This radius may not always be obeyed during the structure search! -+ * @param radius the search radius. -+ */ -+ public void setRadius(int radius) { -+ this.radius = radius; -+ } -+ -+ /** -+ * Gets whether to search exclusively for unexplored structures.
-+ * As with the search radius, this value is not always obeyed. -+ * @return Whether to search for only unexplored structures. -+ */ -+ public boolean shouldFindUnexplored() { -+ return findUnexplored; -+ } -+ -+ /** -+ * Sets whether to search exclusively for unexplored structures.
-+ * As with the search radius, this value is not always obeyed. -+ * @param findUnexplored Whether to search for only unexplored structures. -+ */ -+ public void setFindUnexplored(boolean findUnexplored) { -+ this.findUnexplored = findUnexplored; -+ } -+ -+ @Override -+ public boolean isCancelled() { -+ return cancelled; -+ } -+ -+ @Override -+ public void setCancelled(boolean cancel) { -+ this.cancelled = cancel; -+ } -+} diff --git a/patches/api/0009-Disable-reload-command.patch b/patches/api/0008-Disable-reload-command.patch similarity index 100% rename from patches/api/0009-Disable-reload-command.patch rename to patches/api/0008-Disable-reload-command.patch diff --git a/patches/server/0001-Yatopia-Server-Fixes.patch b/patches/server/0001-Yatopia-Server-Fixes.patch index cb5c0754..3d830e6a 100644 --- a/patches/server/0001-Yatopia-Server-Fixes.patch +++ b/patches/server/0001-Yatopia-Server-Fixes.patch @@ -141,53 +141,6 @@ index 2291135eaef64c403183724cb6e413cd7e472672..6fcc7ed7c129e6a33386d65b37cbba4a public static long getAdjacent(int baseX, int baseY, int baseZ, EnumDirection enumdirection) { return asLong(baseX + enumdirection.getAdjacentX(), baseY + enumdirection.getAdjacentY(), baseZ + enumdirection.getAdjacentZ()); } // Paper public static long a(long i, EnumDirection enumdirection) { return a(i, enumdirection.getAdjacentX(), enumdirection.getAdjacentY(), enumdirection.getAdjacentZ()); -diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 781d74cf7e3669d71727cce781a8f8ce088c5547..7a25349d59d454c43453726f6f44b16a3e90e681 100644 ---- a/src/main/java/net/minecraft/server/Chunk.java -+++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -53,6 +53,17 @@ public class Chunk implements IChunkAccess { - private final ChunkCoordIntPair loc; public final long coordinateKey; public final int locX; public final int locZ; // Paper - cache coordinate key - private volatile boolean x; - -+ // AirplaneL start - instead of using a random every time the chunk is ticked, define when lightning strikes preemptively -+ private int lightningTick = -1; -+ public boolean shouldDoLightning() { -+ boolean doTick = this.lightningTick == 0; -+ if (this.lightningTick-- <= 0) { -+ this.lightningTick = this.world.random.nextInt(100000) << 1; -+ } -+ return doTick; -+ } -+ // AirplaneL end -+ - public Chunk(World world, ChunkCoordIntPair chunkcoordintpair, BiomeStorage biomestorage) { - this(world, chunkcoordintpair, biomestorage, ChunkConverter.a, TickListEmpty.b(), TickListEmpty.b(), 0L, (ChunkSection[]) null, (Consumer) null); - } -diff --git a/src/main/java/net/minecraft/server/Chunk.java.rej b/src/main/java/net/minecraft/server/Chunk.java.rej -deleted file mode 100644 -index 6a63cbff4fcd1ebcc23910a8ae4f400df0e51351..0000000000000000000000000000000000000000 ---- a/src/main/java/net/minecraft/server/Chunk.java.rej -+++ /dev/null -@@ -1,19 +0,0 @@ --diff a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java (rejected hunks) --@@ -53,6 +53,17 @@ public class Chunk implements IChunkAccess { -- private final ChunkCoordIntPair loc; public final long coordinateKey; // Paper - cache coordinate key -- private volatile boolean x; -- --+ // AirplaneL start - instead of using a random every time the chunk is ticked, define when lightning strikes preemptively --+ private int lightningTick = -1; --+ public boolean shouldDoLightning() { --+ boolean doTick = this.lightningTick == 0; --+ if (this.lightningTick-- <= 0) { --+ this.lightningTick = this.world.random.nextInt(100000) << 1; --+ } --+ return doTick; --+ } --+ // AirplaneL end --+ -- public Chunk(World world, ChunkCoordIntPair chunkcoordintpair, BiomeStorage biomestorage) { -- this(world, chunkcoordintpair, biomestorage, ChunkConverter.a, TickListEmpty.b(), TickListEmpty.b(), 0L, (ChunkSection[]) null, (Consumer) null); -- } diff --git a/src/main/java/net/minecraft/server/CommandDispatcher.java b/src/main/java/net/minecraft/server/CommandDispatcher.java index 17753c8a997aa286460be5d8eb6508e2eaed18ce..56d5cebd155f2b5ee24c1d8b75903316e59688d1 100644 --- a/src/main/java/net/minecraft/server/CommandDispatcher.java @@ -244,7 +197,7 @@ index 86f1cfe454ea0a989775b49a6b88375c766ef647..da53af61d1171db3c167c6e007adf953 if (!(this.k instanceof EntityPlayer)) { throw CommandListenerWrapper.a.create(); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index abc04bb88eed4508e89af20ff95e570137e41794..eed59fe862ba8a6a746c396acd901b3c7f6efab0 100644 +index c33875cf43fecea5196b34d46f9c13c18e77d2a4..69e4b0b8aac9ed7c000edc54ce9cf35255cb2946 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -434,7 +434,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -272,29 +225,6 @@ index abc04bb88eed4508e89af20ff95e570137e41794..eed59fe862ba8a6a746c396acd901b3c } this.inPortal = true; -diff --git a/src/main/java/net/minecraft/server/Entity.java.rej b/src/main/java/net/minecraft/server/Entity.java.rej -deleted file mode 100644 -index 38dc8171d74f62287c1ac9b04f90ff8d000f1bf1..0000000000000000000000000000000000000000 ---- a/src/main/java/net/minecraft/server/Entity.java.rej -+++ /dev/null -@@ -1,17 +0,0 @@ --diff a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java (rejected hunks) --@@ -2419,12 +2419,15 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke -- return new Vec2F(this.pitch, this.yaw); -- } -- --+ public BlockPosition portalPos = BlockPosition.ZERO; // Purpur -- public void d(BlockPosition blockposition) { -- if (this.ai()) { --+ if (!(world.purpurConfig.playerFixStuckPortal && this instanceof EntityPlayer && !blockposition.equals(portalPos))) // Purpur -- this.resetPortalCooldown(); -- } else if (world.purpurConfig.entitiesCanUsePortals || this instanceof EntityPlayer) { // Purpur -- if (!this.world.isClientSide && !blockposition.equals(this.ac)) { -- this.ac = blockposition.immutableCopy(); --+ portalPos = BlockPosition.ZERO; // Purpur -- } -- -- this.inPortal = true; diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java index c034869310ca3dadbfe5425c45aaa80dac59ac88..3c94f5b5cb94af4f1089e958ad7fef15f21f155e 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java @@ -333,7 +263,7 @@ index 538b2c92e050176a1ac0bb4c2315f5b22c7f8eac..00000000000000000000000000000000 - - @Override diff --git a/src/main/java/net/minecraft/server/IProjectile.java b/src/main/java/net/minecraft/server/IProjectile.java -index 9f5ce64a60fe7c312399ee416b11b84213dd3bee..64c08d830c358247186cf4e5fcf2010ed43f0f02 100644 +index bbc089b41fcbe0141f13591db2cb44b9e688cac4..a01a14dc27351fd8c4a21068017ff0664ef16f6e 100644 --- a/src/main/java/net/minecraft/server/IProjectile.java +++ b/src/main/java/net/minecraft/server/IProjectile.java @@ -13,6 +13,7 @@ public abstract class IProjectile extends Entity { @@ -883,7 +813,7 @@ index 0ee12c5b16ce479cdf86b3fd21d3cc5af6da9e9b..00000000000000000000000000000000 - private void teleportIfOutsideBorder() { - teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 00e6b6f29e042fb48c2fc8009659c57e9a930abc..fcf2bf8962cf6bc33d4213c1101debae4afa7114 100644 +index 37cf84e0273d1a3bb49aadd2fe19d86730135afd..8f18c57ab283c85571333165e8aeca23256a39e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -863,6 +863,7 @@ public final class CraftServer implements Server { @@ -902,7 +832,7 @@ index 00e6b6f29e042fb48c2fc8009659c57e9a930abc..fcf2bf8962cf6bc33d4213c1101debae } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -2309,6 +2311,13 @@ public final class CraftServer implements Server { +@@ -2314,6 +2316,13 @@ public final class CraftServer implements Server { } // Purpur end @@ -916,7 +846,7 @@ index 00e6b6f29e042fb48c2fc8009659c57e9a930abc..fcf2bf8962cf6bc33d4213c1101debae @Override public void restart() { org.spigotmc.RestartCommand.restart(); -@@ -2446,4 +2455,11 @@ public final class CraftServer implements Server { +@@ -2451,4 +2460,11 @@ public final class CraftServer implements Server { return mobGoals; } // Paper end @@ -947,7 +877,7 @@ index b9dbdd5416862e325200e62b7d5821a73c230ec1..00000000000000000000000000000000 - // Purpur end - } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 25501197b33441fa0d319082bd8d8b72110373af..dbc934b374ff1b9eb4b66d2365e89c39c951763b 100644 +index bb93febb86c81e0897f1a0d8d058f4fb29f18b41..d1f337d1371fc476d0c35b8fb4bdf55c345d86be 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -154,6 +154,14 @@ public class Main { diff --git a/patches/server/0003-Brandings.patch b/patches/server/0003-Brandings.patch index 0fbbf3d1..ee4db681 100644 --- a/patches/server/0003-Brandings.patch +++ b/patches/server/0003-Brandings.patch @@ -52,7 +52,7 @@ index 679498256770c6ed0010de4f91ed82c9375d871c..23978b1c4ebe3e78d4a076d93cc34ed6 public CrashReport b(CrashReport crashreport) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fcf2bf8962cf6bc33d4213c1101debae4afa7114..ea882b3ff0608e23852e48e7aa10f364fc8a2353 100644 +index 8f18c57ab283c85571333165e8aeca23256a39e4..a43981b9d95ae61d63fddc7b534ee8a44722ae2f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper @@ -65,7 +65,7 @@ index fcf2bf8962cf6bc33d4213c1101debae4afa7114..ea882b3ff0608e23852e48e7aa10f364 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 dbc934b374ff1b9eb4b66d2365e89c39c951763b..00e7eb476f21a7ee711d6c5847a57154e79d9f1e 100644 +index d1f337d1371fc476d0c35b8fb4bdf55c345d86be..93ff9cef2732553e179791215d9d3c9201945f73 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -275,7 +275,7 @@ public class Main { @@ -78,10 +78,10 @@ index dbc934b374ff1b9eb4b66d2365e89c39c951763b..00e7eb476f21a7ee711d6c5847a57154 //Thread.sleep(TimeUnit.SECONDS.toMillis(20)); // Paper End diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 979f3504e6a6ca46993f3d9b0f408ab6744bdccd..efaf1a526ae56c93264989a3c23f9e7aecd839da 100644 +index ac5003dc827217bd1947c71044abcbcbd2210dcd..9ef99b4a9e2a648a9245cfae70d12645a15fb12c 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -353,7 +353,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -370,7 +370,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { @@ -160,7 +160,7 @@ index 58d01c6f8abcd9e1792495abd08b186f9d03f834..476939bde38246eb0fd96e6a4ba8076c diff --git a/src/main/java/org/yatopiamc/yatopia/server/YatopiaVersionFetcher.java b/src/main/java/org/yatopiamc/yatopia/server/YatopiaVersionFetcher.java new file mode 100644 -index 0000000000000000000000000000000000000000..e6564bae963cda66ee4152648836f172f7e4ea91 +index 0000000000000000000000000000000000000000..db0f7b1acf28ebe486026b8a7507ed4c7e26fb0f --- /dev/null +++ b/src/main/java/org/yatopiamc/yatopia/server/YatopiaVersionFetcher.java @@ -0,0 +1,96 @@ @@ -183,7 +183,7 @@ index 0000000000000000000000000000000000000000..e6564bae963cda66ee4152648836f172 + +public class YatopiaVersionFetcher implements VersionFetcher { + -+ private static final String GITHUB_BRANCH_NAME = "ver/1.16.4"; ++ private static final String GITHUB_BRANCH_NAME = "ver/1.16.5"; + + @Override + public long getCacheTime() { diff --git a/patches/server/0006-Add-last-tick-time-API.patch b/patches/server/0006-Add-last-tick-time-API.patch index 331900c6..c74644b9 100644 --- a/patches/server/0006-Add-last-tick-time-API.patch +++ b/patches/server/0006-Add-last-tick-time-API.patch @@ -30,10 +30,10 @@ index 23978b1c4ebe3e78d4a076d93cc34ed69ccfd3db..6f1a6ee340577d25b5edeb28eb2d2c52 this.X = true; this.W = Math.max(SystemUtils.getMonotonicMillis() + 50L, this.nextTick); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ea882b3ff0608e23852e48e7aa10f364fc8a2353..248605cc533e4cad4b75b92b1d88ef6aa03f4c5c 100644 +index a43981b9d95ae61d63fddc7b534ee8a44722ae2f..2969967bf60cec75db6e08ff57a5fd78e10d0acc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2462,4 +2462,6 @@ public final class CraftServer implements Server { +@@ -2467,4 +2467,6 @@ public final class CraftServer implements Server { return getServer().lagging; } // Purpur end diff --git a/patches/server/0007-Yatopia-configuration.patch b/patches/server/0007-Yatopia-configuration.patch index 4f066aad..aefe8b32 100644 --- a/patches/server/0007-Yatopia-configuration.patch +++ b/patches/server/0007-Yatopia-configuration.patch @@ -67,7 +67,7 @@ index e522fc88b2ec4f1360b8c6f45553d48587e6a105..f35ca7363962fd686a650a34b0fed47e if (this.isFireProof() || this.world.isClientSide) { this.extinguish(); diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index a94f6ed40b9cb5f4b1ac021d9d3ee0d53ea7a40f..67f17d5de8affec750c6c861db48ec4d1558b58b 100644 +index 044fe90c7b21809748a8d0559f20c42b6c169c71..99a67a46bf060aa186a64b4d0608fc60ede609e4 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -188,7 +188,7 @@ public abstract class PlayerList { @@ -80,7 +80,7 @@ index a94f6ed40b9cb5f4b1ac021d9d3ee0d53ea7a40f..67f17d5de8affec750c6c861db48ec4d playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities)); playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex)); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 248605cc533e4cad4b75b92b1d88ef6aa03f4c5c..40aaa7c1fe0bf0a5031d5e1e15035a40cfedaa34 100644 +index 2969967bf60cec75db6e08ff57a5fd78e10d0acc..d5d32012687355ba8c0c048bbf2f14a62bcb8b62 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -864,6 +864,7 @@ public final class CraftServer implements Server { @@ -91,7 +91,7 @@ index 248605cc533e4cad4b75b92b1d88ef6aa03f4c5c..40aaa7c1fe0bf0a5031d5e1e15035a40 for (WorldServer world : console.getWorlds()) { world.worldDataServer.setDifficulty(config.difficulty); world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals); -@@ -2318,6 +2319,13 @@ public final class CraftServer implements Server { +@@ -2323,6 +2324,13 @@ public final class CraftServer implements Server { } // Origami end @@ -106,7 +106,7 @@ index 248605cc533e4cad4b75b92b1d88ef6aa03f4c5c..40aaa7c1fe0bf0a5031d5e1e15035a40 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 00e7eb476f21a7ee711d6c5847a57154e79d9f1e..e7818d40d9cac682eb28fadf319d08f8ca88e89d 100644 +index 93ff9cef2732553e179791215d9d3c9201945f73..82aa5f67ee8ca038094ca922a279d90d78bdac2d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -162,6 +162,14 @@ public class Main { diff --git a/patches/server/0011-Modify-default-configs.patch b/patches/server/0011-Modify-default-configs.patch index d216f326..d01cf1a6 100644 --- a/patches/server/0011-Modify-default-configs.patch +++ b/patches/server/0011-Modify-default-configs.patch @@ -18,10 +18,10 @@ index ce14283dd1a1fddbea17c2fbaf1c4ef9d7a7479f..4a21a83c448355d61fb946bd0eb5d752 TimingsManager.privacy = getBoolean("timings.server-name-privacy", false); TimingsManager.hiddenConfigs = getList("timings.hidden-config-entries", Lists.newArrayList("database", "settings.bungeecord-addresses", "settings.velocity-support.secret")); diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 234d2daecc5d0bf6a99c0a5f4a87f947a15029d9..e11a180f7a45660ac278a3b45a971caa06eb3043 100644 +index 4735dcba31b556fafe9c7d7440c89e940755c81f..1c6ad58e6c1d2ff4a75043c0bbbbb1539596846b 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -627,7 +627,7 @@ public class PaperWorldConfig { +@@ -633,7 +633,7 @@ public class PaperWorldConfig { } public boolean cooldownHopperWhenFull = true; diff --git a/patches/server/0022-Redirect-Configs.patch b/patches/server/0022-Redirect-Configs.patch index f6eff443..6c7e33a9 100644 --- a/patches/server/0022-Redirect-Configs.patch +++ b/patches/server/0022-Redirect-Configs.patch @@ -52,7 +52,7 @@ index 0a9f03526abf0638ada15d9810b949887fca9f9a..64b662dc9146d0d414a9668d9b93e07a this.setAllowFlight(dedicatedserverproperties.allowFlight); this.setResourcePack(dedicatedserverproperties.resourcePack, this.ba()); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index e7818d40d9cac682eb28fadf319d08f8ca88e89d..605b7477dfce17c5d9752fd48a71098739e3f4c2 100644 +index 82aa5f67ee8ca038094ca922a279d90d78bdac2d..d22e7a502dfc4839e742aa874898292c614b137d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -303,7 +303,7 @@ public class Main { diff --git a/patches/server/0025-Fix-lead-fall-dmg-config.patch b/patches/server/0025-Fix-lead-fall-dmg-config.patch index fad5fb2e..c7c56659 100644 --- a/patches/server/0025-Fix-lead-fall-dmg-config.patch +++ b/patches/server/0025-Fix-lead-fall-dmg-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix lead fall dmg config diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index eed59fe862ba8a6a746c396acd901b3c7f6efab0..29a503fdf7cd4d312d812055bd4aecd23a921925 100644 +index 69e4b0b8aac9ed7c000edc54ce9cf35255cb2946..dc131513400bf87aa53ac3f1439b0b0086a2859b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -1301,6 +1301,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/patches/server/0034-Stop-wasting-resources-on-JsonList-get.patch b/patches/server/0034-Stop-wasting-resources-on-JsonList-get.patch index 7004af21..c596dcc0 100644 --- a/patches/server/0034-Stop-wasting-resources-on-JsonList-get.patch +++ b/patches/server/0034-Stop-wasting-resources-on-JsonList-get.patch @@ -55,7 +55,7 @@ index 4094ef76b7b05de1bfcc28aa0ef13033abadeb7e..0224a6d0e47e836fa485b39e7b4ce5b8 Throwable throwable = null; diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 67f17d5de8affec750c6c861db48ec4d1558b58b..0fa95fa3a18c4f0e47c2becd01cf236a3acb4e82 100644 +index 99a67a46bf060aa186a64b4d0608fc60ede609e4..5ef0678c07b04f4b041b3a263d335fb44a14b945 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -647,6 +647,7 @@ public abstract class PlayerList { diff --git a/patches/server/0037-Respect-PlayerKickEvent-leaveMessage.patch b/patches/server/0037-Respect-PlayerKickEvent-leaveMessage.patch index 5c4d9d51..41da351c 100644 --- a/patches/server/0037-Respect-PlayerKickEvent-leaveMessage.patch +++ b/patches/server/0037-Respect-PlayerKickEvent-leaveMessage.patch @@ -39,7 +39,7 @@ index 9d058ddf875e660cb3bd5209e5ddbf1a7abbd04c..63bceb9f1695ce4db5b932ca627d9445 this.minecraftServer.getPlayerList().sendMessage(CraftChatMessage.fromString(quitMessage)); } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 0fa95fa3a18c4f0e47c2becd01cf236a3acb4e82..6a0634322e4b86db2e33cef94c533dfee22e3244 100644 +index 5ef0678c07b04f4b041b3a263d335fb44a14b945..5afc424481106570b84a9b38c94fe397f1aff636 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -499,6 +499,11 @@ public abstract class PlayerList { diff --git a/patches/server/0044-Add-IntelliJ-IDEA-runnable.patch b/patches/server/0043-Add-IntelliJ-IDEA-runnable.patch similarity index 100% rename from patches/server/0044-Add-IntelliJ-IDEA-runnable.patch rename to patches/server/0043-Add-IntelliJ-IDEA-runnable.patch diff --git a/patches/server/0043-Add-StructureLocateEvent.patch b/patches/server/0043-Add-StructureLocateEvent.patch deleted file mode 100644 index a1ce9cd8..00000000 --- a/patches/server/0043-Add-StructureLocateEvent.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: dfsek -Date: Wed, 16 Sep 2020 01:12:29 -0700 -Subject: [PATCH] Add StructureLocateEvent - - -diff --git a/src/main/java/net/minecraft/server/ChunkGenerator.java b/src/main/java/net/minecraft/server/ChunkGenerator.java -index 9a6fef215052f9c513b23024968995c97863a453..16a477f2a99a5c8d68f0d1468d4cd79650a5a05d 100644 ---- a/src/main/java/net/minecraft/server/ChunkGenerator.java -+++ b/src/main/java/net/minecraft/server/ChunkGenerator.java -@@ -124,9 +124,27 @@ public abstract class ChunkGenerator { - - @Nullable - public BlockPosition findNearestMapFeature(WorldServer worldserver, StructureGenerator structuregenerator, BlockPosition blockposition, int i, boolean flag) { -- if (!this.b.a(structuregenerator)) { -+ // Paper start -+ org.bukkit.World world = worldserver.getWorld(); -+ org.bukkit.Location originLocation = new org.bukkit.Location(world, blockposition.getX(), blockposition.getY(), blockposition.getZ()); -+ org.bukkit.event.world.StructureLocateEvent event = new org.bukkit.event.world.StructureLocateEvent(world, originLocation, org.bukkit.StructureType.getStructureTypes().get(structuregenerator.i()), i, flag); -+ if(!event.callEvent()) return null; -+ // If event call set a final location, skip structure finding and just return set result. -+ org.bukkit.Location finalLocation = event.getResult(); -+ if(finalLocation != null) { -+ return new BlockPosition(finalLocation.getBlockX(), finalLocation.getBlockY(), finalLocation.getBlockZ()); -+ } -+ // Get origin location (re)defined by event call. -+ org.bukkit.Location newOriginLocation = event.getOrigin(); -+ BlockPosition newOriginPosition = new BlockPosition(newOriginLocation.getBlockX(), newOriginLocation.getBlockY(), newOriginLocation.getBlockZ()); -+ // Get radius and whether to find unexplored structures (re)defined by event call. -+ int radius = event.getRadius(); -+ boolean findUnexplored = event.shouldFindUnexplored(); -+ StructureGenerator newGenerator = StructureGenerator.a.get(event.getType().getName()); -+ // Paper end -+ if(! this.b.a(newGenerator)) { // Paper - return null; -- } else if (structuregenerator == StructureGenerator.STRONGHOLD) { -+ } else if (newGenerator == StructureGenerator.STRONGHOLD) { // Paper - this.g(); - BlockPosition blockposition1 = null; - double d0 = Double.MAX_VALUE; -@@ -137,7 +155,7 @@ public abstract class ChunkGenerator { - ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair) iterator.next(); - - blockposition_mutableblockposition.d((chunkcoordintpair.x << 4) + 8, 32, (chunkcoordintpair.z << 4) + 8); -- double d1 = blockposition_mutableblockposition.j(blockposition); -+ double d1 = blockposition_mutableblockposition.j(newOriginPosition); // Paper - - if (blockposition1 == null) { - blockposition1 = new BlockPosition(blockposition_mutableblockposition); -@@ -151,9 +169,9 @@ public abstract class ChunkGenerator { - return blockposition1; - } else { - updateStructureSettings(worldserver, structureSettings); // Spigot -- StructureSettingsFeature structuresettingsfeature = this.structureSettings.a(structuregenerator); -+ StructureSettingsFeature structuresettingsfeature = this.structureSettings.a(newGenerator); // Paper - -- return structuresettingsfeature == null ? null : structuregenerator.getNearestGeneratedFeature(worldserver, worldserver.getStructureManager(), blockposition, i, flag, worldserver.getSeed(), structuresettingsfeature); -+ return structuresettingsfeature == null ? null : newGenerator.getNearestGeneratedFeature(worldserver, worldserver.getStructureManager(), newOriginPosition, radius, findUnexplored, worldserver.getSeed(), structuresettingsfeature); // Paper - } - } - diff --git a/patches/server/0045-Fix-IndexOutOfBoundsException-when-sending-too-many-.patch b/patches/server/0044-Fix-IndexOutOfBoundsException-when-sending-too-many-.patch similarity index 100% rename from patches/server/0045-Fix-IndexOutOfBoundsException-when-sending-too-many-.patch rename to patches/server/0044-Fix-IndexOutOfBoundsException-when-sending-too-many-.patch diff --git a/patches/server/0046-Add-nspt-command.patch b/patches/server/0045-Add-nspt-command.patch similarity index 98% rename from patches/server/0046-Add-nspt-command.patch rename to patches/server/0045-Add-nspt-command.patch index c88802fa..48092bfe 100644 --- a/patches/server/0046-Add-nspt-command.patch +++ b/patches/server/0045-Add-nspt-command.patch @@ -17,7 +17,7 @@ index 64b662dc9146d0d414a9668d9b93e07aa6665f32..2473eb88ec7be3f4935debe04eeabcc0 de.minebench.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings")); this.setPVP(dedicatedserverproperties.pvp); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 40aaa7c1fe0bf0a5031d5e1e15035a40cfedaa34..201d84401114864ab2f9665bda3fe09c30cc7107 100644 +index d5d32012687355ba8c0c048bbf2f14a62bcb8b62..0355cfd79e0a235f4e227dbeea1cff1ad9b877cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -921,6 +921,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0047-Configurable-flight-checks.patch b/patches/server/0046-Configurable-flight-checks.patch similarity index 100% rename from patches/server/0047-Configurable-flight-checks.patch rename to patches/server/0046-Configurable-flight-checks.patch diff --git a/patches/server/0048-Heavily-optimize-recipe-lookups-in-CraftingManager.patch b/patches/server/0047-Heavily-optimize-recipe-lookups-in-CraftingManager.patch similarity index 100% rename from patches/server/0048-Heavily-optimize-recipe-lookups-in-CraftingManager.patch rename to patches/server/0047-Heavily-optimize-recipe-lookups-in-CraftingManager.patch diff --git a/patches/server/0049-Improve-task-performance.patch b/patches/server/0048-Improve-task-performance.patch similarity index 100% rename from patches/server/0049-Improve-task-performance.patch rename to patches/server/0048-Improve-task-performance.patch diff --git a/patches/server/0050-Optimize-advancement-loading.patch b/patches/server/0049-Optimize-advancement-loading.patch similarity index 100% rename from patches/server/0050-Optimize-advancement-loading.patch rename to patches/server/0049-Optimize-advancement-loading.patch diff --git a/patches/server/0051-lithium-PerlinNoiseSamplerMixin.patch b/patches/server/0050-lithium-PerlinNoiseSamplerMixin.patch similarity index 100% rename from patches/server/0051-lithium-PerlinNoiseSamplerMixin.patch rename to patches/server/0050-lithium-PerlinNoiseSamplerMixin.patch diff --git a/patches/server/0052-lithium-VoronoiBiomeAccessTypeMixin.patch b/patches/server/0051-lithium-VoronoiBiomeAccessTypeMixin.patch similarity index 100% rename from patches/server/0052-lithium-VoronoiBiomeAccessTypeMixin.patch rename to patches/server/0051-lithium-VoronoiBiomeAccessTypeMixin.patch diff --git a/patches/server/0053-lithium-NoiseChunkGeneratorMixin.patch b/patches/server/0052-lithium-NoiseChunkGeneratorMixin.patch similarity index 100% rename from patches/server/0053-lithium-NoiseChunkGeneratorMixin.patch rename to patches/server/0052-lithium-NoiseChunkGeneratorMixin.patch diff --git a/patches/server/0054-lithium-reduce-allocations.patch b/patches/server/0053-lithium-reduce-allocations.patch similarity index 100% rename from patches/server/0054-lithium-reduce-allocations.patch rename to patches/server/0053-lithium-reduce-allocations.patch diff --git a/patches/server/0055-Smarter-statistics-ticking.patch b/patches/server/0054-Smarter-statistics-ticking.patch similarity index 100% rename from patches/server/0055-Smarter-statistics-ticking.patch rename to patches/server/0054-Smarter-statistics-ticking.patch diff --git a/patches/server/0056-Configurable-criterion-triggers.patch b/patches/server/0055-Configurable-criterion-triggers.patch similarity index 100% rename from patches/server/0056-Configurable-criterion-triggers.patch rename to patches/server/0055-Configurable-criterion-triggers.patch diff --git a/patches/server/0057-Configurable-BlockPhysicsEvent.patch b/patches/server/0056-Configurable-BlockPhysicsEvent.patch similarity index 100% rename from patches/server/0057-Configurable-BlockPhysicsEvent.patch rename to patches/server/0056-Configurable-BlockPhysicsEvent.patch diff --git a/patches/server/0058-Infinity-No-Arrows.patch b/patches/server/0057-Infinity-No-Arrows.patch similarity index 100% rename from patches/server/0058-Infinity-No-Arrows.patch rename to patches/server/0057-Infinity-No-Arrows.patch diff --git a/patches/server/0059-Custom-Locale-Support.patch b/patches/server/0058-Custom-Locale-Support.patch similarity index 100% rename from patches/server/0059-Custom-Locale-Support.patch rename to patches/server/0058-Custom-Locale-Support.patch diff --git a/patches/server/0060-Configurable-movement-checks.patch b/patches/server/0059-Configurable-movement-checks.patch similarity index 100% rename from patches/server/0060-Configurable-movement-checks.patch rename to patches/server/0059-Configurable-movement-checks.patch diff --git a/patches/server/0061-Configurable-enchanting-table-tick.patch b/patches/server/0060-Configurable-enchanting-table-tick.patch similarity index 100% rename from patches/server/0061-Configurable-enchanting-table-tick.patch rename to patches/server/0060-Configurable-enchanting-table-tick.patch diff --git a/patches/server/0062-Do-not-update-distance-map-when-animal-and-mob-spawn.patch b/patches/server/0061-Do-not-update-distance-map-when-animal-and-mob-spawn.patch similarity index 100% rename from patches/server/0062-Do-not-update-distance-map-when-animal-and-mob-spawn.patch rename to patches/server/0061-Do-not-update-distance-map-when-animal-and-mob-spawn.patch diff --git a/patches/server/0063-Add-a-special-case-for-floodgate-and-offline-uuids.patch b/patches/server/0062-Add-a-special-case-for-floodgate-and-offline-uuids.patch similarity index 100% rename from patches/server/0063-Add-a-special-case-for-floodgate-and-offline-uuids.patch rename to patches/server/0062-Add-a-special-case-for-floodgate-and-offline-uuids.patch diff --git a/patches/server/0064-PaperPR-Fix-username-connecting-with-no-texture-bein.patch b/patches/server/0063-PaperPR-Fix-username-connecting-with-no-texture-bein.patch similarity index 100% rename from patches/server/0064-PaperPR-Fix-username-connecting-with-no-texture-bein.patch rename to patches/server/0063-PaperPR-Fix-username-connecting-with-no-texture-bein.patch diff --git a/patches/server/0065-Optimised-hallowen-checker.patch b/patches/server/0064-Optimised-hallowen-checker.patch similarity index 100% rename from patches/server/0065-Optimised-hallowen-checker.patch rename to patches/server/0064-Optimised-hallowen-checker.patch diff --git a/patches/server/0066-Smol-entity-optimisations.patch b/patches/server/0065-Smol-entity-optimisations.patch similarity index 100% rename from patches/server/0066-Smol-entity-optimisations.patch rename to patches/server/0065-Smol-entity-optimisations.patch