mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-25 12:05:53 +01:00
SPIGOT-5976: Bees do not exit naturally spawned hives
This commit is contained in:
parent
93cfb195ca
commit
b0c6dfe1ae
@ -80,15 +80,38 @@
|
|||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
BlockPosition blockposition = this.getPosition();
|
BlockPosition blockposition = this.getPosition();
|
||||||
@@ -157,6 +182,7 @@
|
@@ -157,6 +182,18 @@
|
||||||
if (!entity.getEntityType().a((Tag) TagsEntity.BEEHIVE_INHABITORS)) {
|
if (!entity.getEntityType().a((Tag) TagsEntity.BEEHIVE_INHABITORS)) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
|
+ // CraftBukkit start
|
||||||
|
+ if (entity instanceof EntityBee) {
|
||||||
|
+ float f = entity.getWidth();
|
||||||
|
+ double d0 = flag ? 0.0D : 0.55D + (double) (f / 2.0F);
|
||||||
|
+ double d1 = (double) blockposition.getX() + 0.5D + d0 * (double) enumdirection.getAdjacentX();
|
||||||
|
+ double d2 = (double) blockposition.getY() + 0.5D - (double) (entity.getHeight() / 2.0F);
|
||||||
|
+ double d3 = (double) blockposition.getZ() + 0.5D + d0 * (double) enumdirection.getAdjacentZ();
|
||||||
|
+
|
||||||
|
+ entity.setPositionRotation(d1, d2, d3, entity.yaw, entity.pitch);
|
||||||
|
+ }
|
||||||
+ if (!this.world.addEntity(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BEEHIVE)) return false; // CraftBukkit - SpawnReason, moved from below
|
+ if (!this.world.addEntity(entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BEEHIVE)) return false; // CraftBukkit - SpawnReason, moved from below
|
||||||
|
+ // CraftBukkit end
|
||||||
if (entity instanceof EntityBee) {
|
if (entity instanceof EntityBee) {
|
||||||
EntityBee entitybee = (EntityBee) entity;
|
EntityBee entitybee = (EntityBee) entity;
|
||||||
|
|
||||||
@@ -196,7 +222,7 @@
|
@@ -186,6 +223,7 @@
|
||||||
|
list.add(entitybee);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* // CraftBukkit start
|
||||||
|
float f = entity.getWidth();
|
||||||
|
double d0 = flag ? 0.0D : 0.55D + (double) (f / 2.0F);
|
||||||
|
double d1 = (double) blockposition.getX() + 0.5D + d0 * (double) enumdirection.getAdjacentX();
|
||||||
|
@@ -193,10 +231,11 @@
|
||||||
|
double d3 = (double) blockposition.getZ() + 0.5D + d0 * (double) enumdirection.getAdjacentZ();
|
||||||
|
|
||||||
|
entity.setPositionRotation(d1, d2, d3, entity.yaw, entity.pitch);
|
||||||
|
+ */ // CraftBukkit end
|
||||||
}
|
}
|
||||||
|
|
||||||
this.world.playSound((EntityHuman) null, blockposition, SoundEffects.BLOCK_BEEHIVE_EXIT, SoundCategory.BLOCKS, 1.0F, 1.0F);
|
this.world.playSound((EntityHuman) null, blockposition, SoundEffects.BLOCK_BEEHIVE_EXIT, SoundCategory.BLOCKS, 1.0F, 1.0F);
|
||||||
@ -97,7 +120,7 @@
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@@ -235,6 +261,11 @@
|
@@ -235,6 +274,11 @@
|
||||||
if (this.releaseBee(iblockdata, tileentitybeehive_hivebee, (List) null, tileentitybeehive_releasestatus)) {
|
if (this.releaseBee(iblockdata, tileentitybeehive_hivebee, (List) null, tileentitybeehive_releasestatus)) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
@ -109,7 +132,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,6 +307,11 @@
|
@@ -276,6 +320,11 @@
|
||||||
this.flowerPos = GameProfileSerializer.b(nbttagcompound.getCompound("FlowerPos"));
|
this.flowerPos = GameProfileSerializer.b(nbttagcompound.getCompound("FlowerPos"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,7 +144,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -285,6 +321,7 @@
|
@@ -285,6 +334,7 @@
|
||||||
if (this.x()) {
|
if (this.x()) {
|
||||||
nbttagcompound.set("FlowerPos", GameProfileSerializer.a(this.flowerPos));
|
nbttagcompound.set("FlowerPos", GameProfileSerializer.a(this.flowerPos));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user