From ceb127eaec98e638a36417d88e439dcd97716db4 Mon Sep 17 00:00:00 2001 From: granny Date: Tue, 7 Jan 2025 17:52:15 -0800 Subject: [PATCH] fix compilation issues --- .../features/0001-Ridables.patch | 10 ++--- .../0003-Barrels-and-enderchests-6-rows.patch | 42 +++++++++---------- ...urable-void-damage-height-and-damage.patch | 6 +-- .../framework/GameTestHelper.java.patch | 11 +++++ .../ServerGamePacketListenerImpl.java.patch | 6 +-- .../targeting/TargetingConditions.java.patch | 2 +- .../world/inventory/AnvilMenu.java.patch | 4 +- .../0003-Barrels-and-enderchests-6-rows.patch | 6 +-- .../craftbukkit/entity/CraftLlama.java.patch | 4 +- 9 files changed, 51 insertions(+), 40 deletions(-) create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/gametest/framework/GameTestHelper.java.patch diff --git a/purpur-server/minecraft-patches/features/0001-Ridables.patch b/purpur-server/minecraft-patches/features/0001-Ridables.patch index 2a4c4bf74..cabf5244a 100644 --- a/purpur-server/minecraft-patches/features/0001-Ridables.patch +++ b/purpur-server/minecraft-patches/features/0001-Ridables.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Ridables diff --git a/net/minecraft/gametest/framework/GameTestHelper.java b/net/minecraft/gametest/framework/GameTestHelper.java -index fe4ae6bcdcbb55c47e9f9a4d63ead4c39e6d63cf..bf368ba3eecb6131dd23c1fcabf61f439ee6fdb5 100644 +index 29d402620d2e1cbed94f941f933ae8eb5d786e7f..ec0998369158286fccb38c8e10c3cfa2a653a8aa 100644 --- a/net/minecraft/gametest/framework/GameTestHelper.java +++ b/net/minecraft/gametest/framework/GameTestHelper.java -@@ -279,6 +279,8 @@ public class GameTestHelper { - return gameType.isCreative(); - } +@@ -281,6 +281,8 @@ public class GameTestHelper { + + public void setAfk(final boolean afk) {} // Purpur - AFK API + public void resetLastActionTime() {} // Purpur - Ridables + @@ -62,7 +62,7 @@ index f8a31e8b2f917e9d00827dc98bfb766be1f9f85a..041019ff63f7f437c140ea354f84e49b private void updatePlayerAttributes() { diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2a8e90005efe88cbff727e64687df69d0c9ac4e6..ab651a0612320bbccce396652c1cf6db7ee2ae03 100644 +index 7cb8b2f113be88c7df834f3dcdb304bfcd73d92e..685068a1f633266371cf4f292f05761e903ecc7b 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2795,6 +2795,8 @@ public class ServerGamePacketListenerImpl diff --git a/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch b/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch index ae5637a33..e98e27b20 100644 --- a/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch +++ b/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch @@ -13,7 +13,7 @@ index e693c5ef414dd77b684d0a393444a5d28b975bfd..d12896bb6f23bfdb1d22e1ecadd23c01 this.server.getCommands().sendCommands(player); } // Paper - Add sendOpLevel API + -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + if (org.purpurmc.purpur.PurpurConfig.enderChestSixRows && org.purpurmc.purpur.PurpurConfig.enderChestPermissionRows) { + org.bukkit.craftbukkit.entity.CraftHumanEntity bukkit = player.getBukkitEntity(); + if (bukkit.hasPermission("purpur.enderchest.rows.six")) { @@ -32,19 +32,19 @@ index e693c5ef414dd77b684d0a393444a5d28b975bfd..d12896bb6f23bfdb1d22e1ecadd23c01 + } else { + player.sixRowEnderchestSlotCount = -1; + } -+ //Purpur end ++ // Purpur end - Barrels and enderchests 6 rows } public boolean isWhiteListed(GameProfile profile) { diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index a65023d0929435785116682c1378428120340547..52bbe204bdcf08eb4ef0b4c91567bce4d6da3cb5 100644 +index 27a0cb04dd50974a96ed420ef811d9c9f3182e52..9b762d48c63ddc532c86e2982006eed42375ac1e 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -200,6 +200,7 @@ public abstract class Player extends LivingEntity { private int currentImpulseContextResetGraceTime; public boolean affectsSpawning = true; // Paper - Affects Spawning API public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage -+ public int sixRowEnderchestSlotCount = -1; // Purpur ++ public int sixRowEnderchestSlotCount = -1; // Purpur - Barrels and enderchests 6 rows // CraftBukkit start public boolean fauxSleeping; @@ -56,7 +56,7 @@ index cf5b99c1337a7eafa9f5e8b2062c32ab4ff78968..0582698825544267e65a427351e27101 return new ChestMenu(MenuType.GENERIC_9x6, containerId, playerInventory, 6); } -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + public static ChestMenu oneRow(int syncId, Inventory playerInventory, Container inventory) { + return new ChestMenu(MenuType.GENERIC_9x1, syncId, playerInventory, inventory, 1); + } @@ -64,13 +64,13 @@ index cf5b99c1337a7eafa9f5e8b2062c32ab4ff78968..0582698825544267e65a427351e27101 + public static ChestMenu twoRows(int syncId, Inventory playerInventory, Container inventory) { + return new ChestMenu(MenuType.GENERIC_9x2, syncId, playerInventory, inventory, 2); + } -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows + public static ChestMenu threeRows(int containerId, Inventory playerInventory, Container container) { return new ChestMenu(MenuType.GENERIC_9x3, containerId, playerInventory, container, 3); } -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + public static ChestMenu fourRows(int syncId, Inventory playerInventory, Container inventory) { + return new ChestMenu(MenuType.GENERIC_9x4, syncId, playerInventory, inventory, 4); + } @@ -78,7 +78,7 @@ index cf5b99c1337a7eafa9f5e8b2062c32ab4ff78968..0582698825544267e65a427351e27101 + public static ChestMenu fiveRows(int syncId, Inventory playerInventory, Container inventory) { + return new ChestMenu(MenuType.GENERIC_9x5, syncId, playerInventory, inventory, 5); + } -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows + public static ChestMenu sixRows(int containerId, Inventory playerInventory, Container container) { return new ChestMenu(MenuType.GENERIC_9x6, containerId, playerInventory, container, 6); @@ -92,23 +92,23 @@ index a6a359bab2a727f4631b633a8bb370dd40decc75..4c48bdc2a4596b7b192e76974fa385c3 public PlayerEnderChestContainer(Player owner) { - super(27); -+ super(org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? 54 : 27); // Purpur ++ super(org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? 54 : 27); // Purpur - Barrels and enderchests 6 rows this.owner = owner; // CraftBukkit end } -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + @Override + public int getContainerSize() { + return owner.sixRowEnderchestSlotCount < 0 ? super.getContainerSize() : owner.sixRowEnderchestSlotCount; + } -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows + public void setActiveChest(EnderChestBlockEntity enderChestBlockEntity) { this.activeChest = enderChestBlockEntity; } diff --git a/net/minecraft/world/level/block/EnderChestBlock.java b/net/minecraft/world/level/block/EnderChestBlock.java -index 2f60681c50e3656400e84fe9a7670e0412743853..5a60acf92acc77593aec95413c206317999e43ba 100644 +index 2f60681c50e3656400e84fe9a7670e0412743853..79dbafcfde314058bdf95f887fa7a1032433032c 100644 --- a/net/minecraft/world/level/block/EnderChestBlock.java +++ b/net/minecraft/world/level/block/EnderChestBlock.java @@ -84,7 +84,7 @@ public class EnderChestBlock extends AbstractChestBlock i @@ -116,7 +116,7 @@ index 2f60681c50e3656400e84fe9a7670e0412743853..5a60acf92acc77593aec95413c206317 enderChestInventory.setActiveChest(enderChestBlockEntity); // Needs to happen before ChestMenu.threeRows as it is required for opening animations if (level instanceof ServerLevel serverLevel && player.openMenu( - new SimpleMenuProvider((i, inventory, playerx) -> ChestMenu.threeRows(i, inventory, enderChestInventory), CONTAINER_TITLE) -+ new SimpleMenuProvider((i, inventory, playerx) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(i, inventory, player, playerEnderChestContainer) : ChestMenu.threeRows(i, inventory, enderChestInventory), CONTAINER_TITLE) // Purpur ++ new SimpleMenuProvider((i, inventory, playerx) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(i, inventory, player, enderChestInventory) : ChestMenu.threeRows(i, inventory, enderChestInventory), CONTAINER_TITLE) // Purpur - Barrels and enderchests 6 rows ).isPresent()) { // Paper end - Fix InventoryOpenEvent cancellation - moved up; player.awardStat(Stats.OPEN_ENDERCHEST); @@ -124,7 +124,7 @@ index 2f60681c50e3656400e84fe9a7670e0412743853..5a60acf92acc77593aec95413c206317 } } -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + private ChestMenu getEnderChestSixRows(int syncId, net.minecraft.world.entity.player.Inventory inventory, Player player, PlayerEnderChestContainer playerEnderChestContainer) { + if (org.purpurmc.purpur.PurpurConfig.enderChestPermissionRows) { + org.bukkit.craftbukkit.entity.CraftHumanEntity bukkitPlayer = player.getBukkitEntity(); @@ -151,7 +151,7 @@ index 2f60681c50e3656400e84fe9a7670e0412743853..5a60acf92acc77593aec95413c206317 + player.sixRowEnderchestSlotCount = -1; + return ChestMenu.sixRows(syncId, inventory, playerEnderChestContainer); + } -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows + @Override public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { @@ -165,7 +165,7 @@ index 0f808855f58281578c2758513787f0f7330c9291..7ea7032eae78726e6d4dcfda49b01a10 } // CraftBukkit end - private NonNullList items = NonNullList.withSize(27, ItemStack.EMPTY); -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + private NonNullList items = NonNullList.withSize(switch (org.purpurmc.purpur.PurpurConfig.barrelRows) { + case 6 -> 54; + case 5 -> 45; @@ -174,7 +174,7 @@ index 0f808855f58281578c2758513787f0f7330c9291..7ea7032eae78726e6d4dcfda49b01a10 + case 1 -> 9; + default -> 27; + }, ItemStack.EMPTY); -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows + public final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() { @Override @@ -184,7 +184,7 @@ index 0f808855f58281578c2758513787f0f7330c9291..7ea7032eae78726e6d4dcfda49b01a10 @Override public int getContainerSize() { - return 27; -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + return switch (org.purpurmc.purpur.PurpurConfig.barrelRows) { + case 6 -> 54; + case 5 -> 45; @@ -193,7 +193,7 @@ index 0f808855f58281578c2758513787f0f7330c9291..7ea7032eae78726e6d4dcfda49b01a10 + case 1 -> 9; + default -> 27; + }; -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows } @Override @@ -202,7 +202,7 @@ index 0f808855f58281578c2758513787f0f7330c9291..7ea7032eae78726e6d4dcfda49b01a10 @Override protected AbstractContainerMenu createMenu(int id, Inventory player) { - return ChestMenu.threeRows(id, player, this); -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + return switch (org.purpurmc.purpur.PurpurConfig.barrelRows) { + case 6 -> ChestMenu.sixRows(id, player, this); + case 5 -> ChestMenu.fiveRows(id, player, this); @@ -211,7 +211,7 @@ index 0f808855f58281578c2758513787f0f7330c9291..7ea7032eae78726e6d4dcfda49b01a10 + case 1 -> ChestMenu.oneRow(id, player, this); + default -> ChestMenu.threeRows(id, player, this); + }; -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows } @Override diff --git a/purpur-server/minecraft-patches/features/0008-Configurable-void-damage-height-and-damage.patch b/purpur-server/minecraft-patches/features/0008-Configurable-void-damage-height-and-damage.patch index ef2bb434d..72fc88ca4 100644 --- a/purpur-server/minecraft-patches/features/0008-Configurable-void-damage-height-and-damage.patch +++ b/purpur-server/minecraft-patches/features/0008-Configurable-void-damage-height-and-damage.patch @@ -7,7 +7,7 @@ temporarily migrate to paper's config drop patch on the next minecraft release diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index b5011af774484b6ed35ee83b4a562ddd4425c22f..514b7d86c403568ddb130e7f7798867f838e1203 100644 +index b5011af774484b6ed35ee83b4a562ddd4425c22f..88c90e0ffca024c2867a7ed70d53d12aff7201c6 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -1198,7 +1198,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder() ++ private final com.google.common.cache.LoadingCache kickPermissionCache = com.google.common.cache.CacheBuilder.newBuilder() + .maximumSize(1000) + .expireAfterWrite(1, java.util.concurrent.TimeUnit.MINUTES) + .build( + new com.google.common.cache.CacheLoader<>() { + @Override -+ public Boolean load(CraftPlayer player) { ++ public Boolean load(org.bukkit.craftbukkit.entity.CraftPlayer player) { + return player.hasPermission("purpur.bypassIdleKick"); + } + } @@ -115,7 +115,7 @@ if (event.getLogWarning()) // Paper end - LOGGER.warn("{} moved wrongly!", this.player.getName().getString()); -+ LOGGER.warn("{} moved wrongly!, ({})", this.player.getName().getString(), d11); // Purpur - AFK API ++ LOGGER.warn("{} moved wrongly!, ({})", this.player.getName().getString(), verticalDelta); // Purpur - AFK API } // Paper } diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/ai/targeting/TargetingConditions.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/ai/targeting/TargetingConditions.java.patch index 5acb93071..df5fd519b 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/ai/targeting/TargetingConditions.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/ai/targeting/TargetingConditions.java.patch @@ -5,7 +5,7 @@ } else if (this.selector != null && !this.selector.test(target, level)) { return false; + // Purpur start - AFK API -+ } else if (!world.purpurConfig.idleTimeoutTargetPlayer && target instanceof net.minecraft.server.level.ServerPlayer player && player.isAfk()) { ++ } else if (!level.purpurConfig.idleTimeoutTargetPlayer && target instanceof net.minecraft.server.level.ServerPlayer player && player.isAfk()) { + return false; + // Purpur end - AFK API } else { diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/inventory/AnvilMenu.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/inventory/AnvilMenu.java.patch index 51b1ff79b..77dce1d72 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/inventory/AnvilMenu.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/inventory/AnvilMenu.java.patch @@ -92,8 +92,8 @@ this.broadcastChanges(); + + // Purpur start - Anvil API -+ if (this.canDoUnsafeEnchants && itemstack1 != ItemStack.EMPTY) { -+ ((ServerPlayer) this.player).connection.send(new ClientboundContainerSetSlotPacket(this.containerId, this.incrementStateId(), 2, itemstack1)); ++ if (this.canDoUnsafeEnchants && itemStack != ItemStack.EMPTY) { ++ ((ServerPlayer) this.player).connection.send(new ClientboundContainerSetSlotPacket(this.containerId, this.incrementStateId(), 2, itemStack)); + ((ServerPlayer) this.player).connection.send(new ClientboundContainerSetDataPacket(this.containerId, 0, this.cost.get())); + } + // Purpur end - Anvil API diff --git a/purpur-server/paper-patches/features/0003-Barrels-and-enderchests-6-rows.patch b/purpur-server/paper-patches/features/0003-Barrels-and-enderchests-6-rows.patch index 97ddcacbc..372c10b75 100644 --- a/purpur-server/paper-patches/features/0003-Barrels-and-enderchests-6-rows.patch +++ b/purpur-server/paper-patches/features/0003-Barrels-and-enderchests-6-rows.patch @@ -12,7 +12,7 @@ index 6d3f9d5dab6c9a2860ae31cae24310aa2d62da7c..4f29c579f94efe59a8c78520d75676fc case PLAYER: case CHEST: case ENDER_CHEST: -+ // Purpur start ++ // Purpur start - Barrels and enderchests 6 rows + this.delegate = new ChestMenu(org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? net.minecraft.world.inventory.MenuType.GENERIC_9x6 : net.minecraft.world.inventory.MenuType.GENERIC_9x3, windowId, bottom, top, top.getContainerSize() / 9); + break; case BARREL: @@ -25,7 +25,7 @@ index 6d3f9d5dab6c9a2860ae31cae24310aa2d62da7c..4f29c579f94efe59a8c78520d75676fc + case 1 -> net.minecraft.world.inventory.MenuType.GENERIC_9x1; + default -> net.minecraft.world.inventory.MenuType.GENERIC_9x3; + }, windowId, bottom, top, top.getContainerSize() / 9); -+ // Purpur end ++ // Purpur end - Barrels and enderchests 6 rows break; case DISPENSER: case DROPPER: @@ -38,7 +38,7 @@ index c6159c70f7a37b9bffe268b91905ce848d1d2927..d02adaaa6fbdc1c0eff44cb4a1f1642f @Override public void setContents(ItemStack[] items) { - Preconditions.checkArgument(items.length <= this.getSize(), "Invalid inventory size (%s); expected %s or less", items.length, this.getSize()); -+ // Preconditions.checkArgument(items.length <= this.getSize(), "Invalid inventory size (%s); expected %s or less", items.length, this.getSize()); // Purpur ++ // Preconditions.checkArgument(items.length <= this.getSize(), "Invalid inventory size (%s); expected %s or less", items.length, this.getSize()); // Purpur - Barrels and enderchests 6 rows for (int i = 0; i < this.getSize(); i++) { if (i >= items.length) { diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java.patch index 1f9d1e81e..57cca6a07 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java.patch @@ -5,7 +5,7 @@ } // Paper end + -+ // Purpur start ++ // Purpur start - Llama API + @Override + public boolean shouldJoinCaravan() { + return getHandle().shouldJoinCaravan; @@ -15,5 +15,5 @@ + public void setShouldJoinCaravan(boolean shouldJoinCaravan) { + getHandle().shouldJoinCaravan = shouldJoinCaravan; + } -+ // Purpur end ++ // Purpur end - Llama API }