aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0927-Add-CartographyItemEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0927-Add-CartographyItemEvent.patch')
-rw-r--r--patches/server/0927-Add-CartographyItemEvent.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/patches/server/0927-Add-CartographyItemEvent.patch b/patches/server/0927-Add-CartographyItemEvent.patch
new file mode 100644
index 0000000000..544bc15eda
--- /dev/null
+++ b/patches/server/0927-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 f92624ccd43f448abdee92c975d613cbcb3457c6..90bed0a36b2d518b56164a414350ec02822ad42a 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -3130,6 +3130,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();
+ }
+