package com.laytonsmith.abstraction.bukkit.entities;
import com.laytonsmith.abstraction.Implementation;
import com.laytonsmith.abstraction.MCItemStack;
import com.laytonsmith.abstraction.bukkit.BukkitMCItemStack;
import com.laytonsmith.abstraction.entities.MCLlama;
import com.laytonsmith.abstraction.enums.EnumConvertor;
import com.laytonsmith.abstraction.enums.MCVersion;
import com.laytonsmith.annotations.abstractionenum;
import com.laytonsmith.core.Static;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Llama;
public class BukkitMCLlama extends BukkitMCChestedHorse implements MCLlama {
Llama l;
public BukkitMCLlama(Entity t) {
super(t);
this.l = (Llama) t;
}
@Override
public MCLlamaColor getLlamaColor() {
return BukkitMCLlamaColor.getConvertor().getAbstractedEnum(l.getColor());
}
@Override
public void setLlamaColor(MCLlamaColor color) {
l.setColor(BukkitMCLlamaColor.getConvertor().getConcreteEnum(color));
}
@Override
public void setSaddle(MCItemStack stack) {
ah.getInventory().setItem(1, ((BukkitMCItemStack)stack).asItemStack());
}
@Override
public MCItemStack getSaddle() {
return new BukkitMCItemStack(ah.getInventory().getItem(1));
}
@abstractionenum(
implementation= Implementation.Type.BUKKIT,
forAbstractEnum=MCLlamaColor.class,
forConcreteEnum=Llama.Color.class
)
public static class BukkitMCLlamaColor extends EnumConvertor<MCLlamaColor, Llama.Color>{
private static BukkitMCLlamaColor instance;
public static BukkitMCLlamaColor getConvertor() {
if (instance == null) {
instance = new BukkitMCLlamaColor();
}
return instance;
}
@Override
protected Llama.Color getConcreteEnumCustom(MCLlamaColor abstracted) {
if(Static.getServer().getMinecraftVersion().lt(MCVersion.MC1_11)) {
return null;
}
return super.getConcreteEnumCustom(abstracted);
}
}
}