Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.droreo002.stacker;
- import me.droreo002.pagination.Pagination;
- import me.droreo002.pagination.api.inventory.normal.ButtonListener;
- import me.droreo002.pagination.api.inventory.paginated.PaginatedInventory;
- import me.droreo002.pagination.api.item.CustomItem;
- import me.droreo002.pagination.api.item.GUIButton;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.inventory.*;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import java.util.*;
- public class TestInventory extends PaginatedInventory {
- private final List<Slot> slots = new ArrayList<>();
- private boolean isChanged;
- private GUIButton back;
- private GUIButton next;
- private List<Integer> toCheckSlot;
- private Map<Integer, Slot> changes = new HashMap<>();
- private List<InventoryAction> drag_action = new ArrayList<>();
- @SuppressWarnings("deprecation")
- public TestInventory(Stacker main) {
- super("Hello", 18, Pagination.getInstance());
- drag_action.add(InventoryAction.PLACE_ONE);
- drag_action.add(InventoryAction.PLACE_SOME);
- // drag_action.add(InventoryAction.DROP_ALL_CURSOR);
- // drag_action.add(InventoryAction.DROP_ALL_SLOT);
- // drag_action.add(InventoryAction.DROP_ONE_CURSOR);
- // drag_action.add(InventoryAction.DROP_ONE_SLOT);
- drag_action.add(InventoryAction.PLACE_ALL);
- try {
- this.back = new GUIButton(new CustomItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDU5YmUxNTU3MjAxYzdmZjFhMGIzNjk2ZDE5ZWFiNDEwNDg4MGQ2YTljZGI0ZDVmYTIxYjZkYWE5ZGIyZDEifX19", "&7[ &aPrevious Page &7]", new String[] {
- "&7&m--------------------",
- "&r",
- "&fDo not click this if you made changes in this inventory!",
- "&cCLOSE &fthe inventory to save your changes!"
- })).setAction(new ButtonListener() {
- @Override
- public void onClick(InventoryClickEvent inventoryClickEvent) {
- System.out.println("Going to prev page!");
- Player player = (Player) inventoryClickEvent.getWhoClicked();
- prevPage(player);
- }
- @Override
- public void onMove(InventoryDragEvent inventoryDragEvent) {
- }
- });
- this.next = new GUIButton(new CustomItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDJiMGMwN2ZhMGU4OTIzN2Q2NzllMTMxMTZiNWFhNzVhZWJiMzRlOWM5NjhjNmJhZGIyNTFlMTI3YmRkNWIxIn19fQ==\\", "&7[ &aNext Page &7]", new String[] {
- "&7&m--------------------",
- "&r",
- "&fDo not click this if you made changes in this inventory!",
- "&cCLOSE &fthe inventory to save your changes!"
- })).setAction(new ButtonListener() {
- @Override
- public void onClick(InventoryClickEvent inventoryClickEvent) {
- System.out.println("Going to next page!");
- Player player = (Player) inventoryClickEvent.getWhoClicked();
- nextPage(player);
- }
- @Override
- public void onMove(InventoryDragEvent inventoryDragEvent) {
- }
- });
- } catch (Exception e) {
- this.back = new GUIButton(new CustomItem(Material.ARROW, "&7[ &aPrevious Page &7]", new String[] {
- "&7&m--------------------",
- "&r",
- "&fDo not click this if you made changes in this inventory!",
- "&cCLOSE &fthe inventory to save your changes!"
- })).setAction(new ButtonListener() {
- @Override
- public void onClick(InventoryClickEvent inventoryClickEvent) {
- Player player = (Player) inventoryClickEvent.getWhoClicked();
- prevPage(player);
- }
- @Override
- public void onMove(InventoryDragEvent inventoryDragEvent) {
- }
- });
- this.next = new GUIButton(new CustomItem(Material.ARROW, "&7[ &aNext Page &7]", new String[] {
- "&7&m--------------------",
- "&r",
- "&fDo not click this if you made changes in this inventory!",
- "&cCLOSE &fthe inventory to save your changes!"
- })).setAction(new ButtonListener() {
- @Override
- public void onClick(InventoryClickEvent inventoryClickEvent) {
- Player player = (Player) inventoryClickEvent.getWhoClicked();
- nextPage(player);
- }
- @Override
- public void onMove(InventoryDragEvent inventoryDragEvent) {
- }
- });
- }
- setItemRow(0);
- toCheckSlot = getItems_row();
- setSearchRow(1, next, back);
- setItemCanBeMoved(true);
- setListenToInventoryCloseEvent(true);
- setUniversalListener(new ButtonListener() {
- @Override
- public void onClick(InventoryClickEvent e) {
- ItemStack item; //(e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR)) ? e.getCursor() : e.getCurrentItem();
- int slot = e.getSlot();
- InventoryAction action = e.getAction();
- Player player = (Player) e.getWhoClicked();
- if (drag_action.contains(action)) {
- item = e.getCursor();
- if (item == null || item.getType().equals(Material.AIR)) return;
- System.out.println("Action " + action + ", new slot is " + slot + ". Item " + item);
- player.setItemOnCursor(null);
- if (e.getClick().equals(ClickType.RIGHT)) {
- Bukkit.getScheduler().scheduleSyncDelayedTask(main, new Runnable() {
- @Override
- public void run() {
- player.setItemOnCursor(new CustomItem(item, new String[]{
- "&7This object is on slot number (Inventory) &c" + slot,
- "&cOBJECT HAS BEEN MODIFIED",
- "&cSAVE_DELETE"
- }));
- }
- }, 1L);
- e.setCancelled(true);
- } else {
- Bukkit.getScheduler().scheduleSyncDelayedTask(main, new Runnable() {
- @Override
- public void run() {
- player.setItemOnCursor(new CustomItem(item, new String[]{
- "&7This object is on slot number (Inventory) &c" + slot,
- "&cOBJECT HAS BEEN MODIFIED",
- "&cSAVE_MOVE"
- }));
- }
- }, 1L);
- }
- } else {
- e.setCancelled(true);
- }
- }
- @Override
- public void onMove(InventoryDragEvent e) {
- ItemStack item = e.getOldCursor();
- Player player = (Player) e.getWhoClicked();
- if (e.getInventory().getType().equals(InventoryType.PLAYER)) {
- e.setCancelled(true);
- return;
- }
- int slot = new ArrayList<>(e.getRawSlots()).get(0);
- if (item == null || item.getType().equals(Material.AIR)) return;
- System.out.println("Drag event called!. Changing item to slot " + slot);
- e.setCursor(new CustomItem(item, new String[]{
- "&7This object is on slot number (Inventory) &c" + slot,
- "&cOBJECT HAS BEEN MODIFIED",
- "&cSAVE_MOVE"}));
- }
- });
- ConfigurationSection cs = main.getConfigManager().getConfig().getConfigurationSection("Slots");
- for (String s : cs.getKeys(false)) {
- Slot slot = (Slot) main.getConfigManager().getConfig().get("Slots." + s);
- slots.add(slot);
- }
- slots.sort(Stacker.COMPARATOR);
- for (Slot s : slots) {
- GUIButton button = new GUIButton(new CustomItem(Material.WOOL, "&7[ &cFrame Name &7] &f: " + s.getName().toUpperCase(), 14, new String[] {
- "&7This object is on slot number (Inventory) &c" + s.getId(),
- "&7MOVE AROUND THIS OBJECT TO CHANGE THE SLOT!",
- "&7RIGHT CLICK IT TO TAG IT AS 'GOING TO BE' DELETED OBJECT!"
- }));
- addButton(button);
- }
- }
- @Override
- public void onInventoryClose(InventoryCloseEvent inventoryCloseEvent) {
- /*
- Now save
- */
- Inventory inventory = inventoryCloseEvent.getInventory();
- Player player = (Player) inventoryCloseEvent.getPlayer();
- if (!player.getItemOnCursor().getType().equals(Material.AIR)) {
- player.setItemOnCursor(new ItemStack(Material.AIR));
- player.sendMessage("Inventory saving cancelled because you take a item from the inventory!. Please put it back there before trying to save!");
- return;
- }
- FileConfiguration config = Stacker.getInstance().getConfigManager().getConfig();
- PaginatedInventory paginatedInventory = Pagination.getInstance().getOpening().get(player.getUniqueId());
- int currSlot = 0;
- for (int i1 = 0; i1 < getTotalPage(); i1++) {
- System.out.println("Checking page number " + i1);
- for (int i : toCheckSlot) {
- System.out.println("Checking slot " + i);
- ItemStack item = inventory.getItem(i);
- if (item == null) {
- continue;
- }
- if (!item.hasItemMeta()) continue;
- ItemMeta meta = item.getItemMeta();
- List<String> lore = meta.getLore();
- /*
- Save check
- */
- ModifType type;
- try {
- type = ModifType.valueOf(ChatColor.stripColor(lore.get(2)));
- } catch (Exception e) {
- // No changes, continue
- continue;
- }
- switch (type) {
- case SAVE_MOVE:
- String display = Pagination.getInstance().color(meta.getDisplayName());
- Slot newObj = new Slot(currSlot, ChatColor.stripColor(display.split(":")[1].split(" ")[1]));
- config.set("Slots." + currSlot, newObj);
- Stacker.getInstance().getConfigManager().saveConfig();
- System.out.println("Saving slot " + newObj.getId() + " to config slot " + currSlot + " on page " + paginatedInventory.getCurrPage());
- currSlot++;
- case SAVE_DELETE:
- config.set("Slots." + currSlot, null);
- Stacker.getInstance().getConfigManager().saveConfig();
- System.out.println("Slot number " + currSlot + " has been deleted!");
- currSlot++;
- default:
- System.out.println("No save mode found!");
- }
- }
- System.out.println("Trying to go to the page number " + (i1 + 1));
- if (silentNextPage()) {
- System.out.println("Page is now changed to " + (i1 + 1));
- } else {
- System.out.println("No page number " + (i1 + 1) + " found!");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement