Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.broken.cheststorage.menus;
- import org.broken.cheststorage.data.ChestRegistry.ChestData;
- import org.bukkit.Bukkit;
- import org.bukkit.GameMode;
- import org.bukkit.entity.HumanEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.event.inventory.InventoryCloseEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.InventoryHolder;
- import org.bukkit.inventory.ItemStack;
- import org.jetbrains.annotations.NotNull;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- public class ChestGuiInventory implements InventoryHolder {
- public static final Map<UUID, Inventory> viewers = new HashMap<>();
- private Inventory gui;
- public Inventory createMenu() {
- int size = 27;
- return Bukkit.createInventory(null, size, "Gui Chest");
- }
- public void showMenus(Player player, ChestData chestData) {
- int size = 27;
- gui = createMenu();
- ItemStack[] items = chestData.getChestContents();
- if (items == null)
- items = new ItemStack[size];
- gui.setContents(items);
- player.updateInventory();
- player.openInventory(gui);
- }
- @NotNull
- @Override
- public Inventory getInventory() {
- return gui;
- }
- public boolean onOpen(PlayerInteractEvent event) {
- viewers.put(event.getPlayer().getUniqueId(), createMenu());
- return true;
- }
- public boolean onClose(InventoryCloseEvent event) {
- viewers.remove(event.getPlayer().getUniqueId());
- return getViewersAmount(event.getViewers()) <= 1;
- }
- private int getViewersAmount(List<HumanEntity> viewersList) {
- int viewers = 0;
- for (HumanEntity viewer : viewersList) {
- if (viewer.getGameMode() != GameMode.SPECTATOR)
- viewers++;
- }
- return viewers;
- }
- }
Add Comment
Please, Sign In to add comment