From faad8cbd629ac9f71818e95f0d200b26946128e8 Mon Sep 17 00:00:00 2001
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Date: Wed, 24 Apr 2024 17:36:24 -0700
Subject: [PATCH] Apply more API-implementing patches

---
 .../Add-BlockBreakProgressUpdateEvent.patch   |  0
 .../server/Add-CartographyItemEvent.patch     |  0
 .../server/Add-FluidState-API.patch           |  0
 .../server/Add-Lifecycle-Event-system.patch   |  0
 ...erTradeEvent-and-PlayerPurchaseEvent.patch | 41 +++++++------------
 .../server/Add-ShulkerDuplicateEvent.patch    |  0
 ...Add-api-for-spawn-egg-texture-colors.patch |  0
 ...kSnapshot-includeLightData-parameter.patch |  0
 .../{unapplied => }/server/Conduit-API.patch  | 16 ++++----
 .../server/Deprecate-ItemStack-setType.patch  |  2 +-
 .../server/Expanded-Hopper-API.patch          |  4 +-
 .../server/ItemStack-Tooltip-API.patch        |  0
 .../server/More-Raid-API.patch                |  0
 .../server/add-number-format-api.patch        |  0
 .../server/improve-BanList-types.patch        |  0
 15 files changed, 26 insertions(+), 37 deletions(-)
 rename patches/{unapplied => }/server/Add-BlockBreakProgressUpdateEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-CartographyItemEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-FluidState-API.patch (100%)
 rename patches/{unapplied => }/server/Add-Lifecycle-Event-system.patch (100%)
 rename patches/{unapplied => }/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch (89%)
 rename patches/{unapplied => }/server/Add-ShulkerDuplicateEvent.patch (100%)
 rename patches/{unapplied => }/server/Add-api-for-spawn-egg-texture-colors.patch (100%)
 rename patches/{unapplied => }/server/Add-getChunkSnapshot-includeLightData-parameter.patch (100%)
 rename patches/{unapplied => }/server/Conduit-API.patch (84%)
 rename patches/{unapplied => }/server/Deprecate-ItemStack-setType.patch (94%)
 rename patches/{unapplied => }/server/Expanded-Hopper-API.patch (92%)
 rename patches/{unapplied => }/server/ItemStack-Tooltip-API.patch (100%)
 rename patches/{unapplied => }/server/More-Raid-API.patch (100%)
 rename patches/{unapplied => }/server/add-number-format-api.patch (100%)
 rename patches/{unapplied => }/server/improve-BanList-types.patch (100%)

diff --git a/patches/unapplied/server/Add-BlockBreakProgressUpdateEvent.patch b/patches/server/Add-BlockBreakProgressUpdateEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-BlockBreakProgressUpdateEvent.patch
rename to patches/server/Add-BlockBreakProgressUpdateEvent.patch
diff --git a/patches/unapplied/server/Add-CartographyItemEvent.patch b/patches/server/Add-CartographyItemEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-CartographyItemEvent.patch
rename to patches/server/Add-CartographyItemEvent.patch
diff --git a/patches/unapplied/server/Add-FluidState-API.patch b/patches/server/Add-FluidState-API.patch
similarity index 100%
rename from patches/unapplied/server/Add-FluidState-API.patch
rename to patches/server/Add-FluidState-API.patch
diff --git a/patches/unapplied/server/Add-Lifecycle-Event-system.patch b/patches/server/Add-Lifecycle-Event-system.patch
similarity index 100%
rename from patches/unapplied/server/Add-Lifecycle-Event-system.patch
rename to patches/server/Add-Lifecycle-Event-system.patch
diff --git a/patches/unapplied/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
similarity index 89%
rename from patches/unapplied/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
rename to patches/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
index 7bd112d345..40da395197 100644
--- a/patches/unapplied/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
+++ b/patches/server/Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
@@ -64,19 +64,20 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +                    itemstack1 = itemstack1.copy();
 +                }
 +                // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent
