summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nms-patches/EntityItem.patch14
-rw-r--r--src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java13
2 files changed, 24 insertions, 3 deletions
diff --git a/nms-patches/EntityItem.patch b/nms-patches/EntityItem.patch
index bcc5bdca..dc984456 100644
--- a/nms-patches/EntityItem.patch
+++ b/nms-patches/EntityItem.patch
@@ -66,7 +66,15 @@
this.die();
}
-@@ -183,6 +202,11 @@
+@@ -137,6 +156,7 @@
+ } else if (itemstack1.count + itemstack.count > itemstack1.getMaxStackSize()) {
+ return false;
+ } else {
++ if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemMergeEvent(this, entityitem).isCancelled()) return false; // CraftBukkit
+ itemstack1.count += itemstack.count;
+ entityitem.pickupDelay = Math.max(entityitem.pickupDelay, this.pickupDelay);
+ entityitem.age = Math.min(entityitem.age, this.age);
+@@ -183,6 +203,11 @@
} else if (this.getItemStack() != null && this.getItemStack().getItem() == Items.NETHER_STAR && damagesource.isExplosion()) {
return false;
} else {
@@ -78,7 +86,7 @@
this.ac();
this.e = (int) ((float) this.e - f);
if (this.e <= 0) {
-@@ -228,7 +252,18 @@
+@@ -228,7 +253,18 @@
NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("Item");
@@ -98,7 +106,7 @@
if (this.getItemStack() == null) {
this.die();
}
-@@ -240,6 +275,26 @@
+@@ -240,6 +276,26 @@
ItemStack itemstack = this.getItemStack();
int i = itemstack.count;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 10ac9590..2a010057 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -301,6 +301,19 @@ public class CraftEventFactory {
}
/**
+ * ItemMergeEvent
+ */
+ public static ItemMergeEvent callItemMergeEvent(EntityItem merging, EntityItem mergingWith) {
+ org.bukkit.entity.Item entityMerging = (org.bukkit.entity.Item) merging.getBukkitEntity();
+ org.bukkit.entity.Item entityMergingWith = (org.bukkit.entity.Item) mergingWith.getBukkitEntity();
+
+ ItemMergeEvent event = new ItemMergeEvent(entityMerging, entityMergingWith);
+
+ Bukkit.getPluginManager().callEvent(event);
+ return event;
+ }
+
+ /**
* PotionSplashEvent
*/
public static PotionSplashEvent callPotionSplashEvent(EntityPotion potion, Map<LivingEntity, Double> affectedEntities) {