diff --git a/src/main/java/tokarotik/giftapi/Main.java b/src/main/java/tokarotik/giftapi/Main.java index b401cb6..6b012ef 100644 --- a/src/main/java/tokarotik/giftapi/Main.java +++ b/src/main/java/tokarotik/giftapi/Main.java @@ -27,7 +27,7 @@ public class Main extends JavaPlugin implements Listener apiManager = new APIManager(this, getConfig(), inventory_slots); this.getCommand("gift").setExecutor(new GiftCommand(apiManager, this)); // DELETE FOR RELEASE - this.getCommand("add").setExecutor(new AddCommand(apiManager, this)); // DELETE FOR RELEASE + this.getCommand("add").setExecutor(new AddCommand(this)); // DELETE FOR RELEASE getServer().getPluginManager().registerEvents(this, this); // bullshit diff --git a/src/main/java/tokarotik/giftapi/NBT/pages/PagesManager.java b/src/main/java/tokarotik/giftapi/NBT/pages/PagesManager.java index 6dafafa..43855c7 100644 --- a/src/main/java/tokarotik/giftapi/NBT/pages/PagesManager.java +++ b/src/main/java/tokarotik/giftapi/NBT/pages/PagesManager.java @@ -40,9 +40,22 @@ public class PagesManager public synchronized int getCurrentPage() { return this.current_page; } - public synchronized void setCurrentPage(int current_page) { this.current_page = current_page; } - public synchronized int getCountPages() { return this.count_pages; } + public synchronized void nextPage() + { + if (getCountPages() > getCurrentPage()) + { + this.current_page++; + } + } + + public synchronized void backPage() + { + if (0 < getCurrentPage()) + { + this.current_page -= 1; + } + } private synchronized void setCountPages() { int tag_size = this.tag.size(); diff --git a/src/main/java/tokarotik/giftapi/NBT/pages/page/Page.java b/src/main/java/tokarotik/giftapi/NBT/pages/page/Page.java deleted file mode 100644 index a7897ec..0000000 --- a/src/main/java/tokarotik/giftapi/NBT/pages/page/Page.java +++ /dev/null @@ -1,106 +0,0 @@ -package tokarotik.giftapi.NBT.pages.page; - -import net.minecraft.server.v1_6_R3.NBTTagCompound; -import net.minecraft.server.v1_6_R3.NBTTagList; -import org.bukkit.inventory.ItemStack; -import tokarotik.giftapi.NBT.item.ItemNBT; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class Page -{ - private final int max_stack; - private NBTTagList tag; - - public Integer number; - - public Page(int max_stack) - { - this.max_stack = max_stack; - this.tag = new NBTTagList(); - } - - public Page(NBTTagList tag, int max_stack, int number) - { - this.tag = tag; - this.max_stack = max_stack; - this.number = number; - } - - public boolean add(ItemStack item) { - if (!isOverStacked()) { - - NBTTagCompound nbt = ItemNBT.getTag(item); - - this.tag.add(nbt); - - return true; - } - - return false; - } - - public boolean remove(ItemStack item) - { - ItemStack[] new_list = PageUtil.addAllExtraOne(this.tag, item); - NBTTagList list = PageUtil.itemStackListToNBTList(new_list); - - if (!list.equals(this.tag)) - { - this.tag = list; - return true; - } - - return false; - } - - public NBTTagList getTag() - { - return this.tag; - } - - public void setTag(NBTTagList tag) - { - this.tag = tag; - } - - public ItemStack[] getList() - { - return PageUtil.reverse(PageUtil.getRawList(this.tag)); - } - - public boolean isEmpty() - { - return this.tag.size() == 0; - } - - public boolean isOverStacked() - { - return this.tag.size() < this.max_stack; - } - - public ItemStack[] getOverStacked() - { - if (isOverStacked()) - { - List list = new ArrayList<>(Arrays.asList(getList())); - - this.tag = PageUtil.itemStackListToNBTList( list.subList(0, this.max_stack + 1) ); - return (ItemStack[]) list.subList(this.max_stack + 1, this.tag.size()).toArray(); - } - - return new ItemStack[]{}; - } - - public Integer getNumber() - { - return this.number; - } - - public void setNumber(int number) - { - this.number = number; - } -} diff --git a/src/main/java/tokarotik/giftapi/NBT/pages/page/PageUtil.java b/src/main/java/tokarotik/giftapi/NBT/pages/page/PageUtil.java deleted file mode 100644 index 8f092a6..0000000 --- a/src/main/java/tokarotik/giftapi/NBT/pages/page/PageUtil.java +++ /dev/null @@ -1,72 +0,0 @@ -package tokarotik.giftapi.NBT.pages.page; - -import net.minecraft.server.v1_6_R3.NBTTagCompound; -import net.minecraft.server.v1_6_R3.NBTTagList; -import org.bukkit.inventory.ItemStack; -import tokarotik.giftapi.NBT.item.ItemLoad; -import tokarotik.giftapi.NBT.item.ItemNBT; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class PageUtil -{ - public static ItemStack[] getRawList(NBTTagList tag) - { - ItemStack[] list = new ItemStack[tag.size()]; - - for (int i = 0; i < tag.size(); i++) - { - NBTTagCompound compound = (NBTTagCompound) tag.get(i); - - list[i] = ItemLoad.getItem(compound); - } - - return list; - } - - public static ItemStack[] reverse(ItemStack[] list) - { - List array = Arrays.asList(list); - Collections.reverse(array); - - return (ItemStack[]) array.toArray(); - } - - public static ItemStack[] addAllExtraOne(NBTTagList tag, ItemStack item) - { - ItemStack[] new_list = new ItemStack[tag.size()]; - ItemStack[] old_list = getRawList(tag); - - for (int i = 0;i < tag.size();i++) - { - if (!old_list[i].equals(item)) - { - new_list[i] = old_list[i]; - } - } - - return new_list; - } - - public static NBTTagList itemStackListToNBTList(ItemStack[] items) - { - NBTTagList list = new NBTTagList(); - - for (ItemStack item : items) { - if (item != null) { - NBTTagCompound compound = ItemNBT.getTag(item); - - list.add(compound); - } - } - - return list; - } - - public static NBTTagList itemStackListToNBTList(List items) - { - return itemStackListToNBTList((ItemStack[]) items.toArray()); - } -} diff --git a/src/main/java/tokarotik/giftapi/dev/AddCommand.java b/src/main/java/tokarotik/giftapi/dev/AddCommand.java index 9046dc4..f327524 100644 --- a/src/main/java/tokarotik/giftapi/dev/AddCommand.java +++ b/src/main/java/tokarotik/giftapi/dev/AddCommand.java @@ -1,5 +1,6 @@ package tokarotik.giftapi.dev; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -22,14 +23,13 @@ public class AddCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) { - if (!(sender instanceof Player)) { - sender.sendMessage("This command can use only player!"); - - return true; - - } Player player = (Player) sender; + if (sender == null) { + if (Bukkit.getOnlinePlayers().length == 0) { return true; } + player = Bukkit.getOnlinePlayers()[0]; + } + Material[] values = Material.values(); int id = values[ThreadLocalRandom.current().nextInt(values.length)].getId(); ItemStack item = new ItemStack(id); diff --git a/src/main/java/tokarotik/giftapi/inventory/InventoryUtil.java b/src/main/java/tokarotik/giftapi/inventory/InventoryUtil.java index 45ee8fb..0fe7852 100644 --- a/src/main/java/tokarotik/giftapi/inventory/InventoryUtil.java +++ b/src/main/java/tokarotik/giftapi/inventory/InventoryUtil.java @@ -53,11 +53,23 @@ public class InventoryUtil if (!nameCurrentItem.isEmpty()) { if (nameCurrentItem.equals(this.nameArrowRight)) { - player.sendMessage("Right!"); + PagesManager pagesManager = this.cacheManager.load(player); + + if (pagesManager.getCountPages() > pagesManager.getCurrentPage()) + { + pagesManager.nextPage(); + updateInventory(inventory, player); + } } if (nameCurrentItem.equals(this.nameArrowLeft)) { - player.sendMessage("Left!"); + PagesManager pagesManager = this.cacheManager.load(player); + + if (0 < pagesManager.getCurrentPage()) + { + pagesManager.backPage(); + updateInventory(inventory, player); + } } if (nameCurrentItem.equals(this.nameExit)) {