Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.broken.cheststorage.data.ChestRegistry;
- import org.broken.cheststorage.util.MetadataEnumsForGui;
- import org.bukkit.Bukkit;
- import org.bukkit.GameMode;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.HumanEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.inventory.InventoryCloseEvent;
- import org.bukkit.event.inventory.InventoryType;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.metadata.FixedMetadataValue;
- import org.mineacademy.fo.Common;
- import org.mineacademy.fo.collection.StrictMap;
- import org.mineacademy.fo.remain.CompMaterial;
- import org.mineacademy.fo.remain.CompMetadata;
- import java.util.*;
- public class WhiteBlacklistFilterGui {
- String DisplayName = "§3Set items you whant to craft";
- private final StrictMap<UUID, Inventory> whiteBlacklistFilterGui = new StrictMap<>();
- public void createGuiFiterCrafting(Player player, Location location) {
- ChestRegistry registry = ChestRegistry.getInstance();
- createWhiteBlacklistFilterGui(player);
- Inventory inventories = getWhiteBlacklistFilterGui(player);
- for (int i = 0; i < inventories.getSize(); i++) {
- if (i >= 27 && i <= 35)
- inventories.setItem(i, setPlacholders());
- if (i == 29)
- inventories.setItem(i, setDenyButton());
- if (i == 33)
- inventories.setItem(i, setAcceptButton(location));
- }
- player.openInventory(getWhiteBlacklistFilterGui(player));
- ItemStack[] items = registry.getFiltreritems(location);
- System.out.println(Arrays.toString(items));
- if (items != null)
- for (int i = 0; i < items.length; i++) {
- ItemStack itemstacks = items[i];
- if (itemstacks != null) {
- ItemStack setItem = new ItemStack(itemstacks.getType(), 1);
- inventories.setItem(i, setItem);
- }
- }
- }
- public void guiLogic(InventoryClickEvent event, ItemStack clicked) {
- if (clicked != null && event.getSlotType() != InventoryType.SlotType.OUTSIDE) {
- Material clickedItem = clicked.getType();
- if (CompMetadata.getMetadata(clicked, "Guimatrial") != null) {
- if (clickedItem == CompMaterial.RED_STAINED_GLASS_PANE.getMaterial() && CompMetadata.getMetadata(clicked, "Guimatrial").equals("GuiPlaceholderes"))
- event.setCancelled(true);
- if (clickedItem == CompMaterial.GREEN_STAINED_GLASS_PANE.getMaterial() && CompMetadata.getMetadata(clicked, "Guimatrial").equals("GuiPlaceholderes"))
- event.setCancelled(true);
- if (clickedItem == CompMaterial.GRAY_STAINED_GLASS_PANE.getMaterial() && CompMetadata.getMetadata(clicked, "Guimatrial").equals("GuiPlaceholderes"))
- event.setCancelled(true);
- }
- }
- }
- public void onMenuClose(final Player player, final Inventory inv, InventoryCloseEvent event, Location location) {
- ChestRegistry registry = ChestRegistry.getInstance();
- Map<Integer, ItemStack> itemStackMap = new HashMap<>();
- Map<Integer, ItemStack> map = getItemsExceptBottomBar(inv, player);
- int conter = 0;
- Set<ItemStack> set = new HashSet<>();
- List<ItemStack> list = new ArrayList<>();
- for (final Map.Entry<Integer, ItemStack> entitys : map.entrySet()) {
- if (entitys.getValue() != null)
- if (!set.add(entitys.getValue())) {
- list.add(entitys.getValue());
- } else {
- itemStackMap.put(entitys.getKey(), entitys.getValue());
- }
- }
- for (Map.Entry<Integer, ItemStack> entitys : map.entrySet()) {
- if (entitys.getValue() != null && list.contains(entitys.getValue())) {
- conter++;
- if (conter > 1) {
- HashMap<Integer, ItemStack> ifInventorFull = player.getInventory().addItem(new ItemStack(entitys.getValue().getType(), entitys.getValue().getAmount()));
- if (ifInventorFull.containsKey(entitys.getValue()) && player.getLocation().getWorld() != null)
- player.getLocation().getWorld().dropItemNaturally(player.getLocation(), ifInventorFull.get(entitys.getValue()));
- }
- if (conter == list.size())
- Common.tell(player, "&6&lYou can´´t add same &3" + entitys.getValue().getType() + " &4" + conter + "&6&l times. You get back the items.");
- }
- }
- registry.setFiltreritems(location, itemStackMap.values().toArray(new ItemStack[0]));
- }
- private Map<Integer, ItemStack> getItemsExceptBottomBar(final Inventory inv, Player player) {
- final Map<Integer, ItemStack> items = new HashMap<>();
- for (int i = 0; i < inv.getSize() - 9; i++) {
- final ItemStack item = inv.getItem(i);
- if (item != null && item.getAmount() > 1) {
- HashMap<Integer, ItemStack> ifInventorFull = player.getInventory().addItem(new ItemStack(item.getType(), item.getAmount() - 1));
- if (ifInventorFull.containsKey(item) && player.getLocation().getWorld() != null)
- player.getLocation().getWorld().dropItemNaturally(player.getLocation(), ifInventorFull.get(item));
- Common.tell(player, "&6&lYou cant add more an one &3" + item.getType() + "&6&l You has added &4" + item.getAmount() + "&6&l items. You get back &4" + (item.getAmount() - 1) + "&6.");
- }
- items.put(i, item != null && !CompMaterial.isAir(item.getType()) ? new ItemStack(item.getType(), 1) : null);
- }
- return items;
- }
- private ItemStack setDenyButton() {
- String displayName = "§6Close the gui";
- ItemStack denyButton = CompMaterial.RED_STAINED_GLASS_PANE.toItem();
- denyButton = CompMetadata.setMetadata(denyButton, "Guimatrial", "GuiPlaceholderes");
- ItemMeta denyMeta = denyButton.getItemMeta();
- denyMeta.setDisplayName(displayName);
- denyButton.setItemMeta(denyMeta);
- return denyButton;
- }
- private ItemStack setPlacholders() {
- String displayName = "§6";
- ItemStack denyButton = CompMaterial.GRAY_STAINED_GLASS_PANE.toItem();
- denyButton = CompMetadata.setMetadata(denyButton, "Guimatrial", "GuiPlaceholderes");
- ItemMeta denyMeta = denyButton.getItemMeta();
- denyMeta.setDisplayName(displayName);
- denyButton.setItemMeta(denyMeta);
- return denyButton;
- }
- private ItemStack setAcceptButton(Location location) {
- String displayName = "§3Uppgrade with more pages";
- ItemStack acceptButton = CompMaterial.GREEN_STAINED_GLASS_PANE.toItem();
- acceptButton = CompMetadata.setMetadata(acceptButton, "Guimatrial", "GuiPlaceholderes");
- ItemMeta acceptMeta = acceptButton.getItemMeta();
- acceptMeta.setDisplayName(displayName);
- acceptButton.setItemMeta(acceptMeta);
- return acceptButton;
- }
- private void createWhiteBlacklistFilterGui(Player player) {
- MetadataEnumsForGui metadataGui = MetadataEnumsForGui.INVENTORY_FILTERGUI;
- Inventory inventory = Bukkit.createInventory(null, 9 * 4, DisplayName);
- Common.runLater(2, () -> player.setMetadata(metadataGui.toString(), new FixedMetadataValue(metadataGui.getPlugin(), metadataGui.getMetadataKey())));
- whiteBlacklistFilterGui.override(player.getUniqueId(), inventory);
- }
- public Inventory getWhiteBlacklistFilterGui(Player player) {
- return whiteBlacklistFilterGui.get(player.getUniqueId());
- }
- public boolean PlayerViwePageEmpty(Player player) {
- return whiteBlacklistFilterGui.contains(player.getUniqueId());
- }
- public void removeCraftingGuiForPlayere(Player player, InventoryCloseEvent event) {
- MetadataEnumsForGui metadataGui = MetadataEnumsForGui.INVENTORY_FILTERGUI;
- System.out.println("close");
- whiteBlacklistFilterGui.removeWeak(player.getUniqueId());
- player.removeMetadata(metadataGui.toString(), metadataGui.getPlugin());
- }
- public int getViewersAmount(List<HumanEntity> viewersList) {
- int viewers = 0;
- for (HumanEntity viewer : viewersList) {
- if (viewer.getGameMode() != GameMode.SPECTATOR)
- viewers++;
- }
- return viewers;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement