package me.arasple.mc.trmenu.utils;

import io.izzel.taboolib.internal.apache.lang3.math.NumberUtils;
import org.bukkit.Color;
import org.bukkit.DyeColor;
import org.bukkit.block.banner.Pattern;
import org.bukkit.block.banner.PatternType;
import org.bukkit.inventory.meta.BannerMeta;
import org.bukkit.inventory.meta.LeatherArmorMeta;

import java.util.List;

/**
 * @author Arasple, Bkm016
 * @date 2020/1/14 21:52
 */
public class Dyer {

    /**
     * @author Bkm016
     */
    public static void setBanner(BannerMeta itemMeta, List<String> patterns) {
        patterns.forEach(pattern -> {
            String[] type = pattern.split(" ");
            if (type.length == 1) {
                try {
                    itemMeta.setBaseColor(DyeColor.valueOf(type[0].toUpperCase()));
                } catch (Exception ignored) {
                    itemMeta.setBaseColor(DyeColor.BLACK);
                }
            } else if (type.length == 2) {
                try {
                    itemMeta.addPattern(new Pattern(DyeColor.valueOf(type[0].toUpperCase()), PatternType.valueOf(type[1].toUpperCase())));
                } catch (Exception e) {
                    itemMeta.addPattern(new Pattern(DyeColor.BLACK, PatternType.BASE));
                }
            }
        });
    }

    public static void setLeather(LeatherArmorMeta meta, String color) {
        String[] rgb = color.split(",");
        if (rgb.length == 3) {
            int r = NumberUtils.toInt(rgb[0], 0);
            int g = NumberUtils.toInt(rgb[1], 0);
            int b = NumberUtils.toInt(rgb[2], 0);
            meta.setColor(Color.fromRGB(r, g, b));
        }
    }

}