aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0947-Add-CartographyItemEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0947-Add-CartographyItemEvent.patch')
-rw-r--r--patches/server/0947-Add-CartographyItemEvent.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/patches/server/0947-Add-CartographyItemEvent.patch b/patches/server/0947-Add-CartographyItemEvent.patch
new file mode 100644
index 0000000000..4eb506e6b6
--- /dev/null
+++ b/patches/server/0947-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 9e57d0b1222b7dd4b9dd1d9f82b4c2f7fc7bcc3c..42d3bbfc39444e2a26adb0c72e5895acba0a45ed 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -3109,6 +3109,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 ab98637bf967ac19f0bc06e8cb7f18a8b13ec809..a90e2c56c54797b2fec40eb3865835c5f640a544 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();
+ }
+