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


Java InventoryHolder.getInventory方法代碼示例

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


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

示例1: addItems

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
@Override
public boolean addItems(String worldname, PlotItem items) {
    World world = getWorld(worldname);
    Block block = world.getBlockAt(items.x, items.y, items.z);
    if (block == null) {
        return false;
    }
    BlockState state = block.getState();
    if (state != null && state instanceof InventoryHolder) {
        InventoryHolder holder = ((InventoryHolder) state);
        Inventory inv = holder.getInventory();
        for (int i = 0; i < items.id.length; i++) {
            ItemStack item = new ItemStack(items.id[i], items.amount[i], items.data[i]);
            inv.addItem(item);
        }
        state.update(true);
        return true;
    }
    return false;
    
}
 
開發者ID:Mayomi,項目名稱:PlotSquared-Chinese,代碼行數:22,代碼來源:BukkitUtil.java

示例2: onPlayerInteractContainer

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
void onPlayerInteractContainer(PlayerInteractEvent event)
{
 Action action = event.getAction();
 if(action != Action.RIGHT_CLICK_BLOCK) return;
 
 Player player = event.getPlayer();
 if(player.isSneaking()) return;
 if(!PhantomAdmin.instance.isInvisible(player)) return;
 
 Block clickedBlock = event.getClickedBlock();
 BlockState state = clickedBlock.getState();
 if(!(state instanceof InventoryHolder)) return;
 
 String phantomIdentifier = this.getPhantomIdentifier(((InventoryHolder)state).getInventory().getHolder());
 if(phantomIdentifier != null)
 {
     event.setCancelled(true);
     InventoryHolder holder = (InventoryHolder)state;
     Inventory inventory = holder.getInventory();
     Inventory phantomInventory = PhantomAdmin.instance.getServer().createInventory(inventory.getHolder(), inventory.getSize());
        phantomInventory.setContents(inventory.getContents());
        player.openInventory(phantomInventory);
        HashSet<Inventory> allInventories = this.inventorySyncMap.get(inventory);
        if(allInventories == null)
        {
            allInventories = new HashSet<Inventory>();
        }
        allInventories.add(inventory);
        allInventories.add(phantomInventory);
        this.inventorySyncMap.put(phantomIdentifier, allInventories);
        this.phantomInventories.add(phantomInventory);
 }
}
 
開發者ID:BigScary,項目名稱:PhantomAdmin,代碼行數:35,代碼來源:PAEventHandler.java

示例3: registerWoolChest

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
private void registerWoolChest(InventoryHolder inventoryHolder) {
    if (inventoryHolder instanceof DoubleChest) {
        DoubleChest doubleChest = (DoubleChest) inventoryHolder;

        // register both blocks
        this.registerWoolChest(doubleChest.getLeftSide());
        this.registerWoolChest(doubleChest.getRightSide());
        return;
    } else if (!(inventoryHolder instanceof BlockState)) {
        return;
    }

    Inventory inventory = inventoryHolder.getInventory();
    Block block = ((BlockState) inventoryHolder).getBlock();

    ChestImage image = this.getChestImage(block);
    if (image != null) {
        // We have already seen this chest, don't register it.
        return;
    }

    this.chestImages.put(block, image = new ChestImage(WoolUtils.containsAny(inventory)));

    if (image.woolChest) {
        WoolChestRegisterEvent event = new WoolChestRegisterEvent(this.game.getPlugin(), block, inventory);
        this.game.getPlugin().getEventBus().publish(event);

        if (!event.isCanceled()) {
            for (int slot = 0; slot < inventory.getSize(); slot++) {
                ItemStack item = inventory.getItem(slot);
                if (item != null && WoolUtils.isWool(item)) {
                    image.snapshot.put(slot, item.clone());
                }
            }
        }
    }
}
 
開發者ID:ShootGame,項目名稱:Arcade2,代碼行數:38,代碼來源:WoolChestTracker.java

