Объединение ItemStack Arrary

У меня проблемы с моим плагином, который я разрабатываю, я не очень хорошо разбираюсь в массивах, поэтому мне интересно, хорошо ли кто-нибудь разбирается в майнкрафте и может ли мне помочь с этим :).

так что у меня проблемы с добавлением ItemStacks или их объединением. Я хочу, чтобы pot добавлял содержимое temp в свой ItemStack [].

 ItemStack[] temp;
 ItemStack[] pot;

public void openPot(Player player)
    {   
        player.openInventory(inve());
    }

public Inventory inve()
    {


        Inventory inv = Bukkit.createInventory(null, 45, ChatColor.DARK_GREEN + "Pot");//second parameter is how many slots, divisibile by 9

        inv.setContents(temp);
        pot = inv.getStorageContents();
        inv.setContents(pot);
        temp = null;
        //inv.addItem(items);
        return inv;
    }

public Inventory joinPot()
    {
        Inventory inv = Bukkit.createInventory(null, 45, ChatColor.DARK_GREEN + "Gamble");//second parameter is how many slots, divisibile by 9


        ItemStack cancel = new ItemStack(Material.REDSTONE_BLOCK);
        ItemStack Accept = new ItemStack(Material.EMERALD_BLOCK);

        ItemMeta cancelMeta = cancel.getItemMeta();
        ItemMeta AcceptMeta = Accept.getItemMeta();

        cancelMeta.setDisplayName(ChatColor.RED + "Cancel");
        AcceptMeta.setDisplayName(ChatColor.GREEN + "Accept");


        cancel.setItemMeta(cancelMeta);
        Accept.setItemMeta(AcceptMeta);

        inv.setItem(44,Accept);//setItem(slot location,item);
        inv.setItem(36, cancel);

        return inv;
    }
    //Player chooses item to join current pot
    public void openJoin(Player player)
    {
        player.openInventory(joinPot());
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event)
    {
        if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Gamble"))
            return;
        Player player = (Player) event.getWhoClicked();
        //event.setCancelled(true);
        if(event.getCurrentItem().getType() == Material.REDSTONE_BLOCK){
            player.closeInventory();
            player.sendMessage(ChatColor.RED + "Canceld Joining pot");
            return;
        }
        else if(event.getCurrentItem().getType() == Material.EMERALD_BLOCK){


**here we setting temps itemstack to whatever i placed in the chest this works**
            temp = event.getInventory().getContents();

            player.closeInventory();
            player.sendMessage(ChatColor.GREEN + "Accepting your request to join");

            //return;
        }

    }

в конечном итоге происходит то, что когда я устанавливаю содержимое сундука, он избавляется от старых данных, которые были там.

Я просто хочу знать, как добавить два массива ItemStack Pot + = temp // temp сбрасывается после каждого вызова. горшок не


person Kevin hansen    schedule 15.05.2016    source источник
comment
каким методом вы пытаетесь это сделать?   -  person Anoop Kanyan    schedule 15.05.2016
comment
Я хочу сделать это в inve (), я хочу ItemStack [] pot + = ItemStack [] temp Я просто не знаю, как это сделать, или, может быть, если мне не нужно добавлять, просто хочу знать, как сохранить материал в сундук, когда я добавляю больше вещей   -  person Kevin hansen    schedule 15.05.2016
comment
Возможный дубликат Как я могу объединить два массива в Java? .   -  person bcsb1001    schedule 20.05.2016


Ответы (1)


чтобы добавить все элементы температуры в горшок:

this.pot.addAll(this.temp);
person Lucian Farsky    schedule 15.05.2016
comment
Невозможно вызвать addall (ItemStack []) для типа массива ItemStack [], когда я пробую его, я получаю эту ошибку, я почти уверен, что pot - это объект. не знаю, запутался. - person Kevin hansen; 15.05.2016
comment
попробуйте, не обращаясь к нему как к объекту. pot.addAll (темп); - person Lucian Farsky; 15.05.2016
comment
класс, вызывающий эту функцию, статический или это объект? - person Lucian Farsky; 15.05.2016
comment
на основе объявлений ваших функций он должен быть объектом, и вам нужно это, прежде чем ссылаться на объекты класса - person Lucian Farsky; 15.05.2016
comment
@LucianFarsky Ты не имеешь смысла. Не отвечайте на вопросы о Java, если сами хорошо не знаете язык. - person bcsb1001; 20.05.2016