DocumentItems.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:Cardinal 作者:
public static ItemStack applyMeta(ItemStack itemStack, Element element) {
  for (Element enchant : element.getChildren("enchantment")) {
    String ench = enchant.getText();
    Enchantment enchantment = Enchantment.getByName(Strings.getTechnicalName(ench));
    int lvl = Numbers.parseInteger(enchant.getAttributeValue("level"), 1);
    if (enchantment == null) {
      //TODO: NMS name check
    } else {
      itemStack.addUnsafeEnchantment(enchantment, lvl);
    }
  }
  ItemMeta meta = itemStack.getItemMeta();
  for (Element effect : element.getChildren("effect")) {
    PotionEffect potionEffect = getPotion(effect);
    if (!((PotionMeta) meta).getCustomEffects().contains(potionEffect)) {
      ((PotionMeta) meta).addCustomEffect(potionEffect, true);
    }
  }
  for (Element attribute : element.getChildren("attribute")) {
    ItemAttributeModifier itemAttribute = getAttribute(attribute);
    if (!meta.getModifiedAttributes().contains(attribute.getText())) {
      meta.addAttributeModifier(attribute.getText(), itemAttribute);
    }
  }
  /* TODO: can-destroy & can-place-on, and all attributes
   * @link https://docs.oc.tc/modules/item_mods#itemmeta
   */
  itemStack.setItemMeta(meta);
  return itemStack;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号