當前位置: 首頁>>代碼示例>>Java>>正文


Java Potion類代碼示例

本文整理匯總了Java中org.bukkit.potion.Potion的典型用法代碼示例。如果您正苦於以下問題:Java Potion類的具體用法?Java Potion怎麽用?Java Potion使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Potion類屬於org.bukkit.potion包,在下文中一共展示了Potion類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: setMainPotionEffect

import org.bukkit.potion.Potion; //導入依賴的package包/類
public ItemBuilder setMainPotionEffect(PotionType type, boolean extendedDurability, int level, boolean splash) {
    if (! (meta instanceof PotionMeta))
        return this;

    Potion potion = Potion.fromItemStack(stack);
    potion.setType(type);

    if (! type.isInstant())
        potion.setHasExtendedDuration(extendedDurability);

    potion.setLevel(level);
    potion.setSplash(splash);

    potion.apply(stack);

    return this;
}
 
開發者ID:shawlaf,項目名稱:Banmanager,代碼行數:18,代碼來源:ItemBuilder.java

示例2: onPlayerItemConsumeEvent

import org.bukkit.potion.Potion; //導入依賴的package包/類
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent event)
{
	Player player = event.getPlayer();
	
	if (!WorldGuardUtils.hasBypass(player))
	{
		ItemMeta itemMeta = event.getItem().getItemMeta();
		if (itemMeta instanceof PotionMeta)
		{
			WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(player).getHandler(GiveEffectsFlag.class).drinkPotion(player, Potion.fromItemStack(event.getItem()).getEffects());
		}
		else
		{
			Material material = event.getItem().getType();
			if (material == Material.MILK_BUCKET)
			{
				WorldGuardExtraFlagsPlugin.getWorldGuardPlugin().getSessionManager().get(player).getHandler(GiveEffectsFlag.class).drinkMilk(player);
			}
		}
	}
}
 
開發者ID:isokissa3,項目名稱:WorldGuardExtraFlagsPlugin,代碼行數:23,代碼來源:PlayerListener.java

示例3: LuckyPotion

import org.bukkit.potion.Potion; //導入依賴的package包/類
public void LuckyPotion(BlockBreakEvent event){
    Location loc = event.getBlock().getLocation();
    World world = loc.getWorld();
    ItemStack energyPotion = new ItemStack(Material.POTION, 1);
    PotionMeta energyPotionMeta = (PotionMeta) energyPotion.getItemMeta();
    energyPotionMeta.setDisplayName("§6Lucky Potion");
    List<String> lore = new ArrayList<String>();
    lore.add("§6"+ LuckyBlocksMainController.instance.language.getString("POTION_DURATION"));
    energyPotionMeta.setLore(lore);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.SPEED, 20*60, 1), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 20*60, 1), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.ABSORPTION, 20*60, 1), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.HEAL, 20*60, 1), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST, 20*60, 1), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60, 1), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.JUMP, 20*60, 3), true);
    energyPotionMeta.addCustomEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 20*60, 3), true);
    energyPotion.setItemMeta(energyPotionMeta);
    Potion po = new Potion((byte) 8258);
    po.apply(energyPotion);
    world.dropItemNaturally(loc,energyPotion);
}
 
開發者ID:josegrobles,項目名稱:LuckyBlocksBukkit,代碼行數:23,代碼來源:LuckyBlocksActionController.java

示例4: denyPotion

import org.bukkit.potion.Potion; //導入依賴的package包/類
public static boolean denyPotion(ItemStack result, Player p){
	List<String> Pots = RPConfig.getStringList("server-protection.deny-potions");
	if (result != null && Pots.size() > 0 && (result.getType().name().contains("POTION") || result.getType().name().contains("TIPPED"))){
		String potname = "";
		if (RedProtect.get().version >= 190){
			PotionMeta pot = (PotionMeta) result.getItemMeta();
			potname = pot.getBasePotionData().getType().name();
		}
		if (RedProtect.get().version <= 180 && Potion.fromItemStack(result) != null){
			potname = Potion.fromItemStack(result).getType().name();
		}    		
		if (Pots.contains(potname)){    			
			RPLang.sendMessage(p, "playerlistener.denypotion");
			return true;
		}        	    		
	}
	return false;
}
 
開發者ID:FabioZumbi12,項目名稱:RedProtect,代碼行數:19,代碼來源:RPUtil.java

示例5: onConsumePotion

