ProjectAres/Commons/bukkit/src/main/java/tc/oc/commons/bukkit/localization/MessageMapParser.java

28 lines
967 B
Java

package tc.oc.commons.bukkit.localization;
import java.util.Map;
import javax.inject.Inject;
import net.md_5.bungee.api.chat.BaseComponent;
import org.w3c.dom.Document;
import tc.oc.commons.bukkit.markup.MarkupParser;
import tc.oc.commons.core.stream.Collectors;
import tc.oc.parse.ParseException;
import tc.oc.parse.xml.DocumentParser;
import tc.oc.parse.xml.XML;
public class MessageMapParser implements DocumentParser<Map<String, BaseComponent>> {
private final MarkupParser markupParser;
@Inject MessageMapParser(MarkupParser markupParser) {
this.markupParser = markupParser;
}
@Override
public Map<String, BaseComponent> parse(Document document) throws ParseException {
return XML.childrenNamed(document.getDocumentElement(), "string")
.collect(Collectors.toImmutableMap(el -> XML.requireAttr(el, "name").getValue(),
markupParser::content));
}
}