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