Utils/Bannerparser/src/main/java/eu/mikroskeem/utils/bannerparser/parsers/needcoolshoes/NeedCoolShoesParser.java

48 lines
1.4 KiB
Java

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<Pattern> fromUrl(URL url){
try {
String bannerData = url.getQuery().split("\\?=")[0].substring(1);
return parse(bannerData);
} catch (ArrayIndexOutOfBoundsException e){
return null;
}
}
private ArrayList<Pattern> parse(String whole){
ArrayList<Pattern> patterns = new ArrayList<>();
List<String> 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);
}
}