egz

kamilkime
mail@pastecode.io avatar
unknown
java
2 years ago
4.9 kB
2
Indexable
Never
    public void openKitSelectorMenu(HumanEntity humanEntity) {
        McKits.getInstance(GuiDatabase.class).getGuiInventoryTitle(name -> {
            if (name != null) {
                invName = name;
            }
        });
        inventory = Bukkit.createInventory(null, 4*9, invName);

        McKits.getInstance(GuiDatabase.class).getGuiInventoryItems(items -> {
            if (!items.isEmpty()) {
                LoadoutConverter.equipDecodedLoadout(inventory, items);
            }
        });

        McKits.getInstance(KitDatabase.class).getKits(kits -> {
            try {
                for (Kit kit : kits) {

                    ItemStack itemStack = kit.getIcon();
                    ItemMeta itemMeta = itemStack.getItemMeta();
                    itemMeta.setDisplayName(kit.getName());
                    List<String> lore = new ArrayList<>();
                    lore.add(kit.getDescription());
                    lore.add(" ");
                    if (player.hasPermission("mckits.usekit." + kit.getName())) {
                        McKits.getInstance(UserDatabase.class).canUseKit(kit.getName(), player, kitCanUse -> {
                            if (kitCanUse) {
                                lore.add("Kliknij, aby odebrac!");
                            } else {
                                McKits.getInstance(UserDatabase.class).timeLeft(kit.getName(), player, kitTimeLeft -> {
                                    lore.add("Odbierzesz za: " + CooldownFormatters.getRemainingTimeFormatted(kitTimeLeft));
                                });
                            }
                        });
                    } else {
                        lore.add("Nie masz permisji do tego zestawu.");
                    }
                    itemMeta.setLore(lore);
                    itemStack.setItemMeta(itemMeta);
                    inventory.setItem(kit.getSlot(), kit.getIcon());
                }
            } catch (Exception e) {
                player.sendMessage("cos poszlo nie tak ");
            }
        });

        KitSelectorMenuClickListener.addPlayer(player);
        humanEntity.openInventory(inventory);
        updateInventory(player);
    }

    private void updateInventory(final Player player) {
        new BukkitRunnable() {
            @Override
            public void run() {
                Inventory inventory = ((HumanEntity) player).getOpenInventory().getTopInventory();

                if (!KitSelectorMenuClickListener.getList().contains(player.getUniqueId())) {
                    cancel();
                    return;
                }
//                if (!inventory.getType().name().equals(MyGuiDatabase.guiInventoryName)) {
//                    System.out.println(MyGuiDatabase.guiInventoryName);
//                    cancel();
//                    return;
//                }

                McKits.getInstance(KitDatabase.class).getKits(kits -> {
                    try {
                        for (Kit kit : kits) {

                            ItemStack itemStack = kit.getIcon();
                            ItemMeta itemMeta = itemStack.getItemMeta();
                            itemMeta.setDisplayName(kit.getName());
                            List<String> lore = new ArrayList<>();
                            lore.add(kit.getDescription());
                            lore.add(" ");
                            if (player.hasPermission("mckits.usekit." + kit.getName())) {
                                McKits.getInstance(UserDatabase.class).canUseKit(kit.getName(), player, kitCanUse -> {
                                    if (kitCanUse) {
                                        lore.add("Kliknij, aby odebrac!");
                                    } else {
                                        McKits.getInstance(UserDatabase.class).timeLeft(kit.getName(), player, kitTimeLeft -> {
                                            lore.add("Odbierzesz za: " + CooldownFormatters.getRemainingTimeFormatted(kitTimeLeft));
                                        });
                                    }
                                });
                            } else {
                                lore.add("Nie masz permisji do tego zestawu.");
                            }
                            itemMeta.setLore(lore);
                            itemStack.setItemMeta(itemMeta);
                            inventory.setItem(kit.getSlot(), kit.getIcon());
                        }
                    } catch (Exception e) {
                        player.sendMessage("cos poszlo nie tak ");
                    }
                });

            }
        }.runTaskTimer(McKits.getProvidingPlugin(McKits.class), 0L, 20L);
    }