java类org.bukkit.inventory.meta.PotionMeta的实例源码

SExprPotionItemEffects.java 文件源码 项目:QuarSK 阅读 23 收藏 0 点赞 0 评论 0
@Nullable
@Override
protected PotionEffect[] get(Event e) {
    ItemStack i = potionItem.getSingle(e);
    if (i == null) {
        return null;
    }
    if (PotionUtils.isPotionItem(i)) {
        PotionMeta meta = (PotionMeta) i.getItemMeta();
        return PotionUtils.actualPotionEffects(meta);
    }
    return null;
}
ExprCustomPotionItem.java 文件源码 项目:QuarSK 阅读 16 收藏 0 点赞 0 评论 0
@NotNull
@Override
protected ItemStack[] get(Event e) {
    ItemStack item = new ItemStack(material, 1);
    PotionMeta meta = (PotionMeta) item.getItemMeta(); //Getting PotionMeta
    Stream.of(potionEffects.getAll(e)).forEach(eff -> meta.addCustomEffect(eff, true));
    item.setItemMeta(meta);
    return new ItemStack[]{item};
}
PotionUtils.java 文件源码 项目:QuarSK 阅读 25 收藏 0 点赞 0 评论 0
public static PotionEffect[] actualPotionEffects(@NotNull PotionMeta meta) {
    List<PotionEffect> effects = new ArrayList<>();
    effects.addAll(meta.getCustomEffects());
    if (meta.getBasePotionData().getType() != PotionType.UNCRAFTABLE) {
        effects.add(fromPotionData(meta.getBasePotionData()));
    }
    return effects.toArray(new PotionEffect[effects.size()]);
}
DropMyEffectsModule.java 文件源码 项目:SurvivalAPI 阅读 68 收藏 0 点赞 0 评论 0
/**
 * Drop player's potion effect on his death
 *
 * @param event Event
 */
@EventHandler
public void onPlayerDeath(PlayerDeathEvent event)
{
    for (PotionEffect potionEffect : event.getEntity().getActivePotionEffects())
    {
        if (this.blacklist.contains(potionEffect.getType()))
            continue;

        if (PotionType.getByEffect(potionEffect.getType()) == null)
            continue;

        if(potionEffect.getDuration() > 10000)
            continue;

        Potion potion = new Potion(PotionType.getByEffect(potionEffect.getType()), potionEffect.getAmplifier() + 1);
        ItemStack stack = potion.toItemStack(1);

        PotionMeta meta = (PotionMeta) stack.getItemMeta();
        meta.clearCustomEffects();
        meta.addCustomEffect(new PotionEffect(potionEffect.getType(), potionEffect.getDuration(), potionEffect.getAmplifier()), true);

        stack.setItemMeta(meta);

        event.getDrops().add(stack);
        event.getEntity().removePotionEffect(potionEffect.getType());
    }
}
DefaultMeta.java 文件源码 项目:SaveableSerializing 阅读 19 收藏 0 点赞 0 评论 0
public DefaultMeta(ItemMeta m){
    if(m instanceof BookMeta)
        meta = new SaveableBookMeta().setFrom(m);
    else if(m instanceof PotionMeta)
        meta = new milkyway.SaveableSerializing.ItemStacks.Upper_1_7.ItemData.ItemMetas.PotionMeta().setFrom(m);
    else if(m instanceof SkullMeta)
        meta = new HeadMeta().setFrom(m);
    else if(m instanceof FireworkMeta)
        meta = new FireworksMeta().setFrom(m);
    else if (m instanceof LeatherArmorMeta)
        meta = new LeatherArmoursMeta().setFrom(m);
    else if(m instanceof EnchantmentStorageMeta)
        meta = new SaveableEnchantBook().setFrom(m);
    else if(m instanceof FireworkEffectMeta)
        meta = new FireworkEffectsMeta().setFrom(m);
    if(m != null){
        display = m.getDisplayName();
        if(m.hasLore())
            lore = m.getLore();
        try{
            for(ItemFlag flag : m.getItemFlags())
                this.flag.add(flag.name());
        }catch (Exception ex)
        {}
    }

}
ItemMaker.java 文件源码 项目:PA 阅读 22 收藏 0 点赞 0 评论 0
public ItemMaker addPotionType(PotionType type, int time, int amplifier) {
    PotionMeta itemMeta = (PotionMeta) this.itemStack.getItemMeta();
    itemMeta.setMainEffect(type.getEffectType());

    itemMeta.addCustomEffect(new PotionEffect(type.getEffectType(), time * 20, amplifier), true);

    this.itemStack.setItemMeta(itemMeta);
    return this;
}
ItemManager.java 文件源码 项目:TalentZzzz 阅读 28 收藏 0 点赞 0 评论 0
public ItemStack getItemStack() {
    ItemStack itemStack = new ItemStack(id, amount, damage);
    ItemMeta itemMeta = itemStack.getItemMeta();
    if (name != null)
        itemMeta.setDisplayName(name);
    if (lore != null)
        itemMeta.setLore(lore);
    if (effect != null && itemMeta instanceof PotionMeta)
        effect.forEach(e -> ((PotionMeta) itemMeta).addCustomEffect(e.getPotionEffect(), true));
    itemStack.setItemMeta(itemMeta);
    if (enchant != null)
        enchant.forEach(e -> e.apply(itemStack));
    return itemStack;
}
BrewingRecipe.java 文件源码 项目:NationZ 阅读 16 收藏 0 点赞 0 评论 0
public ItemStack getResult() {
    ItemStack is = new ItemStack(Material.POTION);
    PotionMeta pm = (PotionMeta) is.getItemMeta();
    pm.addCustomEffect(new PotionEffect(potionEffectType, maxDuration, maxAmplifier), true);
    pm.setMainEffect(potionEffectType);
    is.setItemMeta(pm);
    return is;
}
XMLItemMeta.java 文件源码 项目:Arcade2 阅读 20 收藏 0 点赞 0 评论 0
public static PotionMeta parsePotion(Element xml, PotionMeta source) {
    for (Element effectElement : xml.getChildren("potion-effect")) {
        PotionEffect effect = XMLPotionEffect.parse(effectElement);
        if (effect != null) {
            source.addCustomEffect(effect, false);
        }
    }

    return source;
}
DocumentItems.java 文件源码 项目:Cardinal 阅读 22 收藏 0 点赞 0 评论 0
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;
}


问题


面经


文章

微信
公众号

扫码关注公众号