diff --git a/gradle.properties b/gradle.properties index c205e979f..95ff3fc57 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.1-R0.1-SNAPSHOT mcVersion = 1.20.1 -paperCommit = e8bec64217064476784a5c65a5060cfc0145fa98 +paperCommit = fead63e2eac3e11c900e68d468d51eb5ef091059 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0005-Purpur-client-support.patch b/patches/api/0005-Purpur-client-support.patch index f56faeb1a..bae65ccae 100644 --- a/patches/api/0005-Purpur-client-support.patch +++ b/patches/api/0005-Purpur-client-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 06f00d016f1e46edb8f4fe0c14eb8b364900c3ef..d5b3e7aa3182ea9efc7e5ab68b37da76528c7a54 100644 +index 0b4f9dee48f8d49977dc9a5f104ee062ca2cbfae..82b91f7c5c853d467d64d2c7ec1c61296b4ccd4a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3117,4 +3117,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3121,4 +3121,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0010-AFK-API.patch b/patches/api/0010-AFK-API.patch index f893064bb..9a2c3d29e 100644 --- a/patches/api/0010-AFK-API.patch +++ b/patches/api/0010-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d5b3e7aa3182ea9efc7e5ab68b37da76528c7a54..8dd2560b643097f1b071f8a47827b88c68481d80 100644 +index 82b91f7c5c853d467d64d2c7ec1c61296b4ccd4a..c78517538d9ec1706f90e25fc20af06bc9b2679a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3125,5 +3125,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3129,5 +3129,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return True if Player uses Purpur Client */ public boolean usesPurpurClient(); diff --git a/patches/api/0016-Player-invulnerabilities.patch b/patches/api/0016-Player-invulnerabilities.patch index 49bf52384..5547dacfe 100644 --- a/patches/api/0016-Player-invulnerabilities.patch +++ b/patches/api/0016-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8dd2560b643097f1b071f8a47827b88c68481d80..e97435f6f4686f443509990ed240164362af499d 100644 +index c78517538d9ec1706f90e25fc20af06bc9b2679a..4a0b01b068a32e00d1244bfabde202330218b237 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3144,5 +3144,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3148,5 +3148,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/api/0045-Debug-Marker-API.patch b/patches/api/0045-Debug-Marker-API.patch index 6a68af3ae..60481185c 100644 --- a/patches/api/0045-Debug-Marker-API.patch +++ b/patches/api/0045-Debug-Marker-API.patch @@ -260,10 +260,10 @@ index 1fba792419ea6b5e8c640a2599e4b2dd16ee87d0..bf39c6602cfca70a6352519fa26059cd /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e97435f6f4686f443509990ed240164362af499d..1596666b4db8b1a88ab722685360b91388d1817e 100644 +index 4a0b01b068a32e00d1244bfabde202330218b237..3dd1cde47e7d3ed0cb5b6c06c071a827b4175359 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3165,5 +3165,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3169,5 +3169,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param invulnerableTicks Invulnerable ticks remaining */ void setSpawnInvulnerableTicks(int invulnerableTicks); diff --git a/patches/api/0046-Add-death-screen-API.patch b/patches/api/0046-Add-death-screen-API.patch index c9a769580..08bf35f51 100644 --- a/patches/api/0046-Add-death-screen-API.patch +++ b/patches/api/0046-Add-death-screen-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1596666b4db8b1a88ab722685360b91388d1817e..c6a8068fc9c2a2b9b53363578c2c57abc4f8abb2 100644 +index 3dd1cde47e7d3ed0cb5b6c06c071a827b4175359..5b0035bf5edf15a5ee4528d0933f78d9d586fa2f 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3235,5 +3235,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3239,5 +3239,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Clears all debug block highlights */ void clearBlockHighlights(); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index b3cfcf9ca..f97f1aa11 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -616,10 +616,10 @@ index 0000000000000000000000000000000000000000..020368da69b9a492155f6de6297f7473 +} diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..0dd3374468e05f7a312ba5856b9cf8a4787dfa59 +index 0000000000000000000000000000000000000000..95d1a8a5b349f7849c040026bfa3469d03d92bfd --- /dev/null +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -@@ -0,0 +1,293 @@ +@@ -0,0 +1,295 @@ +package gg.pufferfish.pufferfish; + +import gg.pufferfish.pufferfish.simd.SIMDDetection; @@ -906,9 +906,11 @@ index 0000000000000000000000000000000000000000..0dd3374468e05f7a312ba5856b9cf8a4 + + public static boolean disableMethodProfiler; + public static boolean disableOutOfOrderChat; ++ public static boolean suppressNullIdDisconnections; + private static void miscSettings() { + disableMethodProfiler = getBoolean("misc.disable-method-profiler", true); + disableOutOfOrderChat = getBoolean("misc.disable-out-of-order-chat", false); ++ suppressNullIdDisconnections = getBoolean("misc.suppress-null-id-disconnections", false); + setComment("misc", "Settings for things that don't belong elsewhere"); + } + @@ -1467,7 +1469,7 @@ index 2d11a67bdc82088abf0b3ca134f352f155c8eb1f..8bd24c8eef3169a765d42a6769034460 public static long getCoordinateKey(final ChunkPos pair) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 912affb0ab1c4c40f7a655194e95ec6f0ebf1fcd..7f391d66796952e8af6b29b71cf3a91641aeacea 100644 +index 3238cbcba567b1242c77e41f6b6f19a8d157fb4e..7ca6c81afc99d42d2f39b4b6d7f5e8a18b58fba3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,6 +311,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1691,7 +1693,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop chunkConsumer) { diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 6670e657e08e130f7e0368f418379fd1ece00cdf..4c5f90fdb534d8aeb7dd077a13b1ebed016e4947 100644 +index acaf9f392660d618472aea7bce967d374eb5d549..4c5f90fdb534d8aeb7dd077a13b1ebed016e4947 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -108,7 +108,7 @@ public class ServerEntity { - - Entity entity = this.entity; - -- if (entity instanceof ItemFrame) { -+ if (!this.trackedPlayers.isEmpty() && entity instanceof ItemFrame) { // Paper - Only tick item frames if players can see it - ItemFrame entityitemframe = (ItemFrame) entity; - - if (true || this.tickCount % 10 == 0) { // CraftBukkit - Moved below, should always enter this block @@ -180,7 +180,8 @@ public class ServerEntity { long i1 = this.positionCodec.encodeZ(vec3d); boolean flag6 = k < -32768L || k > 32767L || l < -32768L || l > 32767L || i1 < -32768L || i1 > 32767L; @@ -1817,6 +1810,18 @@ index 2a609e43370e68943c580083f7f7d8c9b0972955..309a3e42ec48a1a7684b62ea372bfa98 Instant instant1; do { +diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +index 2ff578e4a953ffcf5176815ba8e3f06f73499989..878001928327d92423d5f7f6d5ce8772d6fa477f 100644 +--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +@@ -204,6 +204,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + + @Override + public void onDisconnect(Component reason) { ++ if (gg.pufferfish.pufferfish.PufferfishConfig.suppressNullIdDisconnections && this.gameProfile != null && this.gameProfile.getId() == null && "Disconnected".equals(reason.getString())) return; // Pufferfish + ServerLoginPacketListenerImpl.LOGGER.info("{} lost connection: {}", this.getUserName(), reason.getString()); + } + diff --git a/src/main/java/net/minecraft/world/CompoundContainer.java b/src/main/java/net/minecraft/world/CompoundContainer.java index 241fec02e6869c638d3a160819b32173a081467b..6a8f9e8f5bf108674c47018def28906e2d0a729c 100644 --- a/src/main/java/net/minecraft/world/CompoundContainer.java @@ -1930,7 +1935,7 @@ index 04b1531572e8fff1e46fe1c94e7fc863841e0f66..47ddc42f2b63d9d3fae5ae6ea93d4183 int LARGE_MAX_STACK_SIZE = 64; int DEFAULT_DISTANCE_LIMIT = 8; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 513c34aa02d63f7e3c178eade818e156af4541db..1aa184cf7a97364d7b9e4d628c0a6c1dc769ba6e 100644 +index 6abaf7ef99800a238b29dbbb85de8c970c0806a7..e4beab69b116874baf29cfbbad6b9cd102ad92c4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -306,7 +306,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index c6591aee7..cde5ceed3 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -177,7 +177,7 @@ index abe37c7c3c6f5ab73afd738ec78f06d7e4d2ed96..b5b6657e52e4f7a630229bd3ba433438 stringbuilder.append(CrashReport.getErrorComment()); stringbuilder.append("\n\n"); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7f391d66796952e8af6b29b71cf3a91641aeacea..7d66cdd30b85b457083220ac3ed05cac605cb959 100644 +index 7ca6c81afc99d42d2f39b4b6d7f5e8a18b58fba3..34737c730d724d4be67d480587a17792fd3a11f0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -923,7 +923,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { Map> map = new HashMap<>(); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 22884a2b148b9a5af8655bb754ebe73618218a83..4d9a796422ab595acc8b0158cf9dcd5b1d0c9a75 100644 +index 0de2eae2d448ac9e269a4edf48406d5ea8af8059..f03fd95412883a3a5bbe2b91c603874bf147e6cb 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -330,6 +330,30 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy +@@ -336,6 +336,30 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy } } diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index 30a94421e..6952ed393 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -22,10 +22,10 @@ index 83cab746d1d6fe25c043c8aee28c39412b90c127..ec6b58dae525c81bbb1c0e2d96fbded6 super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7d66cdd30b85b457083220ac3ed05cac605cb959..1b07b0834834ac532636ba2cd151ab153fcd2b5e 100644 +index 34737c730d724d4be67d480587a17792fd3a11f0..da825e7667032cb656585367bf4b96bc18f57aa6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1538,6 +1538,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper @@ -46,7 +46,7 @@ index dbb59969cf55eda997588f4c3ef7dc899ea619bb..4c3b5a26a6b04afff3a707929ced3c62 final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 41698264b3155f20f7a7d473a43aa2dab7ca61bb..77c38ea427dac0176941f8bc26ebe540c0dd4c02 100644 +index a0577dcae567230c12b52ed02072745513c7a4d5..23235b98907ff26afb22d37326b072ba56728ddd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -751,6 +751,15 @@ public class ServerPlayer extends Player { @@ -79,7 +79,7 @@ index 9c5a1d58acd782658a5239b324806e0ca2f969e3..3c1afd3fc37ad0540beb07798f8ecf0c if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4096eb61cbc70679ba15215c725b3262f428c03d..18f8fdc2ab2c27efcf01be3869072159e91ade4d 100644 +index 3caebf722bf8ebadf49da7c36170e245600ea7b5..25c190ac148ccc37904346cca859ba10f17c878c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -376,7 +376,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -120,7 +120,7 @@ index 4096eb61cbc70679ba15215c725b3262f428c03d..18f8fdc2ab2c27efcf01be3869072159 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4905,4 +4920,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4906,4 +4921,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -5226,7 +5226,7 @@ index fc0dc8e607cc24020106ea1af92b4421a5f9393d..7d744d5b6a9e593e657233b2192f2837 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 621b6a1cacb17fff578855cf2dab8142a5f321ed..420ba2f8adcf15a32598c39c88439a4bd55c89fc 100644 +index c1583340ecaedab0af44501213b2d24f8ad71e0c..58d4b678daa94d3f5da0589b41129ca8a3c7f851 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -560,6 +560,15 @@ public class CraftEventFactory { diff --git a/patches/server/0014-Configurable-server-mod-name.patch b/patches/server/0014-Configurable-server-mod-name.patch index 4e2fd49b2..f13a6529e 100644 --- a/patches/server/0014-Configurable-server-mod-name.patch +++ b/patches/server/0014-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1b07b0834834ac532636ba2cd151ab153fcd2b5e..a2b85017236f95b97d5d8017b0ff52db7537f090 100644 +index da825e7667032cb656585367bf4b96bc18f57aa6..80c085498d9b61bae2e06df873c1ad66cc7d8ae5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1694,7 +1694,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 625cee30e80123d502851bbfb30c89903c2d0fbb..5aaf8ffac3695f090b739d3f05847a37b58140b5 100644 +index cc9b15d907b2035cd12de7fcc7f9f5317a7eac17..d31fd0ab9d0d206ba3628d6671686007e2ae4f59 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1875,7 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -30,7 +30,7 @@ index 625cee30e80123d502851bbfb30c89903c2d0fbb..5aaf8ffac3695f090b739d3f05847a37 if (entity instanceof Boat) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 9eb196ee4061bb4c5713f33e8b16d91ec52711cd..ffb3ae1d36dda5f521cf3b292d819cb354844806 100644 +index 76222084727c269d376d0df5702204c0bdf59d81..b48a3d318a14889c68a1de5c1997b1090aab4029 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -99,10 +99,12 @@ public class ArmorStand extends LivingEntity { @@ -46,7 +46,7 @@ index 9eb196ee4061bb4c5713f33e8b16d91ec52711cd..ffb3ae1d36dda5f521cf3b292d819cb3 this.handItems = NonNullList.withSize(2, ItemStack.EMPTY); this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY); this.headPose = ArmorStand.DEFAULT_HEAD_POSE; -@@ -1006,4 +1008,18 @@ public class ArmorStand extends LivingEntity { +@@ -1017,4 +1019,18 @@ public class ArmorStand extends LivingEntity { } // Paper end // Paper end diff --git a/patches/server/0161-Gamemode-extra-permissions.patch b/patches/server/0161-Gamemode-extra-permissions.patch index bf99a9413..9dd942f72 100644 --- a/patches/server/0161-Gamemode-extra-permissions.patch +++ b/patches/server/0161-Gamemode-extra-permissions.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Gamemode extra permissions diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 4d9a796422ab595acc8b0158cf9dcd5b1d0c9a75..5737fe8c23b46b37cea86524613dd3c32f4ca9cf 100644 +index f03fd95412883a3a5bbe2b91c603874bf147e6cb..431ad4151023a9fc8549fbd485018457b7efa2e0 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -221,6 +221,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy +@@ -227,6 +227,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy } // CraftBukkit end @@ -75,7 +75,7 @@ index 55695044da8363c8da040d922fa033c917f341d0..0617b9e067ce6a42209e1c4735b7a491 DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands); DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 606b5842888a0089103a36367664533fbfedd8f9..dd741a961e3cfdbe81aa087ef983d1fb4dc94cc2 100644 +index 3fd5c979e8f416146b2649a52076cca1f62694e3..afae2931a7371037d192135b0d279e756640056f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -233,6 +233,7 @@ public class PurpurConfig { diff --git a/patches/server/0173-Config-for-unverified-username-message.patch b/patches/server/0173-Config-for-unverified-username-message.patch index 7f90de311..a50199c24 100644 --- a/patches/server/0173-Config-for-unverified-username-message.patch +++ b/patches/server/0173-Config-for-unverified-username-message.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for unverified username message diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 2ff578e4a953ffcf5176815ba8e3f06f73499989..af3ef12851cbfca13ad3316214bd53f2359e2078 100644 +index 878001928327d92423d5f7f6d5ce8772d6fa477f..b4b88a3d4dc66c44ca8f3bad1025c17a9993ac1d 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -339,7 +339,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -340,7 +340,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, ServerLoginPacketListenerImpl.this.gameProfile = gameprofile; ServerLoginPacketListenerImpl.this.state = ServerLoginPacketListenerImpl.State.READY_TO_ACCEPT; } else { @@ -18,7 +18,7 @@ index 2ff578e4a953ffcf5176815ba8e3f06f73499989..af3ef12851cbfca13ad3316214bd53f2 } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index f3ddb65684a2cf7776c6e0137cb7acc7f36eb493..3e3a1e859e78d295388706d175dded5dbc41336e 100644 +index 3a328537042c3db3cb540b3d0c07a4ea1053f22d..968655055d534f35169dea50d540245e1b1c37cc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -184,6 +184,7 @@ public class PurpurConfig { diff --git a/patches/server/0222-UPnP-Port-Forwarding.patch b/patches/server/0222-UPnP-Port-Forwarding.patch index fb79b2ee2..585f91bbd 100644 --- a/patches/server/0222-UPnP-Port-Forwarding.patch +++ b/patches/server/0222-UPnP-Port-Forwarding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ee822fadef35f45effa08c552b35a274599f11ce..922373558de4ee1492335711c07494a59227b626 100644 +index 7d3ef7134a30a646f17978aee2b61a11e14b53b6..7746e968094f3238b8cb76062ae40a8b0363c5b9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -309,6 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop level.getAllEntities().forEach(entity -> { -@@ -1520,21 +1520,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { +@@ -1522,21 +1522,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur @@ -192,7 +192,7 @@ index 3a8eeacc042f5af41c6c87169a50009b72045150..b1bbe7bb30ae786ea09ef0e9d949ed04 try { //worldserver.timings.doTick.startTiming(); // Spigot // Purpur -@@ -1602,17 +1602,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.executeBlocking(() -> { this.saveDebugReport(path.resolve("server")); -@@ -2548,40 +2548,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 1 && packet.getSlotNum() <= 45; boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 4142820c3053d77d4ae7186fec968d624f893056..7a02cecaaef511c0db4708a1ce9eb885c1cfe028 100644 +index 14d7a9eca55160290644bbf840665a94441ca4b4..ef338c778a483355ff59d1f36ce2ccb85b93ae93 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -549,4 +549,9 @@ public class PurpurConfig { +@@ -547,4 +547,9 @@ public class PurpurConfig { } }); } diff --git a/patches/server/0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch index 6f4141cd3..d0e18d8f3 100644 --- a/patches/server/0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch +++ b/patches/server/0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch @@ -104,10 +104,10 @@ index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..15d8e9261a89da30529ac347462c5209 if (context.hasParam(LootContextParams.LOOTING_MOD)) { i = context.getParamOrNull(LootContextParams.LOOTING_MOD); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 7a02cecaaef511c0db4708a1ce9eb885c1cfe028..af875d966081b6e9f0d6a2680cff7f843c8dea05 100644 +index ef338c778a483355ff59d1f36ce2ccb85b93ae93..736768330a0c45051a20a039d4de35cb260e7611 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -554,4 +554,9 @@ public class PurpurConfig { +@@ -552,4 +552,9 @@ public class PurpurConfig { private static void fixNetworkSerializedCreativeItems() { fixNetworkSerializedItemsInCreative = getBoolean("settings.fix-network-serialized-items-in-creative", fixNetworkSerializedItemsInCreative); } diff --git a/patches/server/0285-Configurable-block-blast-resistance.patch b/patches/server/0285-Configurable-block-blast-resistance.patch index e6748663a..38cb41a11 100644 --- a/patches/server/0285-Configurable-block-blast-resistance.patch +++ b/patches/server/0285-Configurable-block-blast-resistance.patch @@ -44,10 +44,10 @@ index ec6c63075306f9e5389e83641d2c8a82369ddc6b..0f16deddd8cbb506ef7886f57ae640a4 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index af875d966081b6e9f0d6a2680cff7f843c8dea05..8972bbbaca23f771fb5e10ee4099a420a0ec3ccd 100644 +index 736768330a0c45051a20a039d4de35cb260e7611..a3ffc1b8bd8f471c088d1d8256d67a6e2048b065 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -559,4 +559,19 @@ public class PurpurConfig { +@@ -557,4 +557,19 @@ public class PurpurConfig { private static void fixProjectileLootingTransfer() { fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer); } diff --git a/patches/server/0286-Configurable-block-fall-damage-modifiers.patch b/patches/server/0286-Configurable-block-fall-damage-modifiers.patch index f05a40693..e298367ae 100644 --- a/patches/server/0286-Configurable-block-fall-damage-modifiers.patch +++ b/patches/server/0286-Configurable-block-fall-damage-modifiers.patch @@ -54,10 +54,10 @@ index cfbe1dae76db76cf54a4f5d72aca72d5e893859e..74cb10230d459ac9f300a9d59af504d2 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8972bbbaca23f771fb5e10ee4099a420a0ec3ccd..290a66b51dc6b86b006b577754d1030def288cf7 100644 +index a3ffc1b8bd8f471c088d1d8256d67a6e2048b065..ac85d0b2a836d44ebadd50b3c80de95a85ff7f61 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -574,4 +574,50 @@ public class PurpurConfig { +@@ -572,4 +572,50 @@ public class PurpurConfig { block.explosionResistance = blastResistance.floatValue(); }); } diff --git a/patches/server/0290-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0290-Add-log-suppression-for-LibraryLoader.patch index f988ca219..2a800074c 100644 --- a/patches/server/0290-Add-log-suppression-for-LibraryLoader.patch +++ b/patches/server/0290-Add-log-suppression-for-LibraryLoader.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add log suppression for LibraryLoader diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 290a66b51dc6b86b006b577754d1030def288cf7..c3878aed434bdf490cbaf45064fa5a6c5814476f 100644 +index ac85d0b2a836d44ebadd50b3c80de95a85ff7f61..96d21b8600b31b955dcc47823688425a5b1ec624 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -470,11 +470,14 @@ public class PurpurConfig { +@@ -468,11 +468,14 @@ public class PurpurConfig { public static boolean loggerSuppressIgnoredAdvancementWarnings = false; public static boolean loggerSuppressUnrecognizedRecipeErrors = false; public static boolean loggerSuppressSetBlockFarChunk = false; diff --git a/patches/server/0298-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0298-Add-attribute-clamping-and-armor-limit-config.patch index 1d2614913..d12700fc4 100644 --- a/patches/server/0298-Add-attribute-clamping-and-armor-limit-config.patch +++ b/patches/server/0298-Add-attribute-clamping-and-armor-limit-config.patch @@ -36,10 +36,10 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c3878aed434bdf490cbaf45064fa5a6c5814476f..06fa43b469aea15dc64ce1866d08843327a34965 100644 +index 96d21b8600b31b955dcc47823688425a5b1ec624..b974b59d421cf97bc9547ea75fe4643d89639bc1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -563,6 +563,16 @@ public class PurpurConfig { +@@ -561,6 +561,16 @@ public class PurpurConfig { fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer); }