13
0
geforkt von Mirrors/Paper

SPIGOT-143: Fix various animal stuff not being canceled by damageEntity.

Fixes wolves and ocelots standing up when the damag event is being canceled.
Also stops breeding mode reset by the same event.

By: FearThe1337 <admin@fearthe1337.com>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2014-12-09 15:40:38 +01:00
Ursprung 1aa3edf985
Commit 401aa37842
4 geänderte Dateien mit 88 neuen und 20 gelöschten Zeilen

Datei anzeigen

@ -0,0 +1,23 @@
--- ../work/decompile-8eb82bde/net/minecraft/server/EntityAnimal.java 2014-12-10 18:34:37.064492562 +0000
+++ src/main/java/net/minecraft/server/EntityAnimal.java 2014-12-10 18:31:55.772494313 +0000
@@ -38,14 +38,19 @@
}
+ /* CraftBukkit start
+ // Function disabled as it has no special function anymore after
+ // setSitting is disabled.
public boolean damageEntity(DamageSource damagesource, float f) {
if (this.isInvulnerable(damagesource)) {
return false;
} else {
- this.bk = 0;
+ //CraftBukkit - moved into EntityLiving.d(DamageSource, float)
+ //this.bk = 0;
return super.damageEntity(damagesource, f);
}
}
+ // CraftBukkit end */
public float a(BlockPosition blockposition) {
return this.world.getType(blockposition.down()).getBlock() == Blocks.GRASS ? 10.0F : this.world.o(blockposition) - 0.5F;

Datei anzeigen

@ -1,5 +1,5 @@
--- ../work/decompile-8eb82bde//net/minecraft/server/EntityLiving.java 2014-11-28 17:43:43.129707434 +0000 --- ../work/decompile-8eb82bde/net/minecraft/server/EntityLiving.java 2014-12-10 18:34:37.200492561 +0000
+++ src/main/java/net/minecraft/server/EntityLiving.java 2014-11-28 17:38:22.000000000 +0000 +++ src/main/java/net/minecraft/server/EntityLiving.java 2014-12-10 18:32:58.472493632 +0000
@@ -8,6 +8,15 @@ @@ -8,6 +8,15 @@
import java.util.Random; import java.util.Random;
import java.util.UUID; import java.util.UUID;
@ -208,7 +208,7 @@
this.getEquipment(4).damage((int) (f * 4.0F + this.random.nextFloat() * f * 2.0F), this); this.getEquipment(4).damage((int) (f * 4.0F + this.random.nextFloat() * f * 2.0F), this);
f *= 0.75F; f *= 0.75F;
} }
@@ -602,13 +683,22 @@ @@ -602,16 +683,34 @@
return false; return false;
} }
@ -233,7 +233,19 @@
this.hurtTicks = this.at = 10; this.hurtTicks = this.at = 10;
} }
@@ -717,11 +807,19 @@ + // CraftBukkit start
+ if(this instanceof EntityAnimal){
+ ((EntityAnimal)this).cq();
+ if(this instanceof EntityTameableAnimal){
+ ((EntityTameableAnimal)this).getGoalSit().setSitting(false);
+ }
+ }
+ // CraftBukkit end
+
this.au = 0.0F;
Entity entity = damagesource.getEntity();
@@ -717,11 +816,19 @@
} }
if (this.aZ() && this.world.getGameRules().getBoolean("doMobLoot")) { if (this.aZ() && this.world.getGameRules().getBoolean("doMobLoot")) {
@ -254,7 +266,7 @@
} }
} }
@@ -781,8 +879,13 @@ @@ -781,8 +888,13 @@
int i = MathHelper.f((f - 3.0F - f2) * f1); int i = MathHelper.f((f - 3.0F - f2) * f1);
if (i > 0) { if (i > 0) {
@ -269,7 +281,7 @@
int j = MathHelper.floor(this.locX); int j = MathHelper.floor(this.locX);
int k = MathHelper.floor(this.locY - 0.20000000298023224D); int k = MathHelper.floor(this.locY - 0.20000000298023224D);
int l = MathHelper.floor(this.locZ); int l = MathHelper.floor(this.locZ);
@@ -826,7 +929,7 @@ @@ -826,7 +938,7 @@
int i = 25 - this.bq(); int i = 25 - this.bq();
float f1 = f * (float) i; float f1 = f * (float) i;
@ -278,7 +290,7 @@
f = f1 / 25.0F; f = f1 / 25.0F;
} }
@@ -840,8 +943,9 @@ @@ -840,8 +952,9 @@
int i; int i;
int j; int j;
float f1; float f1;
@ -290,7 +302,7 @@
i = (this.getEffect(MobEffectList.RESISTANCE).getAmplifier() + 1) * 5; i = (this.getEffect(MobEffectList.RESISTANCE).getAmplifier() + 1) * 5;
j = 25 - i; j = 25 - i;
f1 = f * (float) j; f1 = f * (float) j;
@@ -867,22 +971,117 @@ @@ -867,22 +980,117 @@
} }
} }
@ -414,7 +426,7 @@
} }
public CombatTracker br() { public CombatTracker br() {
@@ -1236,7 +1435,8 @@ @@ -1236,7 +1444,8 @@
if (f > 0.0025000002F) { if (f > 0.0025000002F) {
f3 = 1.0F; f3 = 1.0F;
f2 = (float) Math.sqrt((double) f) * 3.0F; f2 = (float) Math.sqrt((double) f) * 3.0F;
@ -424,7 +436,7 @@
} }
if (this.ax > 0.0F) { if (this.ax > 0.0F) {
@@ -1400,6 +1600,13 @@ @@ -1400,6 +1609,13 @@
if (list != null && !list.isEmpty()) { if (list != null && !list.isEmpty()) {
for (int i = 0; i < list.size(); ++i) { for (int i = 0; i < list.size(); ++i) {
Entity entity = (Entity) list.get(i); Entity entity = (Entity) list.get(i);

Datei anzeigen

@ -1,5 +1,5 @@
--- ../work/decompile-8eb82bde//net/minecraft/server/EntityOcelot.java 2014-11-28 17:43:43.141707434 +0000 --- ../work/decompile-8eb82bde/net/minecraft/server/EntityOcelot.java 2014-12-10 18:34:37.228492560 +0000
+++ src/main/java/net/minecraft/server/EntityOcelot.java 2014-11-28 17:38:21.000000000 +0000 +++ src/main/java/net/minecraft/server/EntityOcelot.java 2014-12-10 18:33:29.824493292 +0000
@@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
} }
@ -9,7 +9,30 @@
} }
protected void aW() { protected void aW() {
@@ -124,7 +124,8 @@ @@ -95,15 +95,20 @@
public boolean r(Entity entity) {
return entity.damageEntity(DamageSource.mobAttack(this), 3.0F);
}
-
+
+ /* CraftBukkit start
+ // Function disabled as it has no special function anymore after
+ // setSitting is disabled.
public boolean damageEntity(DamageSource damagesource, float f) {
if (this.isInvulnerable(damagesource)) {
return false;
} else {
- this.bk.setSitting(false);
+ // CraftBukkit - moved into EntityLiving.d(DamageSource, float)
+ // this.bk.setSitting(false);
return super.damageEntity(damagesource, f);
}
}
+ // CraftBukkit end */
protected void dropDeathLoot(boolean flag, int i) {}
@@ -124,7 +129,8 @@
} }
if (!this.world.isStatic) { if (!this.world.isStatic) {
@ -19,7 +42,7 @@
this.setTamed(true); this.setTamed(true);
this.setCatType(1 + this.world.random.nextInt(3)); this.setCatType(1 + this.world.random.nextInt(3));
this.setOwnerUUID(entityhuman.getUniqueID().toString()); this.setOwnerUUID(entityhuman.getUniqueID().toString());
@@ -231,7 +232,7 @@ @@ -231,7 +237,7 @@
entityocelot.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, 0.0F); entityocelot.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, 0.0F);
entityocelot.setAgeRaw(-24000); entityocelot.setAgeRaw(-24000);

Datei anzeigen

@ -1,5 +1,5 @@
--- ../work/decompile-8eb82bde//net/minecraft/server/EntityWolf.java 2014-11-28 17:43:43.181707433 +0000 --- ../work/decompile-8eb82bde/net/minecraft/server/EntityWolf.java 2014-12-10 18:34:37.316492559 +0000
+++ src/main/java/net/minecraft/server/EntityWolf.java 2014-11-28 17:38:19.000000000 +0000 +++ src/main/java/net/minecraft/server/EntityWolf.java 2014-12-10 18:34:29.104492649 +0000
@@ -1,5 +1,10 @@ @@ -1,5 +1,10 @@
package net.minecraft.server; package net.minecraft.server;
@ -41,7 +41,17 @@
} }
protected String bn() { protected String bn() {
@@ -219,7 +236,7 @@ @@ -176,7 +193,8 @@
} else {
Entity entity = damagesource.getEntity();
- this.bk.setSitting(false);
+ // CraftBukkit - moved into EntityLiving.d(DamageSource, float)
+ // this.bk.setSitting(false);
if (entity != null && !(entity instanceof EntityHuman) && !(entity instanceof EntityArrow)) {
f = (f + 1.0F) / 2.0F;
}
@@ -219,7 +237,7 @@
--itemstack.count; --itemstack.count;
} }
@ -50,7 +60,7 @@
if (itemstack.count <= 0) { if (itemstack.count <= 0) {
entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null); entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null);
} }
@@ -244,7 +261,7 @@ @@ -244,7 +262,7 @@
this.bk.setSitting(!this.isSitting()); this.bk.setSitting(!this.isSitting());
this.aW = false; this.aW = false;
this.navigation.n(); this.navigation.n();
@ -59,7 +69,7 @@
} }
} else if (itemstack != null && itemstack.getItem() == Items.BONE && !this.isAngry()) { } else if (itemstack != null && itemstack.getItem() == Items.BONE && !this.isAngry()) {
if (!entityhuman.abilities.canInstantlyBuild) { if (!entityhuman.abilities.canInstantlyBuild) {
@@ -256,12 +273,13 @@ @@ -256,12 +274,13 @@
} }
if (!this.world.isStatic) { if (!this.world.isStatic) {
@ -76,7 +86,7 @@
this.setOwnerUUID(entityhuman.getUniqueID().toString()); this.setOwnerUUID(entityhuman.getUniqueID().toString());
this.l(true); this.l(true);
this.world.broadcastEntityEffect(this, (byte) 7); this.world.broadcastEntityEffect(this, (byte) 7);
@@ -348,7 +366,7 @@ @@ -348,7 +367,7 @@
} }
protected boolean isTypeNotPersistent() { protected boolean isTypeNotPersistent() {