public class ChestListener implements Listener{
public static HashMap<Location, Inventory> chests = new HashMap();
public static HashMap<Player, Integer> openchests = new HashMap<>();
private ArrayList<ItemStack> loot = new ArrayList();
@EventHandler
public void onChestOpen(PlayerInteractEvent e) {
try{
if(Main.chestuse == true){
Player player = e.getPlayer();
if(e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock().getType() == Material.CHEST || e.getClickedBlock().getType() == Material.TRAPPED_CHEST){
e.setCancelled(true);
if (!chests.containsKey(e.getClickedBlock().getLocation())) {
registerLoot();
openchests.put(e.getPlayer(), openchests.get(e.getPlayer()) + 1);
Scoreboard.setScoreboard(e.getPlayer());
Inventory inv = Bukkit.createInventory(null, 27, "Сундук");
int i = 0;
while(i < Utils.rndInt(15, 22)) {
inv.setItem(Utils.rndInt(0, inv.getSize() - 1), loot.get(Utils.rndInt(0, loot.size() - 1)));
++i;
}
chests.put(e.getClickedBlock().getLocation(), inv);
}else{
player.sendMessage(Data.Prefix + "§cУже залутан!");
}
e.getPlayer().openInventory(chests.get(e.getClickedBlock().getLocation()));
}
}else{
e.setCancelled(true);
}
}catch(Exception e){ }
}
public void registerLoot() {
loot.add(Utils.create(Material.MELON, Utils.rndInt(1, 5)));
loot.add(Utils.create(Material.APPLE, Utils.rndInt(1, 4)));
loot.add(Utils.create(Material.COOKED_CHICKEN, Utils.rndInt(1, 5)));
loot.add(Utils.create(Material.CHAINMAIL_LEGGINGS, 1));
loot.add(Utils.create(Material.COOKED_BEEF, Utils.rndInt(1, 5)));
loot.add(Utils.create(Material.GOLD_BOOTS, 1));
loot.add(Utils.create(Material.BOW, 1));
loot.add(Utils.create(Material.CHAINMAIL_HELMET, 1));
loot.add(Utils.create(Material.APPLE, Utils.rndInt(1, 4)));
loot.add(Utils.create(Material.GOLD_CHESTPLATE, 1));
loot.add(Utils.create(Material.STONE_SWORD, 1));
loot.add(Utils.create(Material.STONE_AXE, 1));
loot.add(Utils.create(Material.FISHING_ROD, 1));
loot.add(Utils.create(Material.IRON_CHESTPLATE, 1));
}
}