SPIGOT-3869: Error when forcing EntityResurrectEvent

This commit is contained in:
md_5 2018-03-23 19:40:16 +11:00
parent 29705a0d4f
commit 3fed09cc42

View File

@ -326,7 +326,7 @@
this.aA = 0.0F;
Entity entity1 = damagesource.getEntity();
@@ -833,18 +981,26 @@
@@ -833,18 +981,28 @@
EnumHand[] aenumhand = EnumHand.values();
int i = aenumhand.length;
@ -351,12 +351,14 @@
+ this.world.getServer().getPluginManager().callEvent(event);
+
+ if (!event.isCancelled()) {
+ if (!itemstack1.isEmpty()) {
+ itemstack1.subtract(1);
+ }
+ // CraftBukkit end
if (this instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) this;
@@ -859,7 +1015,7 @@
@@ -859,7 +1017,7 @@
this.world.broadcastEntityEffect(this, (byte) 35);
}
@ -365,7 +367,7 @@
}
}
@@ -944,6 +1100,12 @@
@@ -944,6 +1102,12 @@
boolean flag = this.lastDamageByPlayerTime > 0;
this.a(flag, i, damagesource);
@ -378,7 +380,7 @@
}
}
@@ -1033,8 +1195,13 @@
@@ -1033,8 +1197,13 @@
int i = MathHelper.f((f - 3.0F - f2) * f1);
if (i > 0) {
@ -393,7 +395,7 @@
int j = MathHelper.floor(this.locX);
int k = MathHelper.floor(this.locY - 0.20000000298023224D);
int l = MathHelper.floor(this.locZ);
@@ -1061,7 +1228,7 @@
@@ -1061,7 +1230,7 @@
protected float applyArmorModifier(DamageSource damagesource, float f) {
if (!damagesource.ignoresArmor()) {
@ -402,7 +404,7 @@
f = CombatMath.a(f, (float) this.getArmorStrength(), (float) this.getAttributeInstance(GenericAttributes.i).getValue());
}
@@ -1074,7 +1241,8 @@
@@ -1074,7 +1243,8 @@
} else {
int i;
@ -412,7 +414,7 @@
i = (this.getEffect(MobEffects.RESISTANCE).getAmplifier() + 1) * 5;
int j = 25 - i;
float f1 = f * (float) j;
@@ -1095,22 +1263,142 @@
@@ -1095,22 +1265,142 @@
}
}
@ -565,7 +567,7 @@
}
public CombatTracker getCombatTracker() {
@@ -1177,6 +1465,7 @@
@@ -1177,6 +1467,7 @@
public AttributeMapBase getAttributeMap() {
if (this.attributeMap == null) {
this.attributeMap = new AttributeMapServer();
@ -573,7 +575,7 @@
}
return this.attributeMap;
@@ -1469,6 +1758,7 @@
@@ -1469,6 +1760,7 @@
}
if (this.onGround && !this.world.isClientSide) {
@ -581,7 +583,7 @@
this.setFlag(7, false);
}
} else {
@@ -1838,6 +2128,7 @@
@@ -1838,6 +2130,7 @@
}
if (!this.world.isClientSide) {
@ -589,7 +591,7 @@
this.setFlag(7, flag);
}
@@ -1931,11 +2222,11 @@
@@ -1931,11 +2224,11 @@
}
public boolean isInteractable() {
@ -603,7 +605,7 @@
}
protected void ax() {
@@ -2072,7 +2363,27 @@
@@ -2072,7 +2365,27 @@
protected void v() {
if (!this.activeItem.isEmpty() && this.isHandRaised()) {
this.b(this.activeItem, 16);
@ -632,7 +634,7 @@
this.cN();
}
@@ -2151,10 +2462,18 @@
@@ -2151,10 +2464,18 @@
}
if (flag1) {