Fixed insane fall damage (entities reset on death)

This commit is contained in:
Dinnerbone 2010-12-30 20:34:26 +00:00
parent a063036210
commit a9191c24b3
6 changed files with 59 additions and 12 deletions

View File

@ -81,17 +81,19 @@ public class NetServerHandler extends NetHandler
// CraftBukkit start
Location from = new Location(player.getWorld(), g, h, i, e.v, e.w);
Location to = player.getLocation();
PlayerMoveEvent event = new PlayerMoveEvent(Type.PLAYER_MOVE, player, from, to);
server.getPluginManager().callEvent(event);
if (!from.equals(to)) {
PlayerMoveEvent event = new PlayerMoveEvent(Type.PLAYER_MOVE, player, from, to);
server.getPluginManager().callEvent(event);
from = event.getFrom();
to = event.isCancelled() ? from : event.getTo();
from = event.getFrom();
to = event.isCancelled() ? from : event.getTo();
e.p = to.getX();
e.q = to.getY();
e.r = to.getZ();
e.v = to.getYaw();
e.w = to.getPitch();
e.p = to.getX();
e.q = to.getY();
e.r = to.getZ();
e.v = to.getYaw();
e.w = to.getPitch();
}
// CraftBukkit end
if (j) {
@ -481,6 +483,7 @@ public class NetServerHandler extends NetHandler
return;
} else {
e = d.f.d(e);
player.setHandle(e); // CraftBukkit
return;
}
}

View File

@ -8,7 +8,7 @@ import org.bukkit.World;
public class CraftEntity implements org.bukkit.Entity {
protected final CraftServer server;
private final Entity entity;
private Entity entity;
public CraftEntity(final CraftServer server, final Entity entity) {
this.server = server;
@ -35,6 +35,10 @@ public class CraftEntity implements org.bukkit.Entity {
return entity;
}
public void setHandle(final Entity entity) {
this.entity = entity;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {

View File

@ -7,7 +7,7 @@ import org.bukkit.HumanEntity;
import org.bukkit.ItemStack;
public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
private final EntityPlayer entity;
private EntityPlayer entity;
public CraftHumanEntity(final CraftServer server, final EntityPlayer entity) {
super(server, entity);
@ -29,6 +29,11 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return entity;
}
public void setHandle(final EntityPlayer entity) {
super.setHandle((EntityPlayer)entity);
this.entity = entity;
}
@Override
public String toString() {
return "CraftHumanEntity{" + "id=" + getEntityID() + "name=" + getName() + '}';

View File

@ -1,11 +1,12 @@
package org.bukkit.craftbukkit;
import net.minecraft.server.Entity;
import net.minecraft.server.EntityLiving;
import org.bukkit.LivingEntity;
public class CraftLivingEntity extends CraftEntity implements LivingEntity {
private final EntityLiving entity;
private EntityLiving entity;
public CraftLivingEntity(final CraftServer server, final EntityLiving entity) {
super(server, entity);
@ -29,6 +30,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return entity;
}
public void setHandle(final EntityLiving entity) {
super.setHandle((Entity)entity);
this.entity = entity;
}
@Override
public String toString() {
return "CraftLivingEntity{" + "id=" + getEntityID() + '}';

View File

@ -1,6 +1,7 @@
package org.bukkit.craftbukkit;
import net.minecraft.server.EntityPlayer;
import net.minecraft.server.EntityPlayerMP;
import net.minecraft.server.Packet3Chat;
import org.bukkit.Location;
@ -24,6 +25,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setHandle(final EntityPlayerMP entity) {
super.setHandle((EntityPlayer)entity);
this.entity = entity;
}
@ -40,4 +42,26 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public String toString() {
return "CraftPlayer{" + "name=" + getName() + '}';
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final CraftPlayer other = (CraftPlayer) obj;
if ((this.getName() == null) ? (other.getName() != null) : !this.getName().equals(other.getName())) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 5;
hash = 97 * hash + (this.getName() != null ? this.getName().hashCode() : 0);
return hash;
}
}

View File

@ -70,6 +70,11 @@ public class CraftWorld implements World {
return world;
}
@Override
public String toString() {
return "CraftWorld";
}
private final class ChunkCoordinate {
public final int x;
public final int z;