import org.bukkit.potion.Potion; //導入依賴的package包/類
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onConsumePotion(PlayerItemConsumeEvent event) {
    if (Settings.INDICATOR_ENABLE.getValue("potion")) {
        if (event.getItem().getType() == Material.POTION) {
            Potion potion = Potion.fromItemStack(event.getItem());
            if (potion != null) {
                this.showPotionHologram(event.getPlayer(), potion.getEffects());
            }
        } else if (event.getItem().getType() == Material.GOLDEN_APPLE) {
            String msg = Settings.INDICATOR_FORMAT.getValue("potion", "goldenapple");
            if (event.getItem().getDurability() == 1) {
                msg = Settings.INDICATOR_FORMAT.getValue("potion", "godapple");
            }
            Location l = event.getPlayer().getLocation().clone();
            l.setY(l.getY() + Settings.INDICATOR_Y_OFFSET.getValue("potion"));
            HoloAPI.getManager().createSimpleHologram(l, Settings.INDICATOR_TIME_VISIBLE.getValue("potion"), true, msg.replace("%effect%", "Golden Apple"));
        }
    }
}
 
開發者ID:DSH105,項目名稱:HoloAPI,代碼行數:20,代碼來源:IndicatorListener.java

示例6: onConvert

import org.bukkit.potion.Potion; //導入依賴的package包/類
@Nullable
@Override
protected Potion onConvert(@Nullable Object value) {

    if (value instanceof String) {
        value = TextUtils.parseShort((String) value, Short.MIN_VALUE);
        if (value == new Short(Short.MIN_VALUE))
            return null;
    }
    else if (value instanceof Number) {
        value = ((Number)value).shortValue();
    }

    if (value instanceof Short) {
        return new Potion((Short) value);
    }

    return null;
}
 
開發者ID:JCThePants,項目名稱:NucleusFramework,代碼行數:20,代碼來源:PotionConverter.java

示例7: onPlayerConsume

import org.bukkit.potion.Potion; //導入依賴的package包/類
/**
 * Checks to see if the player is attempting to drink a potion, and checks
 * the potion to see if it is allowed.
 *
 * @param event The PlayerItemConsumeEvent involving the player.
 */
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerConsume(PlayerItemConsumeEvent event) {
    if (event.getItem().getType() != Material.POTION) {
        return;
    }
    // Check the type of potion in the player's hand
    Potion potion = Potion.fromItemStack(event.getItem());
    Collection<PotionEffect> effects = potion.getEffects();

    for (PotionEffect e : effects) {
        if (!(Util.canUsePotion(event.getPlayer(), e.getType()))) {
            // If we get here, we cancel this event and all is done.
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED + "You cannot use that potion here!");
            Util.removeDisallowedEffects(event.getPlayer());
            return; // We don't need to check any more.
        }
    }
}
 
開發者ID:Tribalforge,項目名稱:AntiPotionField,代碼行數:26,代碼來源:PlayerEventRegionsHandler.java

示例8: potionToNBTEffectsList

import org.bukkit.potion.Potion; //導入依賴的package包/類
public static NBTTagList potionToNBTEffectsList(ItemStack potion) {
	NBTTagCompound tag = getItemStackTag(potion);
	if (tag.hasKey("CustomPotionEffects")) {
		return tag.getList("CustomPotionEffects").clone();
	}
	// Fallback to default potion effect.
	Collection<PotionEffect> effects = Potion.fromItemStack(potion).getEffects();
	NBTTagList effectList = new NBTTagList();
	for (PotionEffect effect : effects) {
		NBTTagCompound effectTag = new NBTTagCompound();
		effectTag.setByte("Id", (byte)effect.getType().getId());
		effectTag.setByte("Amplifier", (byte)effect.getAmplifier());
		effectTag.setInt("Duration", effect.getDuration());
		effectList.add(effectTag);
	}
	return effectList;
}
 
開發者ID:goncalomb,項目名稱:BKgLib,代碼行數:18,代碼來源:NBTUtils.java

示例9: createPotion

import org.bukkit.potion.Potion; //導入依賴的package包/類
public static ItemStack createPotion(PotionType potionType, int level, String name) {
    Potion potion = new Potion(potionType);
    potion.setLevel(level);

    ItemStack itemStack = potion.toItemStack(1);
    ItemMeta meta = itemStack.getItemMeta();
    meta.setDisplayName(name);
    itemStack.setItemMeta(meta);

    return itemStack;
}
 
開發者ID:WarzoneMC,項目名稱:Warzone,代碼行數:12,代碼來源:ItemFactory.java

示例10: parseItem

