Fixed sprinting while breaking a painting edge case. Fixes BUKKIT-740

This commit is contained in:
EvilSeph 2012-02-13 00:40:32 -05:00
parent 9b10970f6b
commit 1c28c946fa
3 changed files with 20 additions and 10 deletions

View File

@ -308,17 +308,17 @@ public class EntityBoat extends Entity {
if (!destroyEvent.isCancelled()) {
// CraftBukkit end
this.die();
this.die();
int k;
int k;
for (k = 0; k < 3; ++k) {
this.a(Block.WOOD.id, 1, 0.0F);
}
for (k = 0; k < 3; ++k) {
this.a(Block.WOOD.id, 1, 0.0F);
}
for (k = 0; k < 2; ++k) {
this.a(Item.STICK.id, 1, 0.0F);
}
for (k = 0; k < 2; ++k) {
this.a(Item.STICK.id, 1, 0.0F);
}
} // CraftBukkit
}
} else {

View File

@ -286,11 +286,14 @@ public class EntityPainting extends Entity {
}
public void b_(double d0, double d1, double d2) {
if (!this.world.isStatic && d0 * d0 + d1 * d1 + d2 * d2 > 0.0D) {
// CraftBukkit start - not needed for paintings
/* if (!this.world.isStatic && d0 * d0 + d1 * d1 + d2 * d2 > 0.0D) {
if (dead) return; // CraftBukkit
this.die();
this.world.addEntity(new EntityItem(this.world, this.locX, this.locY, this.locZ, new ItemStack(Item.PAINTING)));
}
}*/
// CraftBukkit end
}
}

View File

@ -244,6 +244,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
}
if (packet10flying.hasPos && packet10flying.y == -999.0D && packet10flying.stance == -999.0D) {
// CraftBukkit start
if (packet10flying.x > 1 || packet10flying.z > 1) {
System.err.println(player.getName() + " was caught trying to crash the server with an invalid position.");
player.kickPlayer("Nope!");
return;
}
// CraftBukkit end
d5 = packet10flying.x;
d4 = packet10flying.z;
}