aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0921-Add-CartographyItemEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0921-Add-CartographyItemEvent.patch')
-rw-r--r--patches/server/0921-Add-CartographyItemEvent.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/patches/server/0921-Add-CartographyItemEvent.patch b/patches/server/0921-Add-CartographyItemEvent.patch
new file mode 100644
index 0000000000..6288c2ac9e
--- /dev/null
+++ b/patches/server/0921-Add-CartographyItemEvent.patch
@@ -0,0 +1,43 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Janet Blackquill <[email protected]>
+Date: Sun, 7 Apr 2024 16:52:42 -0400
+Subject: [PATCH] Add CartographyItemEvent
+
+
+diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+index c442743e70e1985dc596ba948fa97f0475a4c11e..367df4b4bc9506469c68fcab2ef196d88abf7f97 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -3198,6 +3198,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+ }
+ }
+
++ // Paper start - cartography item event
++ if (packet.getSlotNum() == net.minecraft.world.inventory.CartographyTableMenu.RESULT_SLOT && top instanceof org.bukkit.inventory.CartographyInventory cartographyInventory) {
++ org.bukkit.inventory.ItemStack result = cartographyInventory.getResult();
++ if (result != null && !result.isEmpty()) {
++ if (click == ClickType.NUMBER_KEY) {
++ event = new io.papermc.paper.event.player.CartographyItemEvent(inventory, type, packet.getSlotNum(), click, action, packet.getButtonNum());
++ } else {
++ event = new io.papermc.paper.event.player.CartographyItemEvent(inventory, type, packet.getSlotNum(), click, action);
++ }
++ }
++ }
++ // Paper end - cartography item event
++
+ event.setCancelled(cancelled);
+ AbstractContainerMenu oldContainer = this.player.containerMenu; // SPIGOT-1224
+ this.cserver.getPluginManager().callEvent(event);
+diff --git a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java
+index b3a16b024e46ee8203b225ee429a5c973eab12c6..dc42d42ef91bc3e49f967c0a30a0d1b56e09cf21 100644
+--- a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java
++++ b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java
+@@ -71,7 +71,7 @@ public class CartographyTableMenu extends AbstractContainerMenu {
+ this.resultContainer = new ResultContainer(this.createBlockHolder(context)) { // Paper - Add missing InventoryHolders
+ @Override
+ public void setChanged() {
+- CartographyTableMenu.this.slotsChanged(this);
++ // CartographyTableMenu.this.slotsChanged(this); // Paper - Add CatographyItemEvent - do not recompute results if the result slot changes - allows to set the result slot via api
+ super.setChanged();
+ }
+