package com.laytonsmith.abstraction.bukkit.entities;
import com.laytonsmith.abstraction.AbstractionObject;
import com.laytonsmith.abstraction.entities.MCSkeleton;
import com.laytonsmith.abstraction.enums.MCSkeletonType;
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCSkeletonType;
import com.laytonsmith.core.CHLog;
import com.laytonsmith.core.LogLevel;
import com.laytonsmith.core.constructs.Target;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Skeleton;
/**
*
* @author Hekta
*/
public class BukkitMCSkeleton extends BukkitMCLivingEntity implements MCSkeleton {
public BukkitMCSkeleton(Entity skeleton) {
super(skeleton);
}
public BukkitMCSkeleton(AbstractionObject ao) {
this((Skeleton) ao.getHandle());
}
@Override
public MCSkeletonType getSkeletonType() {
return BukkitMCSkeletonType.getConvertor().getAbstractedEnum(((Skeleton)getHandle()).getSkeletonType());
}
@Override
public void setSkeletonType(MCSkeletonType type) {
try {
((Skeleton) getHandle()).setSkeletonType(BukkitMCSkeletonType.getConvertor().getConcreteEnum(type));
} catch(UnsupportedOperationException ex){
// 1.11 or later
CHLog.GetLogger().Log(CHLog.Tags.DEPRECATION, LogLevel.ERROR,
"Cannot change Skeleton to Stray or WitherSkeleton in Minecraft 1.11+", Target.UNKNOWN);
}
}
}