示例4: onPlayerInteract

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onPlayerInteract(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    Action action = event.getAction();
    ItemStack stack = event.getItem();

    // Keys can only be used by right clicking blocks.
    if (action != Action.RIGHT_CLICK_BLOCK)
        return;

    Key key = plugin.getKeyManager().getKey(stack);

    // No keys were used in the making of this video.
    if (key == null)
        return;

    Block block = event.getClickedBlock();
    BlockState state = block.getState();
    if (key instanceof EventKey && state instanceof Chest) {
        EventKey eventKey = (EventKey) key;
        EventKey.EventKeyData eventKeyData = eventKey.getData(stack.getItemMeta().getLore());
        EventType eventType = eventKeyData.getEventType();
        List<Inventory> inventories = eventKey.getInventories(eventType);
        int inventoryNumber = eventKeyData.getInventoryNumber();

        if (inventories.size() < inventoryNumber) {
            player.sendMessage(ChatColor.RED + "This key is for " + eventType.getDisplayName() + ChatColor.RED + " loottable " + inventoryNumber + ", whilst there are only " + inventories.size()
                    + " possible. Please inform an admin.");

            return;
        }

        Inventory inventory = inventories.get(inventoryNumber - 1);
        ItemStack[] contents = inventory.getContents();

        Chest chest = (Chest) state;
        InventoryHolder inventoryHolder = chest.getInventory().getHolder();
        if (inventoryHolder instanceof DoubleChestInventory) {
            inventoryHolder = ((DoubleChestInventory) inventoryHolder).getHolder();
        }

        if (contents.length > chest.getInventory().getSize()) {
            player.sendMessage(ChatColor.RED + "This single chest is too small to fit the contents of this key.");
            return;
        }

        Inventory chestInventory = inventoryHolder.getInventory();

        if (!InventoryUtils.isEmpty(chestInventory)) {
            player.sendMessage(ChatColor.RED + "This chest is not empty.");
            return;
        }

        chestInventory.setContents(inventory.getContents());
        decrementHand(player);
        event.setCancelled(true);

        player.openInventory(chestInventory);
        player.sendMessage(ChatColor.YELLOW + "Your " + ChatColor.AQUA + eventType.getDisplayName() + ' ' + eventKey.getDisplayName() + ChatColor.YELLOW + " key has transferred loot "
                + inventoryNumber + ChatColor.YELLOW + " to the chest.");
    }
}
 
開發者ID:funkemunky,項目名稱:HCFCore,代碼行數:63,代碼來源:KeyListener.java

示例5: convert

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
@Override
@Nullable
public Inventory convert(final InventoryHolder h) {
	return h.getInventory();
}
 
開發者ID:nfell2009,項目名稱:Skript,代碼行數:6,代碼來源:ExprInventory.java

示例6: onBlockDamage

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onBlockDamage(BlockDamageEvent event)
{
    Player player = event.getPlayer();
       if(!player.isSneaking()) return;
       
       if(!featureEnabled(Features.QuickDeposit, player)) return;
       
       Block clickedBlock = event.getBlock();
       if(clickedBlock == null) return;
       Material clickedMaterial = clickedBlock.getType();
       
       if(clickedMaterial != Material.CHEST && clickedMaterial != Material.TRAPPED_CHEST) return;
       
       @SuppressWarnings("deprecation")
       PlayerInteractEvent fakeEvent = AutomaticInventory.instance.new FakePlayerInteractEvent(player, Action.RIGHT_CLICK_BLOCK, player.getItemInHand(), clickedBlock, BlockFace.EAST);
       Bukkit.getServer().getPluginManager().callEvent(fakeEvent);
       if(fakeEvent.isCancelled()) return;
       
       InventoryHolder chest = (InventoryHolder)clickedBlock.getState();
       Inventory chestInventory = chest.getInventory();
       PlayerInventory playerInventory = player.getInventory();
       
       event.setCancelled(true);
       
       @SuppressWarnings("deprecation")
       int aboveBlockID = clickedBlock.getRelative(BlockFace.UP).getTypeId();
       if(AutomaticInventory.preventsChestOpen(aboveBlockID))
       {
           AutomaticInventory.sendMessage(player, TextMode.Err, Messages.ChestLidBlocked);
           return;
       }
       
       DepositRecord deposits = AutomaticInventory.depositMatching(playerInventory, chestInventory, true);
       
       //send confirmation message to player with counts deposited.  if none deposited, give instructions on how to set up the chest.
       if(deposits.destinationFull && deposits.totalItems == 0)
       {
           AutomaticInventory.sendMessage(player, TextMode.Err, Messages.FailedDepositChestFull2);
       }
       else if(deposits.totalItems == 0)
       {
           AutomaticInventory.sendMessage(player, TextMode.Info, Messages.FailedDepositNoMatch);
       }
       else
       {
           AutomaticInventory.sendMessage(player, TextMode.Success, Messages.SuccessfulDeposit2, String.valueOf(deposits.totalItems));
           
           //make a note that quick deposit was used so that player will not be bothered with advertisement messages again.
           PlayerData playerData = PlayerData.FromPlayer(player);
           if(!playerData.isUsedQuickDeposit())
           {
               playerData.setUsedQuickDeposit(true);
           }
       }
}
 
開發者ID:BigScary,項目名稱:AutomaticInventory,代碼行數:57,代碼來源:AIEventHandler.java

