added pages to inventory
This commit is contained in:
parent
d2a8e4ac03
commit
a01fd21660
@ -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
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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<ItemStack> 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;
|
||||
}
|
||||
}
|
@ -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<ItemStack> 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<ItemStack> items)
|
||||
{
|
||||
return itemStackListToNBTList((ItemStack[]) items.toArray());
|
||||
}
|
||||
}
|
@ -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);
|
||||
|
@ -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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user