package tc.oc.pgm.xml.parser; import javax.inject.Inject; import org.bukkit.Material; import org.bukkit.material.MaterialData; import tc.oc.pgm.xml.InvalidXMLException; import tc.oc.pgm.xml.Node; public class MaterialDataParser extends PrimitiveParser<MaterialData> { private final MaterialParser materialParser; private final NumberParser<Byte> byteParser; @Inject MaterialDataParser(MaterialParser materialParser, NumberParser<Byte> byteParser) { this.materialParser = materialParser; this.byteParser = byteParser; } @Override protected MaterialData parseInternal(Node node, String text) throws FormatException, InvalidXMLException { final String[] pieces = text.split(":"); final Material material = materialParser.parse(node, pieces[0]); final byte data; if(pieces.length > 1) { data = byteParser.parse(node, pieces[1]); } else { data = 0; } return material.getNewData(data); } }