Implemented new 1.2 entities - this fixes BUKKIT-872 and BUKKIT-885

This commit is contained in:
Nathan Adams
2012-03-01 18:02:16 +00:00
parent 5108569383
commit f1f9802ded
9 changed files with 213 additions and 100 deletions

View File

@@ -0,0 +1,81 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityTameableAnimal;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Creature;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creature {
private AnimalTamer owner;
public CraftTameableAnimal(CraftServer server, EntityTameableAnimal entity) {
super(server, entity);
}
@Override
public EntityTameableAnimal getHandle() {
return (EntityTameableAnimal)super.getHandle();
}
public AnimalTamer getOwner() {
if (owner == null && !("").equals(getOwnerName())) {
owner = getServer().getPlayer(getOwnerName());
if (owner == null) {
owner = getServer().getOfflinePlayer(getOwnerName());
}
}
return owner;
}
public String getOwnerName() {
return getHandle().getOwnerName();
}
public boolean isTamed() {
return getHandle().isTamed();
}
public void setOwner(AnimalTamer tamer) {
owner = tamer;
if (owner != null) {
setTamed(true);
getHandle().setPathEntity(null);
if (owner instanceof Player) {
setOwnerName(((Player) owner).getName());
} else {
setOwnerName("");
}
} else {
setTamed(false);
setOwnerName("");
}
}
public void setOwnerName(String ownerName) {
getHandle().setOwnerName(ownerName);
}
public void setTamed(boolean tame) {
getHandle().setTamed(tame);
}
public boolean isSitting() {
return getHandle().isSitting();
}
public void setSitting(boolean sitting) {
getHandle().setSitting(sitting);
getHandle().setPathEntity(null);
}
@Override
public String toString() {
return getClass().getSimpleName() + "{owner=" + getOwner() + ",tamed=" + isTamed() + "}";
}
}