@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;
}
java类org.bukkit.inventory.meta.PotionMeta的实例源码
SExprPotionItemEffects.java 文件源码
项目:QuarSK
阅读 23
收藏 0
点赞 0
评论 0
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;
}