geforkt von Mirrors/Paper
3e90a19183
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 304e83eb PR-1002: Improve documentation and implementation of getMaxStackSize e8215ea2 SPIGOT-7638: Library loader does not seem to resolve every dependency 79c595c0 SPIGOT-7637: Bad logic in checking nullability of AttributeModifier slots CraftBukkit Changes: 91b1fc3f1 SPIGOT-7644: Fix ItemMeta#getAsString 4e77a81e1 SPIGOT-7615: PlayerLeashEntityEvent cancelled eats lead 996f660f3 Do not remove leash knot if leasing to an existing leash knot gets cancelled f70367d42 SPIGOT-7643: Fix inverted leash event cancelled usage and remove leash knot if no entity gets leashed 7ddb48294 SPIGOT-7640: Abnormal jumping height of wind charge 080c8711e SPIGOT-7639: Incoming plugin channels not working ad549847e Open a direct connection instead of pinging mojang server to check if it is reachable 38e2926c5 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime
66 Zeilen
3.8 KiB
Diff
66 Zeilen
3.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jakub Zacek <dawon@dawon.eu>
|
|
Date: Sun, 24 Apr 2022 22:56:59 +0200
|
|
Subject: [PATCH] Add PlayerInventorySlotChangeEvent
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
index a1636e09a7b46c333029bfdb7d1823d5dec83bbf..d139e9e8b83ee4f075228ef0d42786c470012c2d 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
@@ -347,6 +347,25 @@ public class ServerPlayer extends Player {
|
|
|
|
}
|
|
}
|
|
+ // Paper start - Add PlayerInventorySlotChangeEvent
|
|
+ @Override
|
|
+ public void slotChanged(AbstractContainerMenu handler, int slotId, ItemStack oldStack, ItemStack stack) {
|
|
+ Slot slot = handler.getSlot(slotId);
|
|
+ if (!(slot instanceof ResultSlot)) {
|
|
+ if (slot.container == ServerPlayer.this.getInventory()) {
|
|
+ if (io.papermc.paper.event.player.PlayerInventorySlotChangeEvent.getHandlerList().getRegisteredListeners().length == 0) {
|
|
+ CriteriaTriggers.INVENTORY_CHANGED.trigger(ServerPlayer.this, ServerPlayer.this.getInventory(), stack);
|
|
+ return;
|
|
+ }
|
|
+ io.papermc.paper.event.player.PlayerInventorySlotChangeEvent event = new io.papermc.paper.event.player.PlayerInventorySlotChangeEvent(ServerPlayer.this.getBukkitEntity(), slotId, CraftItemStack.asBukkitCopy(oldStack), CraftItemStack.asBukkitCopy(stack));
|
|
+ event.callEvent();
|
|
+ if (event.shouldTriggerAdvancements()) {
|
|
+ CriteriaTriggers.INVENTORY_CHANGED.trigger(ServerPlayer.this, ServerPlayer.this.getInventory(), stack);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ // Paper end - Add PlayerInventorySlotChangeEvent
|
|
|
|
@Override
|
|
public void dataChanged(AbstractContainerMenu handler, int property, int value) {}
|
|
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
|
index 00031a013d8e1e9f40bc1ef9491da6df3b061d5f..ea84d4549815ddfd2829cb2fd3885ddd1114bfa8 100644
|
|
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
|
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
|
@@ -302,7 +302,7 @@ public abstract class AbstractContainerMenu {
|
|
while (iterator.hasNext()) {
|
|
ContainerListener icrafting = (ContainerListener) iterator.next();
|
|
|
|
- icrafting.slotChanged(this, slot, itemstack2);
|
|
+ icrafting.slotChanged(this, slot, itemstack1, itemstack2); // Paper - Add PlayerInventorySlotChangeEvent
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/inventory/ContainerListener.java b/src/main/java/net/minecraft/world/inventory/ContainerListener.java
|
|
index 0e19cc55646625bf32a354d3df2dc2d6bcff96f4..eba024c9aadef8902aacccea1584ffbee6c04e44 100644
|
|
--- a/src/main/java/net/minecraft/world/inventory/ContainerListener.java
|
|
+++ b/src/main/java/net/minecraft/world/inventory/ContainerListener.java
|
|
@@ -5,5 +5,11 @@ import net.minecraft.world.item.ItemStack;
|
|
public interface ContainerListener {
|
|
void slotChanged(AbstractContainerMenu handler, int slotId, ItemStack stack);
|
|
|
|
+ // Paper start - Add PlayerInventorySlotChangeEvent
|
|
+ default void slotChanged(AbstractContainerMenu handler, int slotId, ItemStack oldStack, ItemStack stack) {
|
|
+ slotChanged(handler, slotId, stack);
|
|
+ }
|
|
+ // Paper end - Add PlayerInventorySlotChangeEvent
|
|
+
|
|
void dataChanged(AbstractContainerMenu handler, int property, int value);
|
|
}
|