package eu.mikroskeem.utils.bannerparser.parsers.needcoolshoes; import eu.mikroskeem.utils.bannerparser.parsers.Parser; import org.bukkit.DyeColor; import org.bukkit.block.banner.Pattern; import org.bukkit.block.banner.PatternType; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class NeedCoolShoesParser implements Parser { /* * See http://www.needcoolshoes.com/banner */ public ArrayList fromUrl(URL url){ try { String bannerData = url.getQuery().split("\\?=")[0].substring(1); return parse(bannerData); } catch (ArrayIndexOutOfBoundsException e){ return null; } } private ArrayList parse(String whole){ ArrayList patterns = new ArrayList<>(); List propertyList = Arrays.asList(whole.split("(?<=\\G..)")); propertyList.forEach(property->{ DyeColor color = parseColor(property.charAt(0)); PatternType patternType = parsePattern(property.charAt(1)); patterns.add(new Pattern(color, patternType)); }); return patterns; } private PatternType parsePattern(char part){ String partStr = String.valueOf(part); return PatternParser.valueOf(partStr); } private DyeColor parseColor(char part){ String partStr = String.valueOf(part); return ColorParser.valueOf(partStr); } }