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


Java InventoryHolder類代碼示例

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


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

示例1: getAmmo

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
/**
 * This figures out if the gun's ammo is in the entity's inventory. 
 * 
 * @param entity the entity to check
 * @return the Bullet type found that is valid for this gun, or null.
 */
public Bullet getAmmo(LivingEntity entity) {
	if (entity == null || !enabled)
		return null;

	ItemStack[] inv;
	if (entity instanceof InventoryHolder) {
		// complex inventory
		InventoryHolder holder = (InventoryHolder) entity;
		inv = holder.getInventory().getContents();
	} else {
		// simple inventory
		inv = entity.getEquipment().getArmorContents();
	}

	if (inv != null) {
		for (ItemStack item : inv) {
			Bullet bullet = AddGun.getPlugin().getAmmo().findBullet(item);
			if (bullet != null && this.allBullets.contains(bullet.getName())) {
				return bullet;
			}
		}
	}
	return null;
}
 
開發者ID:ProgrammerDan,項目名稱:AddGun,代碼行數:31,代碼來源:StandardGun.java

示例2: hasGun

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
/**
 * Check if this living entity has a gun of this type already in possession
 * @param entity the entity to check
 * @return true if already in inventory, false otherwise.
 */
public boolean hasGun(LivingEntity entity) {
	if (entity == null || !enabled)
		return false;

	ItemStack[] inv;
	if (entity instanceof InventoryHolder) {
		// complex inventory
		InventoryHolder holder = (InventoryHolder) entity;
		inv = holder.getInventory().getContents();
	} else {
		// simple inventory
		inv = entity.getEquipment().getArmorContents();
	}

	if (inv != null) {
		for (ItemStack item : inv) {
			if (isGun(item)) {
				return true;
			}
		}
	}
	return false;
}
 
開發者ID:ProgrammerDan,項目名稱:AddGun,代碼行數:29,代碼來源:StandardGun.java

示例3: hasBullet

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
public boolean hasBullet(LivingEntity entity) {
	if (entity == null || !enabled)
		return false;

	ItemStack[] inv;
	if (entity instanceof InventoryHolder) {
		// complex inventory
		InventoryHolder holder = (InventoryHolder) entity;
		inv = holder.getInventory().getContents();
	} else {
		// simple inventory
		inv = entity.getEquipment().getArmorContents();
	}

	if (inv != null) {
		for (ItemStack item : inv) {
			if (isBullet(item)) {
				return true;
			}
		}
	}
	return false;
}
 
開發者ID:ProgrammerDan,項目名稱:AddGun,代碼行數:24,代碼來源:RailGun.java

示例4: hasGun

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
public boolean hasGun(LivingEntity entity) {
	if (entity == null || !enabled)
		return false;

	ItemStack[] inv;
	if (entity instanceof InventoryHolder) {
		// complex inventory
		InventoryHolder holder = (InventoryHolder) entity;
		inv = holder.getInventory().getContents();
	} else {
		// simple inventory
		inv = entity.getEquipment().getArmorContents();
	}

	if (inv != null) {
		for (ItemStack item : inv) {
			if (isGun(item)) {
				return true;
			}
		}
	}
	return false;
}
 
開發者ID:ProgrammerDan,項目名稱:AddGun,代碼行數:24,代碼來源:RailGun.java

示例5: getInvXp

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
/**
 * Estimates the XP this entity in inventory.
 * 
 * @param entity
 * @return
 */
private int getInvXp(LivingEntity entity) {
	if (entity == null || !enabled)
		return 0;

	ItemStack[] inv;
	if (entity instanceof InventoryHolder) {
		// complex inventory
		InventoryHolder holder = (InventoryHolder) entity;
		inv = holder.getInventory().getContents();
	} else {
		// simple inventory
		inv = entity.getEquipment().getArmorContents();
	}

	int total = 0;
	if (inv != null) {
		for (ItemStack item : inv) {
			if (Material.EXP_BOTTLE.equals(item)) {
				total += item.getAmount();
			}
		}
	}
	return total;
}
 
開發者ID:ProgrammerDan,項目名稱:AddGun,代碼行數:31,代碼來源:RailGun.java

示例6: getInvXp

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
/**
 * Estimates the XP this entity has in inventory.
 * 
 * @param entity the entity to check
 * @return how much XP is held
 */
public static int getInvXp(LivingEntity entity) {
	if (entity == null)
		return 0;

	ItemStack[] inv;
	if (entity instanceof InventoryHolder) {
		// complex inventory
		InventoryHolder holder = (InventoryHolder) entity;
		inv = holder.getInventory().getContents();
	} else {
		// simple inventory
		inv = entity.getEquipment().getArmorContents();
	}

	int total = 0;
	if (inv != null) {
		for (ItemStack item : inv) {
			if (Material.EXP_BOTTLE.equals(item)) {
				total += item.getAmount();
			}
		}
	}
	return total;
}
 
開發者ID:ProgrammerDan,項目名稱:AddGun,代碼行數:31,代碼來源:Utilities.java

示例7: onInventoryClose

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@EventHandler
public void onInventoryClose(InventoryCloseEvent e)
{
	if(!(e.getPlayer() instanceof Player))
		return;
	
	Inventory inv = e.getInventory();
	InventoryHolder holder = inv.getHolder();
	if(holder != null && holder instanceof Menu)
	{
		Menu menu = (Menu) holder;
		menu.viewers.remove(e.getPlayer());
		if(menu.viewers.size() == 0)
			openMenus.remove(menu);
	}
}
 
開發者ID:timtomtim7,項目名稱:SparseBukkitAPI,代碼行數:17,代碼來源:MenuManager.java

示例8: handleWoolCrafting

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@EventHandler
public void handleWoolCrafting(PrepareItemCraftEvent event) {
    ItemStack result = event.getRecipe().getResult();
    InventoryHolder holder = event.getInventory().getHolder();

    if (holder instanceof Player) {
        MatchPlayer playerHolder = this.match.getPlayer((Player) holder);

        if (playerHolder != null && result != null && result.getType() == Material.WOOL) {
            for(MonumentWool wool : this.wools) {
                if(wool.getDefinition().isObjectiveWool(result)) {
                    if(!wool.getDefinition().isCraftable()) {
                        playerHolder.sendMessage(ChatColor.RED + PGMTranslations.t("match.wool.craftDisabled", playerHolder, BukkitUtils.woolMessage(wool.getDyeColor())));
                        event.getInventory().setResult(null);
                    }
                }
            }
        }
    }
}
 
開發者ID:OvercastNetwork,項目名稱:ProjectAres,代碼行數:21,代碼來源:WoolMatchModule.java

示例9: passesFilter

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
/**
 * Return a predicate that applies a Filter to the given InventoryHolder,
 * or null if the InventoryHolder is not something that we should be filling.
 */
private static @Nullable Predicate<Filter> passesFilter(InventoryHolder holder) {
    if(holder instanceof DoubleChest) {
        final DoubleChest doubleChest = (DoubleChest) holder;
        return filter -> !filter.denies((Chest) doubleChest.getLeftSide()) ||
                         !filter.denies((Chest) doubleChest.getRightSide());
    } else if(holder instanceof BlockState) {
        return filter -> !filter.denies((BlockState) holder);
    } else if(holder instanceof Player) {
        // This happens with crafting inventories, and possibly other transient inventory types
        // Pretty sure we never want to fill an inventory held by the player
        return null;
    } else if(holder instanceof Entity) {
        return filter -> !filter.denies(new EntityQuery((Entity) holder));
    } else {
        // If we're not sure what it is, don't fill it
        return null;
    }
}
 
開發者ID:OvercastNetwork,項目名稱:ProjectAres,代碼行數:23,代碼來源:FillListener.java

示例10: showInventories

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@EventHandler(ignoreCancelled = true)
public void showInventories(final ObserverInteractEvent event) {
    if(event.getClickType() != ClickType.RIGHT) return;
    if(event.getPlayer().isDead()) return;

    if(event.getClickedParticipant() != null) {
        event.setCancelled(true);
        if(canPreviewInventory(event.getPlayer(), event.getClickedParticipant())) {
            this.previewPlayerInventory(event.getPlayer().getBukkit(), event.getClickedParticipant().getInventory());
        }
    } else if(event.getClickedEntity() instanceof InventoryHolder && !(event.getClickedEntity() instanceof Player)) {
        event.setCancelled(true);
        this.previewInventory(event.getPlayer().getBukkit(), ((InventoryHolder) event.getClickedEntity()).getInventory());
    } else if(event.getClickedBlockState() instanceof InventoryHolder) {
        event.setCancelled(true);
        this.previewInventory(event.getPlayer().getBukkit(), ((InventoryHolder) event.getClickedBlockState()).getInventory());
    }
}
 
開發者ID:OvercastNetwork,項目名稱:ProjectAres,代碼行數:19,代碼來源:ViewInventoryMatchModule.java

示例11: onBlockDispense

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onBlockDispense(BlockDispenseEvent e) {
	if (!cm.isAntiNegativeItemDupe) {
		return;
	}
	Inventory content = null;
	if (e.getBlock().getState() instanceof InventoryHolder) {
		content = ((InventoryHolder) e.getBlock().getState()).getInventory();
	}
	if (content == null || content.getSize() == 0) {
		return;
	}
	for (ItemStack item : content.getContents()) {
		if (item != null && item.getType() != Material.AIR) {
			if (item.getAmount() <= 0) {
				item.setType(Material.AIR);
			}
		}
	}
}
 
開發者ID:jiongjionger,項目名稱:NeverLag,代碼行數:21,代碼來源:AntiNegativeItemDupe.java

示例12: onPlayerInteract

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onPlayerInteract(PlayerInteractEvent event) {
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK && event.hasItem() && event.getItem().getType() == Material.ENDER_PEARL) {
        Block block = event.getClickedBlock();
        // Don't prevent opening chests, etc, as these won't throw the Enderpearls anyway
        if (block.getType().isSolid() && !(block.getState() instanceof InventoryHolder)) {
            Faction factionAt = HCF.getPlugin().getFactionManager().getFactionAt(block.getLocation());
            if (!(factionAt instanceof ClaimableFaction)) {
                return;
            }

            event.setCancelled(true);
            Player player = event.getPlayer();
            player.setItemInHand(event.getItem()); // required to update Enderpearl count
        }
    }
}
 
開發者ID:funkemunky,項目名稱:HCFCore,代碼行數:18,代碼來源:PearlGlitchListener.java

示例13: getOwner

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@Override
	public InventoryHolder getOwner()
	{
//		int x = 0;
//		org.bukkit.block.Block b = this.world.getWorld().getBlockAt(x, 0, 0);
//		while(b != null && b.getType() != Material.AIR)
//			b = this.world.getWorld().getBlockAt(++x,0,0);
//		Furnace furnace = new CraftFurnace(b);
		Furnace furnace = new CraftFurnace(this.world.getWorld().getBlockAt(0, 0, 0));
		try
		{
			ReflectionUtil.setValue(furnace, "furnace", this);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		return furnace;
	}
 
開發者ID:MrLittleKitty,項目名稱:AnnihilationPro,代碼行數:20,代碼來源:Furnace_V1_7_R4.java

示例14: getOwner

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@Override
    public InventoryHolder getOwner()
    {
//		int x = 0;
//		org.bukkit.block.Block b = this.world.getWorld().getBlockAt(x, 0, 0);
//		while(b != null && b.getType() != Material.AIR)
//			b = this.world.getWorld().getBlockAt(++x,0,0);
//		Furnace furnace = new CraftFurnace(b);
        org.bukkit.block.Furnace furnace = new CraftFurnace(this.world.getWorld().getBlockAt(0, 0, 0));
        try
        {
            ReflectionUtil.setValue(furnace, "furnace", this);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return furnace;
    }
 
開發者ID:MrLittleKitty,項目名稱:AnnihilationPro,代碼行數:20,代碼來源:Furnace_V1_8_R1.java

示例15: getOwner

import org.bukkit.inventory.InventoryHolder; //導入依賴的package包/類
@Override
	public InventoryHolder getOwner()
	{
		//Bukkit.getLogger().info("getOwner");
//		int x = 0;
//		org.bukkit.block.Block b = this.world.getWorld().getBlockAt(x, 0, 0);
//		while(b != null && b.getType() != Material.AIR)
//			b = this.world.getWorld().getBlockAt(++x,0,0);
//		Furnace furnace = new CraftFurnace(b);
		furnace = new CraftFurnace(this.world.getWorld().getBlockAt(0, 0, 0));
		try
		{
			ReflectionUtil.setValue(furnace, "furnace", this);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		return furnace;
	}
 
開發者ID:MrLittleKitty,項目名稱:AnnihilationPro,代碼行數:21,代碼來源:Furnace_V1_7_R3.java


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