From 5dfaef5542bbd8d8cea4d2a1c67fc845db8549c1 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Thu, 30 Dec 2010 20:34:26 +0000 Subject: [PATCH] Fixed insane fall damage (entities reset on death) By: Dinnerbone --- .../org/bukkit/craftbukkit/CraftEntity.java | 6 ++++- .../bukkit/craftbukkit/CraftHumanEntity.java | 7 +++++- .../bukkit/craftbukkit/CraftLivingEntity.java | 8 ++++++- .../org/bukkit/craftbukkit/CraftPlayer.java | 24 +++++++++++++++++++ .../org/bukkit/craftbukkit/CraftWorld.java | 5 ++++ 5 files changed, 47 insertions(+), 3 deletions(-) diff --git a/paper-server/src/org/bukkit/craftbukkit/CraftEntity.java b/paper-server/src/org/bukkit/craftbukkit/CraftEntity.java index 2a2f2392e7..efbb7f2866 100644 --- a/paper-server/src/org/bukkit/craftbukkit/CraftEntity.java +++ b/paper-server/src/org/bukkit/craftbukkit/CraftEntity.java @@ -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) { diff --git a/paper-server/src/org/bukkit/craftbukkit/CraftHumanEntity.java b/paper-server/src/org/bukkit/craftbukkit/CraftHumanEntity.java index 1152bc62f4..b03f096725 100644 --- a/paper-server/src/org/bukkit/craftbukkit/CraftHumanEntity.java +++ b/paper-server/src/org/bukkit/craftbukkit/CraftHumanEntity.java @@ -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() + '}'; diff --git a/paper-server/src/org/bukkit/craftbukkit/CraftLivingEntity.java b/paper-server/src/org/bukkit/craftbukkit/CraftLivingEntity.java index 2c70d10a08..8f75338699 100644 --- a/paper-server/src/org/bukkit/craftbukkit/CraftLivingEntity.java +++ b/paper-server/src/org/bukkit/craftbukkit/CraftLivingEntity.java @@ -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() + '}'; diff --git a/paper-server/src/org/bukkit/craftbukkit/CraftPlayer.java b/paper-server/src/org/bukkit/craftbukkit/CraftPlayer.java index f10d920c19..a8a368dc97 100644 --- a/paper-server/src/org/bukkit/craftbukkit/CraftPlayer.java +++ b/paper-server/src/org/bukkit/craftbukkit/CraftPlayer.java @@ -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; + } } diff --git a/paper-server/src/org/bukkit/craftbukkit/CraftWorld.java b/paper-server/src/org/bukkit/craftbukkit/CraftWorld.java index e3d691f846..5e6d20d7ec 100644 --- a/paper-server/src/org/bukkit/craftbukkit/CraftWorld.java +++ b/paper-server/src/org/bukkit/craftbukkit/CraftWorld.java @@ -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;