-                 if (!itemstack1.isEmpty() && ItemStack.isSameItemSameTags(stack, itemstack1)) {
-                     int l = itemstack1.getCount() + stack.getCount();
- 
-                     if (l <= stack.getMaxStackSize()) {
+                 if (!itemstack1.isEmpty() && ItemStack.isSameItemSameComponents(stack, itemstack1)) {
+                     l = itemstack1.getCount() + stack.getCount();
+                     int i1 = slot.getMaxStackSize(itemstack1);
+@@ -0,0 +0,0 @@ public abstract class AbstractContainerMenu {
+                     if (l <= i1) {
                          stack.setCount(0);
                          itemstack1.setCount(l);
 +                        if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
                          slot.setChanged();
 +                        } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
                          flag1 = true;
-                     } else if (itemstack1.getCount() < stack.getMaxStackSize()) {
-                         stack.shrink(stack.getMaxStackSize() - itemstack1.getCount());
-                         itemstack1.setCount(stack.getMaxStackSize());
+                     } else if (itemstack1.getCount() < i1) {
+                         stack.shrink(i1 - itemstack1.getCount());
+                         itemstack1.setCount(i1);
 +                        if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
                          slot.setChanged();
 +                        } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
@@ -93,25 +94,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +                }
 +                // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent
                  if (itemstack1.isEmpty() && slot.mayPlace(stack)) {
-                     if (stack.getCount() > slot.getMaxStackSize()) {
-+                        // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent
-+                        if (isCheck) {
-+                            stack.shrink(slot.getMaxStackSize());
-+                        } else {
-+                        // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent
-                         slot.setByPlayer(stack.split(slot.getMaxStackSize()));
-+                        } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
-                     } else {
-+                        // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent
-+                        if (isCheck) {
-+                            stack.shrink(stack.getCount());
-+                        } else {
-+                        // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent
-                         slot.setByPlayer(stack.split(stack.getCount()));
-+                        } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
-                     }
- 
-+                    if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
+                     l = slot.getMaxStackSize(stack);
++                    // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent
++                    if (isCheck) {
++                        stack.shrink(Math.min(stack.getCount(), l));
++                    } else {
++                    // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent
+                     slot.setByPlayer(stack.split(Math.min(stack.getCount(), l)));
                      slot.setChanged();
 +                    } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent
                      flag1 = true;
diff --git a/patches/unapplied/server/Add-ShulkerDuplicateEvent.patch b/patches/server/Add-ShulkerDuplicateEvent.patch
similarity index 100%
rename from patches/unapplied/server/Add-ShulkerDuplicateEvent.patch
rename to patches/server/Add-ShulkerDuplicateEvent.patch
diff --git a/patches/unapplied/server/Add-api-for-spawn-egg-texture-colors.patch b/patches/server/Add-api-for-spawn-egg-texture-colors.patch
similarity index 100%
rename from patches/unapplied/server/Add-api-for-spawn-egg-texture-colors.patch
rename to patches/server/Add-api-for-spawn-egg-texture-colors.patch
diff --git a/patches/unapplied/server/Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/server/Add-getChunkSnapshot-includeLightData-parameter.patch
similarity index 100%
rename from patches/unapplied/server/Add-getChunkSnapshot-includeLightData-parameter.patch
rename to patches/server/Add-getChunkSnapshot-includeLightData-parameter.patch
diff --git a/patches/unapplied/server/Conduit-API.patch b/patches/server/Conduit-API.patch
similarity index 84%
rename from patches/unapplied/server/Conduit-API.patch
rename to patches/server/Conduit-API.patch
index c29fd4088f..5494878b89 100644
--- a/patches/unapplied/server/Conduit-API.patch
+++ b/patches/server/Conduit-API.patch
@@ -12,21 +12,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/net/minecraft/world/level/block/entity/ConduitBlockEntity.java
 +++ b/src/main/java/net/minecraft/world/level/block/entity/ConduitBlockEntity.java
 @@ -0,0 +0,0 @@ public class ConduitBlockEntity extends BlockEntity {
- 
-     private static void applyEffects(Level world, BlockPos pos, List<BlockPos> activatingBlocks) {
-         int i = activatingBlocks.size();
+     public static int getRange(List<BlockPos> list) {
+         // CraftBukkit end
+         int i = list.size();
 -        int j = i / 7 * 16;
 +        int j = i / 7 * 16; // Paper - Conduit API; diff on change
-         int k = pos.getX();
-         int l = pos.getY();
-         int i1 = pos.getZ();
+         // CraftBukkit start
+         return j;
+     }
 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java b/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftConduit.java
 @@ -0,0 +0,0 @@ public class CraftConduit extends CraftBlockEntityState<ConduitBlockEntity> impl
-     public CraftConduit copy() {
-         return new CraftConduit(this);
+         AABB bounds = ConduitBlockEntity.getDestroyRangeAABB(this.getPosition());
+         return new BoundingBox(bounds.minX, bounds.minY, bounds.minZ, bounds.maxX, bounds.maxY, bounds.maxZ);
      }
 +
 +    // Paper start - Conduit API
diff --git a/patches/unapplied/server/Deprecate-ItemStack-setType.patch b/patches/server/Deprecate-ItemStack-setType.patch
similarity index 94%
rename from patches/unapplied/server/Deprecate-ItemStack-setType.patch
rename to patches/server/Deprecate-ItemStack-setType.patch
index 6e35974967..e8508e20d3 100644
--- a/patches/unapplied/server/Deprecate-ItemStack-setType.patch
+++ b/patches/server/Deprecate-ItemStack-setType.patch
@@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
 @@ -0,0 +0,0 @@ public final class CraftItemStack extends ItemStack {
      static boolean hasItemMeta(net.minecraft.world.item.ItemStack item) {
-         return !(item == null || item.getTag() == null || item.getTag().isEmpty());
+         return !(item == null || item.getComponentsPatch().isEmpty());
      }
 +    // Paper start - with type
 +    @Override
diff --git a/patches/unapplied/server/Expanded-Hopper-API.patch b/patches/server/Expanded-Hopper-API.patch
similarity index 92%
rename from patches/unapplied/server/Expanded-Hopper-API.patch
rename to patches/server/Expanded-Hopper-API.patch
index 0918858f77..1a80eefc55 100644
--- a/patches/unapplied/server/Expanded-Hopper-API.patch
+++ b/patches/server/Expanded-Hopper-API.patch
@@ -12,8 +12,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java
 +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java
 @@ -0,0 +0,0 @@ public class CraftHopper extends CraftLootable<HopperBlockEntity> implements Hop
-     public CraftHopper copy() {
-         return new CraftHopper(this);
+     public CraftHopper copy(Location location) {
+         return new CraftHopper(this, location);
      }
 +
 +    // Paper start - Expanded Hopper API
diff --git a/patches/unapplied/server/ItemStack-Tooltip-API.patch b/patches/server/ItemStack-Tooltip-API.patch
similarity index 100%
rename from patches/unapplied/server/ItemStack-Tooltip-API.patch
rename to patches/server/ItemStack-Tooltip-API.patch
diff --git a/patches/unapplied/server/More-Raid-API.patch b/patches/server/More-Raid-API.patch
similarity index 100%
rename from patches/unapplied/server/More-Raid-API.patch
rename to patches/server/More-Raid-API.patch
diff --git a/patches/unapplied/server/add-number-format-api.patch b/patches/server/add-number-format-api.patch
similarity index 100%
rename from patches/unapplied/server/add-number-format-api.patch
rename to patches/server/add-number-format-api.patch
diff --git a/patches/unapplied/server/improve-BanList-types.patch b/patches/server/improve-BanList-types.patch
similarity index 100%
rename from patches/unapplied/server/improve-BanList-types.patch
rename to patches/server/improve-BanList-types.patch