示例7: run

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
@Override
public void run()
{
    Location chestLocation = this.remainingChestLocations.poll();
    if(chestLocation == null)
    {
        AutomaticInventory.sendMessage(this.player, TextMode.Success, Messages.SuccessfulDepositAll2, String.valueOf(this.runningDepositRecord.totalItems));
        PlayerData playerData = PlayerData.FromPlayer(player);
        if(Math.random() < .1 && !playerData.isGotQuickDepositInfo() && AIEventHandler.featureEnabled(Features.QuickDeposit, player))
        {
            AutomaticInventory.sendMessage(player, TextMode.Instr, Messages.QuickDepositAdvertisement3);
            playerData.setGotQuickDepositInfo(true);
        }
    }
    else
    {
        Block block = chestLocation.getBlock();
        PlayerInteractEvent fakeEvent = AutomaticInventory.instance.new FakePlayerInteractEvent(player, Action.RIGHT_CLICK_BLOCK, player.getInventory().getItemInMainHand(), block, BlockFace.UP);
        Bukkit.getServer().getPluginManager().callEvent(fakeEvent);
        if(!fakeEvent.isCancelled())
        {
            BlockState state = block.getState();
            if(state instanceof InventoryHolder)
            {
                InventoryHolder chest = (InventoryHolder)state;
                Inventory chestInventory = chest.getInventory();
                if(!this.respectExclusions || AIEventHandler.isSortableChestInventory(chestInventory))
                {
                    PlayerInventory playerInventory = player.getInventory();
                    
                    DepositRecord deposits = AutomaticInventory.depositMatching(playerInventory, chestInventory, false);                    

                    this.runningDepositRecord.totalItems += deposits.totalItems;
                }
            }
        }
        
        QuickDepositChain chain = new QuickDepositChain(this.remainingChestLocations, this.runningDepositRecord, this.player, this.respectExclusions);
        Bukkit.getScheduler().runTaskLater(AutomaticInventory.instance, chain, 1L);
    }
}
 
開發者ID:BigScary,項目名稱:AutomaticInventory,代碼行數:42,代碼來源:FindChestsThread.java

示例8: restoreWoolChest

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
private void restoreWoolChest(InventoryHolder inventoryHolder, GamePlayer player, List<GamePlayer> viewers) {
    if (inventoryHolder == null) {
        return;
    }

    Inventory inventory = inventoryHolder.getInventory();

    if (!player.isParticipating()) {
        return;
    } else if (inventoryHolder instanceof DoubleChest) {
        DoubleChest doubleChest = (DoubleChest) inventoryHolder;

        // restore both blocks
        this.restoreWoolChest(doubleChest.getLeftSide(), player, viewers);
        this.restoreWoolChest(doubleChest.getRightSide(), player, viewers);
        return;
    } else if (!(inventoryHolder instanceof BlockState)) {
        return;
    }

    Block block = ((BlockState) inventoryHolder).getBlock();

    ChestImage image = this.getChestImage(block);
    if (image == null || !image.woolChest || image.snapshot.isEmpty()) {
        return;
    }

    boolean restoreWools = true;

    // Don't retrace wools if there are players viewing this chest.
    for (GamePlayer viewer : viewers) {
        if (viewer.isParticipating() && !viewer.equals(player)) {
            restoreWools = false;
        }
    }

    if (restoreWools) {
        WoolChestRestoreEvent event = new WoolChestRestoreEvent(this.game.getPlugin(), block, inventory, player, viewers);
        this.game.getPlugin().getEventBus().publish(event);

        if (!event.isCanceled()) {
            for (int i = 0; i < inventory.getSize(); i++) {
                ItemStack snapshotItem = image.snapshot.get(i);
                if (snapshotItem == null) {
                    continue;
                }

                // Copy the item to not edit the snapshot!
                inventory.setItem(i, snapshotItem.clone());
            }

            for (Map.Entry<Integer, ItemStack> entry : image.snapshot.entrySet()) {
                inventory.setItem(entry.getKey(), entry.getValue().clone());
            }
        }
    }
}
 
開發者ID:ShootGame,項目名稱:Arcade2,代碼行數:58,代碼來源:WoolChestTracker.java

示例9: inventory

import org.bukkit.inventory.InventoryHolder; //導入方法依賴的package包/類
/**
 * Get inventory of this account chest.
 * @return inventory of this AccountChest, if any. otherwise null.
 */
private Inventory inventory() {
    InventoryHolder chest = chest();
    return (chest != null)? chest.getInventory() : null;
}
 
開發者ID:sakunc,項目名稱:Gringotts-,代碼行數:9,代碼來源:AccountChest.java


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