import org.bukkit.potion.Potion; //導入依賴的package包/類
public ItemStack parseItem(Element el, Material type, short damage) throws InvalidXMLException {
    int amount = XMLUtils.parseNumber(el.getAttribute("amount"), Integer.class, 1);

    // If the item is a potion with non-zero damage, and there is
    // no modern potion ID, decode the legacy damage value.
    final Potion legacyPotion;
    if(type == Material.POTION && damage > 0 && el.getAttribute("potion") == null) {
        try {
            legacyPotion = Potion.fromDamage(damage);
        } catch(IllegalArgumentException e) {
            throw new InvalidXMLException("Invalid legacy potion damage value " + damage + ": " + e.getMessage(), el, e);
        }

        // If the legacy splash bit is set, convert to a splash potion
        if(legacyPotion.isSplash()) {
            type = Material.SPLASH_POTION;
            legacyPotion.setSplash(false);
        }

        // Potions always have damage 0
        damage = 0;
    } else {
        legacyPotion = null;
    }

    ItemStack itemStack = new ItemStack(type, amount, damage);
    if(itemStack.getType() != type) {
        throw new InvalidXMLException("Invalid item/block", el);
    }

    final ItemMeta meta = itemStack.getItemMeta();
    if(meta != null) { // This happens if the item is "air"
        parseItemMeta(el, meta);

        // If we decoded a legacy potion, apply it now, but only if there are no custom effects.
        // This emulates the old behavior of custom effects overriding default effects.
        if(legacyPotion != null) {
            final PotionMeta potionMeta = (PotionMeta) meta;
            if(!potionMeta.hasCustomEffects()) {
                potionMeta.setBasePotionData(new PotionData(legacyPotion.getType(),
                                                            legacyPotion.hasExtendedDuration(),
                                                            legacyPotion.getLevel() == 2));
            }
        }

        itemStack.setItemMeta(meta);
    }

    return itemStack;
}
 
開發者ID:OvercastNetwork,項目名稱:ProjectAres,代碼行數:51,代碼來源:GlobalItemParser.java

示例11: setUp

import org.bukkit.potion.Potion; //導入依賴的package包/類
@Before
public void setUp() {
    CraftBukkitRuntime.load();
    if(Potion.getBrewer() == null) {
        Potion.setPotionBrewer(new CraftPotionBrewer());
    }
}
 
開發者ID:OvercastNetwork,項目名稱:ProjectAres,代碼行數:8,代碼來源:PotionClassificationTest.java

示例12: onPlayerDeath

import org.bukkit.potion.Potion; //導入依賴的package包/類
/**
 * 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());
    }
}
 
開發者ID:SamaGames,項目名稱:SurvivalAPI,代碼行數:33,代碼來源:DropMyEffectsModule.java

示例13: testValidity

import org.bukkit.potion.Potion; //導入依賴的package包/類
private boolean testValidity(ItemStack[] contents) {
    for (ItemStack stack : contents) {
        if (stack != null && stack.getType() == Material.POTION && stack.getDurability() != 0) {
            Potion potion = Potion.fromItemStack(stack);

            // Just to be safe, null check this.
            if (potion == null)
                continue;

            PotionType type = potion.getType();

            // Mundane potions etc, can return a null type
            if (type == null)
                continue;

            // is 33s poison, allow
            if (type == PotionType.POISON && !potion.hasExtendedDuration() && potion.getLevel() == 1) {
                continue;
            }

            if (potion.getLevel() > getMaxLevel(type)) {
                return false;
            }
        }
    }
    return true;
}
 
開發者ID:funkemunky,項目名稱:HCFCore,代碼行數:28,代碼來源:PotionLimitListener.java

示例14: onPlayerInteract

import org.bukkit.potion.Potion; //導入依賴的package包/類
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event)
{
    if (event.getItem() != null && event.getItem().getType() == Material.POTION && Potion.fromItemStack(event.getItem()).getType() == PotionType.POISON && !this.game.isPvPActivated())
    {
        event.getPlayer().sendMessage(ChatColor.RED + "Vous ne pouvez pas utiliser cet objet hors du PvP.");

        event.setCancelled(true);
        event.getPlayer().updateInventory();
    }
}
 
開發者ID:SamaGames,項目名稱:DoubleRunner,代碼行數:12,代碼來源:DoubleRunnerGameLoop.java

示例15: guessData

import org.bukkit.potion.Potion; //導入依賴的package包/類
public static short guessData(final ThrownPotion p) {
	if (p.getEffects().size() == 1) {
		final PotionEffect e = p.getEffects().iterator().next();
		final Potion d = new Potion(PotionType.getByEffect(e.getType())).splash();
		return d.toDamageValue();
	}
	return 0;
}
 
開發者ID:nfell2009,項目名稱:Skript,代碼行數:9,代碼來源:PotionEffectUtils.java


注:本文中的org.bukkit.potion.Potion類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。