Commits
md_5 authored f6305411b89
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 | |
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 - | |
23 + | |
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 - | |
44 + | |
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 | |