java类org.bukkit.inventory.Inventory的实例源码

InventoryManager.java 文件源码 项目:RPGInventory 阅读 28 收藏 0 点赞 0 评论 0
private static void updateInventory(
        @NotNull Player player,
        @NotNull Inventory inventory,
        int slot,
        InventoryAction action,
        ItemStack currentItem,
        @NotNull ItemStack cursor
) {
    InventoryManager.updateInventory(player, inventory, slot, InventoryType.SlotType.CONTAINER, action, currentItem, cursor);
}
ShapedAdder.java 文件源码 项目:CustomRecipes 阅读 42 收藏 0 点赞 0 评论 0
@EventHandler
public void onInventoryClose(InventoryCloseEvent event) {
    if (event.getInventory().getHolder() instanceof ShapedRecipeHolder) {
        ShapedRecipeHolder holder = (ShapedRecipeHolder) event.getInventory().getHolder();
        if (holder != this) return;

        Inventory inventory = event.getInventory();
        if (InventoryUtils.isEmpty(inventory)) {
            holder.callbackPlayer.sendMessage(ChatColor.RED + "Do you seriously want to create a recipe without ingredients?");
            return;
        }

        ShapedRecipes nmsRecipe = holder.toRecipe();
        CRShapedRecipe<ShapedRecipes> shapedRecipe = new CRShapedRecipe<>(nmsRecipe);
        List<List<String>> recipeIngredients = shapedRecipe.getIngredients().stream()
                .map((CRChoiceIngredient ingr) -> ingr.getChoices().stream()
                        .map(InventoryUtils::getItemName).collect(Collectors.toList()))
                .collect(Collectors.toList());
        String recipeString = recipeIngredients + "" +
                ChatColor.RESET + " -> " +
                InventoryUtils.getItemName(shapedRecipe.getResult());

        boolean success = holder.plugin.getCraftingManager().addRecipe(holder.key, nmsRecipe, shapedRecipe);
        if (success) {
            holder.callbackPlayer.sendMessage(String.format("%sAdded shaped recipe: %s%s%s!",
                    ChatColor.GREEN, ChatColor.WHITE, recipeString, ChatColor.WHITE));
            plugin.saveCraftingRecipeFile("shaped", shapedRecipe);
        } else {
            holder.callbackPlayer.sendMessage(ChatColor.RED + "Couldn't create a shaped recipe. Possibly a duplicate key.");
        }

        HandlerList.unregisterAll(holder);
    }
}
ListRecipesInventoryHolder.java 文件源码 项目:CustomRecipes 阅读 24 收藏 0 点赞 0 评论 0
public ListRecipesInventoryHolder(String type, Iterable<? extends ItemStack> items) {
    items.forEach(recipeItems::add);

    //fill page inventories
    int recipeIndex = 0;
    Inventory inventory = null;
    do {
        int inPageIndex = recipeIndex % MAX_RECIPES_PER_PAGE;
        if (inPageIndex == 0) {
            inventory = Bukkit.createInventory(this, 54, type + " recipes");
            pages.add(inventory);
        }

        inventory.setItem(inPageIndex, recipeItems.get(recipeIndex));
    } while (++recipeIndex < recipeItems.size());

    //add previous and next buttons where applicable
    for (int pageNr = 0; pageNr < pages.size(); pageNr++) {
        Inventory page = pages.get(pageNr);
        if (pageNr != 0) {
            page.setItem(45, ListRecipesListener.previousItem());
        }
        if (pageNr != pages.size() - 1) {
            page.setItem(53, ListRecipesListener.nextItem());
        }
    }
}
MyPetManager.java 文件源码 项目:RPGInventory 阅读 29 收藏 0 点赞 0 评论 0
@EventHandler
public void onMyPetItemUse(PlayerInteractEvent event) {
    if (event.getItem() != null) {
        Player player = event.getPlayer();

        if (!InventoryManager.playerIsLoaded(player)) {
            return;
        }

        Inventory inventory = InventoryManager.get(player).getInventory();

        if (isMyPetItem(event.getItem())
                && (event.getAction() == Action.RIGHT_CLICK_BLOCK
                || event.getAction() == Action.RIGHT_CLICK_AIR)) {
            Slot petSlot = getMyPetSlot();

            ItemStack currentPet = inventory.getItem(petSlot.getSlotId());
            boolean hasPet = !petSlot.isCup(currentPet);
            ItemStack newPet = event.getItem();

            if (!hasPet) {
                currentPet = null;
            }

            player.getEquipment().setItemInMainHand(currentPet);
            inventory.setItem(petSlot.getSlotId(), newPet);

            swapMyPets(player, hasPet, newPet);
        }
    }
}
MobSelector.java 文件源码 项目:CloudNet 阅读 19 收藏 0 点赞 0 评论 0
public Collection<Inventory> inventories()
{
    return CollectionWrapper.getCollection(this.mobs, new Catcher<Inventory, MobImpl>() {
        @Override
        public Inventory doCatch(MobImpl key)
        {
            return key.getInventory();
        }
    });
}
MobSelector.java 文件源码 项目:CloudNet 阅读 55 收藏 0 点赞 0 评论 0
public MobImpl find(Inventory inventory)
{
    return CollectionWrapper.filter(this.mobs.values(), new Acceptable<MobImpl>() {
        @Override
        public boolean isAccepted(MobImpl value)
        {
            return value.getInventory().equals(inventory);
        }
    });
}
GUISortPing.java 文件源码 项目:NeverLag 阅读 24 收藏 0 点赞 0 评论 0
public Inventory getNextPage() {
    if (this.page >= this.maxPage) {
        if (this.guiMaker != null) {
            return this.guiMaker.get();
        } else {
            return get(this.page);
        }
    } else {
        this.page++;
        return get(this.page);
    }
}
SettingsInv.java 文件源码 项目:Transport-Pipes 阅读 25 收藏 0 点赞 0 评论 0
private static void populateInventoryLine(Inventory inv, int row, ItemStack... items) {
    for (int i = 0; i < 9; i++) {
        if (items.length > i && items[i] != null) {
            ItemStack is = items[i];
            inv.setItem(row * 9 + i, is);
        }
    }
}
BagEvents.java 文件源码 项目:PA 阅读 22 收藏 0 点赞 0 评论 0
private static Inventory getInventory(TOAUser p) {
    Inventory i = Bukkit.createInventory(null, getInvSize(p), ChatColor.RED + "Mochila");
    ItemStack[] item = i.getContents();
    if (FileUtils.getInv().contains(p.getName())) {
        for (int x = 0; x < getInvSize(p); x++)
            item[x] = FileUtils.getInv().getItemStack(p.getName() + ".inv_" + x);
        i.setContents(item);
        return i;
    }
    return i;
}
GizmoUtils.java 文件源码 项目:ProjectAres 阅读 17 收藏 0 点赞 0 评论 0
public static void openMenu(Player player) {
    Inventory inventory = Bukkit.createInventory(player, 18, ChatColor.RED + LobbyTranslations.get().t("gizmos", player));
    inventory.setItem(4, Utils.getGhastTear(player, RaindropsListener.raindrops.get(player)));

    int i = 9;
    for(Gizmo gizmo : Gizmos.gizmos) {
        inventory.setItem(i++, gizmo.getItemStack(player));
    }

    player.openInventory(inventory);
}


问题


面经


文章

微信
公众号

扫码关注公众号