Commits

md_5 authored f6305411b89
SPIGOT-1495: Update inventory if required on PlayerItemDamageEvent
No tags

CraftBukkit-Patches/0016-PlayerItemDamageEvent.patch

Modified
1 -From 5ff24ec2d0fa6ad7bda813ad9cc5cc56601a30a0 Mon Sep 17 00:00:00 2001
1 +From 10ed64d05658311b27c6b25196a51ad5e4b1acd3 Mon Sep 17 00:00:00 2001
2 2 From: md_5 <md_5@live.com.au>
3 3 Date: Mon, 4 Mar 2013 18:45:52 +1100
4 4 Subject: [PATCH] PlayerItemDamageEvent
5 5
6 6
7 7 diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
8 -index 43516d4..a7cfb2e 100644
8 +index 43516d4..527a335 100644
9 9 --- a/src/main/java/net/minecraft/server/ItemStack.java
10 10 +++ b/src/main/java/net/minecraft/server/ItemStack.java
11 11 @@ -347,6 +347,11 @@ public final class ItemStack {
12 12 }
13 13
14 14 public boolean isDamaged(int i, Random random) {
15 15 + return isDamaged(i, random, null);
16 16 + }
17 17 +
18 18 + public boolean isDamaged(int i, Random random, EntityLiving entityliving) {
19 19 + // Spigot end
20 20 if (!this.e()) {
21 21 return false;
22 22 } else {
23 -@@ -361,7 +366,16 @@ public final class ItemStack {
23 +@@ -361,7 +366,19 @@ public final class ItemStack {
24 24 }
25 25
26 26 i -= k;
27 27 - if (i <= 0) {
28 28 + // Spigot start
29 29 + if (entityliving instanceof EntityPlayer) {
30 30 + org.bukkit.craftbukkit.inventory.CraftItemStack item = org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(this);
31 31 + org.bukkit.event.player.PlayerItemDamageEvent event = new org.bukkit.event.player.PlayerItemDamageEvent((org.bukkit.entity.Player) entityliving.getBukkitEntity(), item, i);
32 32 + org.bukkit.Bukkit.getServer().getPluginManager().callEvent(event);
33 ++ if (i != event.getDamage() || event.isCancelled()) {
34 ++ event.getPlayer().updateInventory();
35 ++ }
33 36 + if (event.isCancelled()) return false;
34 37 + i = event.getDamage();
35 38 + }
36 39 + // Spigot end
37 40 + if (i <= 0 ) {
38 41 return false;
39 42 }
40 43 }
41 -@@ -374,7 +388,7 @@ public final class ItemStack {
44 +@@ -374,7 +391,7 @@ public final class ItemStack {
42 45 public void damage(int i, EntityLiving entityliving) {
43 46 if (!(entityliving instanceof EntityHuman) || !((EntityHuman) entityliving).abilities.canInstantlyBuild) {
44 47 if (this.e()) {
45 48 - if (this.isDamaged(i, entityliving.getRandom())) {
46 49 + if (this.isDamaged(i, entityliving.getRandom(), entityliving)) { // Spigot
47 50 entityliving.b(this);
48 51 --this.count;
49 52 if (entityliving instanceof EntityHuman) {
50 53 --
51 54 2.7.4
52 55

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut