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


Java Chest類代碼示例

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


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

示例1: getBlockInventory

import org.bukkit.block.Chest; //導入依賴的package包/類
/**
 * Gets the single block inventory for a potentially double chest.
 * Handles people who have an old version of Bukkit.
 * This should be replaced with {@link org.bukkit.block.Chest#getBlockInventory()}
 * in a few months (now = March 2012) // note from future dev - lol
 *
 * @param chest The chest to get a single block inventory for
 * @return The chest's inventory
 */
private Inventory getBlockInventory(Chest chest) {
    try {
        return chest.getBlockInventory();
    } catch (Throwable t) {
        if (chest.getInventory() instanceof DoubleChestInventory) {
            DoubleChestInventory inven = (DoubleChestInventory) chest.getInventory();
            if (inven.getLeftSide().getHolder().equals(chest)) {
                return inven.getLeftSide();
            } else if (inven.getRightSide().getHolder().equals(chest)) {
                return inven.getRightSide();
            } else {
                return inven;
            }
        } else {
            return chest.getInventory();
        }
    }
}
 
開發者ID:boy0001,項目名稱:FastAsyncWorldedit,代碼行數:28,代碼來源:BukkitWorld.java

示例2: passesFilter

import org.bukkit.block.Chest; //導入依賴的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

示例3: deliverSupplyDrop

import org.bukkit.block.Chest; //導入依賴的package包/類
public void deliverSupplyDrop(World world) {
	Random r = new Random();

	// Supply drops between -500, + 500
	double x = r.nextInt(1000) - 500;
	double y = 0.0D;
	double z = r.nextInt(1000) - 500;

	Location dropLocation = new Location(world, x, y, z);

	// Get the highest block at that location.
	dropLocation.setY(world.getHighestBlockYAt(dropLocation));

	dropLocation.getBlock().setType(Material.CHEST);
	Chest dropChest = (Chest) dropLocation.getBlock().getState();

	SupplyDropObject supplyDrop = new SupplyDropObject(dropLocation, dropChest, dropChest.getInventory());
	addSupplyDrop(supplyDrop);

	for (Player p : world.getPlayers()) {
		p.sendMessage(MortuusTerraCore.ALERT_PREFIX + StringUtilities
				.color("&eSupply Drop spotted at: &6" + x + ", " + dropLocation.getY() + ", " + z + "&e!"));
	}
}
 
開發者ID:kadeska,項目名稱:MT_Core,代碼行數:25,代碼來源:SupplyDropManager.java

示例4: onInventoryMoveItem

import org.bukkit.block.Chest; //導入依賴的package包/類
@EventHandler
public void onInventoryMoveItem(InventoryInteractEvent event) {
	//System.out.println("E");
	
	if (openchests.containsKey(event.getInventory())) {
		System.out.println("move");
		openchests.get(event.getInventory()).getInventory().setContents(event.getInventory().getContents());
		openchests.remove(event.getInventory());
	} else {
		for (int i = 0; i < openchests.size(); i++) {
			Chest c = ((List<Chest>) openchests.values()).get(i);
			if (c.getInventory().equals(event.getInventory())) {
				((List<Inventory>) openchests.keySet()).get(i).setContents(event.getInventory().getContents());
			}
		}
	}
}
 
開發者ID:GigaGamma,項目名稱:McLink,代碼行數:18,代碼來源:ActionBind.java

示例5: event

import org.bukkit.block.Chest; //導入依賴的package包/類
@EventHandler
public void event(BlockBreakEvent e) {
    new OMGBreakEvent(e, get(e.getPlayer()), e.getBlock());
    if (Area.registeredAreas.values().stream().anyMatch(a -> a.isInside(e.getBlock().getLocation())) && Area.registeredAreas.values().stream().noneMatch(a -> a.isInside(e.getBlock().getLocation()) && a.isBreakAllowed(get(e.getPlayer()).team, e.getBlock().getType()))) {
        e.setCancelled(true);
        return;
    }
    if (g.settings.isLootingOn && e.getBlock().getType() == Material.CHEST) {
        e.setCancelled(true);
        Inventory inv = ((Chest) e.getBlock().getState()).getBlockInventory();
        String lootid = inv.getTitle() == null ? "" : inv.getTitle();
        OMGLoot.LootParser lp = g.loot_contents(get(e.getPlayer()), lootid);
        if (lp != null) {
            inv.clear();
            for (int i = 0; i < inv.getSize(); i++) {
                ItemStack ii = lp.getRandom().toItem();
                if (ii != null && NBTParser.getTagCompound(ii).getByte("Undroppable") != 1)
                    e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), ii);
            }
        }
        e.getBlock().setType(Material.AIR);
        e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), new ItemStack(Material.CHEST));
    }
    if (!GameArea.isBlockInside(e.getBlock())) e.setCancelled(true);
}
 
開發者ID:BurnyDaKath,項目名稱:OMGPI,代碼行數:26,代碼來源:BukkitEventHandler.java

示例6: onPlayerOpenChest

import org.bukkit.block.Chest; //導入依賴的package包/類
@EventHandler
public void onPlayerOpenChest(PlayerInteractEvent event){
	if(event.getClickedBlock()  == null)return;
	Block clicked = event.getClickedBlock();
	Location blockClicked = event.getClickedBlock().getLocation();
	Player p = event.getPlayer();
	Arena a =  am.getArena(p);
	if(a == null)return;
	if(clicked.getState() instanceof Chest){
	Chest chest = (Chest)clicked.getState();
	if(!a.contains(blockClicked)){
		a.addChest(blockClicked);
		Skywars.getCC().populateChest(a, chest);
	}
	
	}
	
	
}
 
開發者ID:SpikyBite,項目名稱:BiteSkywars,代碼行數:20,代碼來源:PlayerChestFilled.java

示例7: checkWorth

import org.bukkit.block.Chest; //導入依賴的package包/類
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void checkWorth(InventoryOpenEvent event) {
    // Do nothing if a player did not open the inventory or if chest events
    // are disabled.
    if (!(event.getPlayer() instanceof Player) || plugin.getSettings().isDisableChestEvents()) {
        return;
    }

    Inventory inventory = event.getInventory();

    // Set all default worth values for this chest.
    if (inventory.getHolder() instanceof DoubleChest) {
        DoubleChest chest = (DoubleChest) inventory.getHolder();
        checkWorth((Chest) chest.getLeftSide());
        checkWorth((Chest) chest.getRightSide());
    }

    if (inventory.getHolder() instanceof Chest) {
        checkWorth((Chest) inventory.getHolder());
    }
}
 
開發者ID:novucs,項目名稱:factions-top,代碼行數:22,代碼來源:WorthListener.java

示例8: updateWorth

import org.bukkit.block.Chest; //導入依賴的package包/類
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void updateWorth(InventoryCloseEvent event) {
    // Do nothing if a player did not close the inventory or if chest
    // events are disabled.
    if (!(event.getPlayer() instanceof Player) || plugin.getSettings().isDisableChestEvents()) {
        return;
    }

    // Get cached values from when chest was opened and add the difference
    // to the worth manager.
    if (event.getInventory().getHolder() instanceof DoubleChest) {
        DoubleChest chest = (DoubleChest) event.getInventory().getHolder();
        updateWorth((Chest) chest.getLeftSide());
        updateWorth((Chest) chest.getRightSide());
    }

    if (event.getInventory().getHolder() instanceof Chest) {
        updateWorth((Chest) event.getInventory().getHolder());
    }
}
 
開發者ID:novucs,項目名稱:factions-top,代碼行數:21,代碼來源:WorthListener.java

示例9: handleChestDestruction

import org.bukkit.block.Chest; //導入依賴的package包/類
public void handleChestDestruction(Block b,List<Block> explodedBlocks)
  {
  	Vector<ProtectedRegion> regions=ShopUtils.getRegions(b.getLocation());

if(regions!=null)
	for(ProtectedRegion p:regions)
	{
		if(p!=null&&ShopUtils.shopExists(p))
		{
			BlockFace side=getDoubleChestSide(b);
			
			if(side==null) //Single chest
			{
				ChestUtils.clearSingleChest((Chest)b.getState(),ShopUtils.getShop(p));
			}
			else //uuugggghhhh I have to deal with this freaking double chest
			{
				ChestUtils.dealWithThisFreakingDoubleChest((Chest)b.getState(),ShopUtils.getShop(p),side,explodedBlocks);
			}
		}
	}
  }
 
開發者ID:OmniKraftDevelopers,項目名稱:CleanShop,代碼行數:23,代碼來源:EventListener.java

示例10: onInventoryCloseEvent

import org.bukkit.block.Chest; //導入依賴的package包/類
@EventHandler
public void onInventoryCloseEvent(InventoryCloseEvent event) {
	//long time=System.nanoTime();
	if(event.getInventory().getType()==InventoryType.CHEST&&CleanShop.shopScan)
	{
		Vector<ProtectedRegion> regions=null;
		if(event.getInventory().getHolder() instanceof Chest)
			regions=ShopUtils.getRegions(((Chest)event.getInventory().getHolder()).getLocation());
		if(event.getInventory().getHolder() instanceof DoubleChest)
			regions=ShopUtils.getRegions(((DoubleChest)event.getInventory().getHolder()).getLocation());
		if(regions!=null)
			for(ProtectedRegion p:regions)
			{
				if(p!=null)
					if(ShopUtils.shopExists(p))
					{
						//plugin.calculateShopStock(plugin.getShop(p));
						if(event.getInventory().getHolder() instanceof Chest)
							ChestUtils.calculateChestStock((Chest)event.getInventory().getHolder(), ShopUtils.getShop(p));
						else
							ChestUtils.calculateChestStock((DoubleChest)event.getInventory().getHolder(), ShopUtils.getShop(p));
						FileHandler.saveShops();
					}
			}
	}
}
 
開發者ID:OmniKraftDevelopers,項目名稱:CleanShop,代碼行數:27,代碼來源:EventListener.java

示例11: updatePearlHolder

import org.bukkit.block.Chest; //導入依賴的package包/類
/**
 * Updates the pearl holder
 * @param pearl The pearl to update
 * @param holder The pearl holder
 * @param event The event
 */
private void updatePearlHolder(ExilePearl pearl, InventoryHolder holder, Cancellable event) {

	if (holder instanceof Chest) {
		updatePearl(pearl, (Chest)holder);
	} else if (holder instanceof DoubleChest) {
		updatePearl(pearl, (Chest) ((DoubleChest) holder).getLeftSide());
	} else if (holder instanceof Furnace) {
		updatePearl(pearl, (Furnace) holder);
	} else if (holder instanceof Dispenser) {
		updatePearl(pearl, (Dispenser) holder);
	} else if (holder instanceof Dropper) {
		updatePearl(pearl, (Dropper) holder);
	} else if (holder instanceof Hopper) {
		updatePearl(pearl, (Hopper) holder);
	} else if (holder instanceof BrewingStand) {
		updatePearl(pearl, (BrewingStand) holder);
	} else if (holder instanceof Player) {
		updatePearl(pearl, (Player) holder);
	}else {
		event.setCancelled(true);
	}
}
 
開發者ID:DevotedMC,項目名稱:ExilePearl,代碼行數:29,代碼來源:PlayerListener.java

示例12: spawnChest

import org.bukkit.block.Chest; //導入依賴的package包/類
private void spawnChest(final Location l) {
    if (InteractivePlugin.INSTANCE != null) {
        Bukkit.getScheduler().runTaskLater(InteractivePlugin.INSTANCE, new Runnable() {
            @Override
            public void run() {
                Block block = l.getBlock();
                block.setType(Material.CHEST);
                Chest chest = (Chest)block.getState();
                Inventory inv = chest.getInventory();

                int amount = 3 + CreateBonusIslandAction.this.random.nextInt(6);

                for (int i = 0; i < amount; i++){
                    Material[] materials = Material.values();
                    Material material = materials[CreateBonusIslandAction.this.random.nextInt(materials.length)];

                    inv.addItem(new ItemStack(material, 1 + CreateBonusIslandAction.this.random.nextInt(3)));
                }
            }
        }, 1);
    }
}
 
開發者ID:mixer,項目名稱:skyblock-interactive-minecraft,代碼行數:23,代碼來源:CreateBonusIslandAction.java

示例13: onCommand

import org.bukkit.block.Chest; //導入依賴的package包/類
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (!(sender instanceof Player)) {
        return true;
    }
    Player player = (Player) sender;
    if (player.getItemInHand().equals(Material.AIR)) {
        Util.sendmessage(player, "&cアイテムが見つかりません。");
        return true;
    }

    @SuppressWarnings("deprecation")
    Block block = player.getTargetBlock((HashSet<Byte>) null, 10);
    if (!(block.getType().equals(Material.CHEST)
            || block.getType().equals(Material.TRAPPED_CHEST))) {
        Util.sendmessage(player, "&cチェストが見つかりません。");
        return true;
    }

    Inventory inventory = ((Chest) block.getState()).getInventory();

    inventory.clear();
    Util.sendmessage(player, "&7インベントリ內のアイテムを削除しました。");
    return true;
}
 
開發者ID:tckz916,項目名稱:Mapper_2,代碼行數:26,代碼來源:ClearchestCommand.java

示例14: MagicChest

import org.bukkit.block.Chest; //導入依賴的package包/類
public void MagicChest(BlockBreakEvent event){
    Location loc = event.getBlock().getLocation();
    World world = loc.getWorld();
    event.setCancelled(true);
    Block block = event.getBlock();
    block.setType(Material.CHEST);
    DirectionalContainer chestData = (DirectionalContainer) block.getState().getData();
    BlockFace directionInfo = new LuckyBlocksInvokeMethodClass().getCardinalDirection(event.getPlayer());
    chestData.setFacingDirection(directionInfo);
    //Next Line makes use of a Deprecated Method
    block.setData(chestData.getData(),true);
    Chest chest = (Chest) block.getState();
    world.playEffect(loc,Effect.ENDER_SIGNAL,50);
    int RandomSelection = (int) (Math.random()*100);
    if (RandomSelection < 50) {
        ItemStack goldenApples = new ItemStack(Material.GOLDEN_APPLE);
        goldenApples.setAmount(5);
        chest.getInventory().addItem(goldenApples);
    }
    else if (RandomSelection >= 50) isUnluckyChestActivated = 1;

}
 
開發者ID:josegrobles,項目名稱:LuckyBlocksBukkit,代碼行數:23,代碼來源:LuckyBlocksActionController.java

示例15: clearContainerBlockContents

import org.bukkit.block.Chest; //導入依賴的package包/類
@Override
public boolean clearContainerBlockContents(Vector pt) {
    Block block = getWorld().getBlockAt(pt.getBlockX(), pt.getBlockY(), pt.getBlockZ());
    if (block == null) {
        return false;
    }
    BlockState state = block.getState();
    if (!(state instanceof org.bukkit.inventory.InventoryHolder)) {
        return false;
    }

    org.bukkit.inventory.InventoryHolder chest = (org.bukkit.inventory.InventoryHolder) state;
    Inventory inven = chest.getInventory();
    if (chest instanceof Chest) {
        inven = getBlockInventory((Chest) chest);
    }
    inven.clear();
    return true;
}
 
開發者ID:boy0001,項目名稱:FastAsyncWorldedit,代碼行數:20,代碼來源:BukkitWorld.java


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