package com.laytonsmith.abstraction.bukkit;
import com.laytonsmith.abstraction.MCBannerMeta;
import com.laytonsmith.abstraction.MCPattern;
import com.laytonsmith.abstraction.enums.MCDyeColor;
import com.laytonsmith.abstraction.enums.bukkit.BukkitMCDyeColor;
import org.bukkit.block.banner.Pattern;
import org.bukkit.inventory.meta.BannerMeta;
import java.util.ArrayList;
import java.util.List;
public class BukkitMCBannerMeta extends BukkitMCItemMeta implements MCBannerMeta {
BannerMeta bm;
public BukkitMCBannerMeta(BannerMeta meta) {
super(meta);
bm = meta;
}
@Override
public Object getHandle() {
return bm;
}
@Override
public void addPattern(MCPattern pattern) {
bm.addPattern((Pattern) pattern.getHandle());
}
@Override
public MCDyeColor getBaseColor() {
return BukkitMCDyeColor.getConvertor().getAbstractedEnum(bm.getBaseColor());
}
@Override
public MCPattern getPattern(int i) {
return new BukkitMCPattern(bm.getPattern(i));
}
@Override
public List<MCPattern> getPatterns() {
List<Pattern> bukkitPatterns = bm.getPatterns();
List<MCPattern> patterns = new ArrayList<>(bukkitPatterns.size());
for(Pattern p : bukkitPatterns) {
patterns.add(new BukkitMCPattern(p));
}
return patterns;
}
@Override
public int numberOfPatterns() {
return bm.numberOfPatterns();
}
@Override
public void removePattern(int i) {
bm.removePattern(i);
}
@Override
public void setBaseColor(MCDyeColor color) {
bm.setBaseColor(BukkitMCDyeColor.getConvertor().getConcreteEnum(color));
}
@Override
public void setPattern(int i, MCPattern pattern) {
bm.setPattern(i, (Pattern) pattern.getHandle());
}
@Override
public void setPatterns(List<MCPattern> patterns) {
List<Pattern> bukkitPatterns = new ArrayList<>(patterns.size());
for(MCPattern pattern : patterns) {
bukkitPatterns.add((Pattern) pattern.getHandle());
}
bm.setPatterns(bukkitPatterns);
}
}