diff --git a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java index c6bb7b7..5674237 100644 --- a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java +++ b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java @@ -8,7 +8,7 @@ import org.bukkit.entity.Player; import tokarotik.giftapi.APIManager; import tokarotik.giftapi.savemanager.BasicNBT; import tokarotik.giftapi.savemanager.NBTManager; -import tokarotik.giftapi.savemanager.item.ItemGame; +import tokarotik.giftapi.savemanager.item.ItemLoad; public class GiftCommand implements CommandExecutor { @@ -33,7 +33,7 @@ public class GiftCommand implements CommandExecutor { System.out.println(nbt.readPlayerNBT(nbt.getPlayer((Player) sender)).getCompound("giftapi")); - ((Player) sender).getInventory().addItem(new ItemGame(nbt.readPlayerNBT(nbt.getPlayer((Player) sender)).getCompound("giftapi")).getItem()); + ((Player) sender).getInventory().addItem(new ItemLoad(nbt.readPlayerNBT(nbt.getPlayer((Player) sender)).getCompound("giftapi")).getItem()); this.apiManager.openInventory((Player) sender); diff --git a/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java b/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java index 4243e29..4155dbf 100644 --- a/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java +++ b/src/main/java/tokarotik/giftapi/inventory/InventoryManager.java @@ -13,6 +13,8 @@ import org.bukkit.inventory.meta.ItemMeta; public class InventoryManager implements Listener { + public final int countSlots = 54; + private String nameGUI; private String nameArrowRight; private String nameArrowLeft; @@ -25,7 +27,7 @@ public class InventoryManager implements Listener { } public void openCustomInventory(Player player) { - Inventory inventory = Bukkit.createInventory(null, 54, this.nameGUI); + Inventory inventory = Bukkit.createInventory(null, countSlots, this.nameGUI); updateInventory(inventory); @@ -36,12 +38,19 @@ public class InventoryManager implements Listener { if (event.getInventory().getTitle().equals(this.nameGUI)) { event.setCancelled(true); - if (event.getCurrentItem() == null) return; - /*if (event.getCurrentItem().getItemMeta().getDisplayName() == Material.DIAMOND) { - Player player = (Player) event.getWhoClicked(); - player.sendMessage(ChatColor.GREEN + "Ты кликнул по алмазу!"); - player.closeInventory(); - }*/ + ItemStack currectItem = event.getCurrentItem(); + String nameCurrentItem = currectItem.getItemMeta().getDisplayName(); + Player player = (Player) event.getWhoClicked(); + + if (nameCurrentItem == this.nameArrowRight) + { + player.sendMessage("Right!"); + } + + if (nameCurrentItem == this.nameArrowLeft) + { + player.sendMessage("Left!"); + } } } @@ -53,16 +62,16 @@ public class InventoryManager implements Listener { private void setUI(Inventory inventory) { // arrow right - setSkull(inventory, "right", this.nameArrowRight, 0, 6); + setArrow(inventory, this.nameArrowRight, 0, 6); // arrow left - setSkull(inventory, "left", this.nameArrowLeft, 8, 6); + setArrow(inventory, this.nameArrowLeft, 8, 6); // exit //setSkull(inventory, "exit", ChatColor.ITALIC + "" + ChatColor.DARK_RED + "Выйти", 4, 6); } - private void setSkull(Inventory inventory, String direction, String name, int x, int y) + private void setArrow(Inventory inventory, String name, int x, int y) { ItemStack arrow = new ItemStack(Material.ARROW, 1); ItemMeta meta_arrow = arrow.getItemMeta(); diff --git a/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java b/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java index d167c0c..3ce411f 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java +++ b/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java @@ -26,7 +26,7 @@ public class BasicNBT { { entityPlayer.f(compound); - FileOutputStream out = new FileOutputStream(this.path + "\\players\\" + entityPlayer.getName() + ".dat"); + FileOutputStream out = new FileOutputStream(getSavePath(entityPlayer)); NBTCompressedStreamTools.a(compound, out); out.close(); } @@ -43,7 +43,7 @@ public class BasicNBT { { try { - FileInputStream in = new FileInputStream(this.path + "\\players\\" + entityPlayer.getName() + ".dat"); + FileInputStream in = new FileInputStream(getSavePath(entityPlayer)); NBTTagCompound compound = NBTCompressedStreamTools.a(in); entityPlayer.e(compound); @@ -66,7 +66,7 @@ public class BasicNBT { public String getPath() { try { - return new File(".").getCanonicalFile().getAbsolutePath().toString(); + return new File(".").getCanonicalFile().getAbsolutePath(); } catch (Exception e) @@ -74,4 +74,9 @@ public class BasicNBT { return null; } } + + private String getSavePath(EntityPlayer entityPlayer) + { + return this.path + "\\players\\" + entityPlayer.getName() + ".dat"; + } } diff --git a/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java b/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java index b524c41..3ea0244 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java +++ b/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java @@ -2,14 +2,7 @@ package tokarotik.giftapi.savemanager; import net.minecraft.server.v1_6_R3.EntityPlayer; import net.minecraft.server.v1_6_R3.NBTTagCompound; -import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import tokarotik.giftapi.savemanager.item.ItemNBTTag; - -import java.util.Arrays; -import java.util.List; public class NBTManager { @@ -26,25 +19,18 @@ public class NBTManager EntityPlayer entityPlayer = this.basicNBT.getPlayer(player); NBTTagCompound tag = this.basicNBT.readPlayerNBT(entityPlayer); - ItemStack item = new ItemStack(Material.COAL_BLOCK, 1); - - ItemMeta metaItem = item.getItemMeta(); - - metaItem.setDisplayName("Muhaha"); - - List list = Arrays.asList("Apple", "Banana", "Cherry"); - - metaItem.setLore(list); - - item.setItemMeta(metaItem); - - ItemNBTTag itemManager = new ItemNBTTag(item); - - tag.setCompound("giftapi", itemManager.getTag()); - - System.out.println("OUTPUT" + tag); + // some action return this.basicNBT.writePlayerNBT(tag, entityPlayer); + } + public boolean read(Player player) + { + EntityPlayer entityPlayer = this.basicNBT.getPlayer(player); + NBTTagCompound tag = this.basicNBT.readPlayerNBT(entityPlayer); + + //some action + + return true; } } diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemLoad.java similarity index 86% rename from src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java rename to src/main/java/tokarotik/giftapi/savemanager/item/ItemLoad.java index 8ae8e74..4533223 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java +++ b/src/main/java/tokarotik/giftapi/savemanager/item/ItemLoad.java @@ -9,12 +9,12 @@ import org.bukkit.inventory.meta.ItemMeta; import java.util.Arrays; import java.util.List; -public class ItemGame +public class ItemLoad { NBTTagCompound tag; - public ItemGame(NBTTagCompound tag) + public ItemLoad(NBTTagCompound tag) { this.tag = tag; } @@ -26,8 +26,11 @@ public class ItemGame getId(), getCount(), getDurability() ); - item.setItemMeta(setMeta(item.getItemMeta())); // тут чехорда. с начало сет айтем, после сет мета, а в самом конце гет мета - + // тут чехорда. с начало сет айтем, после сет мета, а в самом конце гет мета + item.setItemMeta( + setMeta( + item.getItemMeta() + )); return item; } diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBT.java similarity index 95% rename from src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java rename to src/main/java/tokarotik/giftapi/savemanager/item/ItemNBT.java index 78e34de..c807e57 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java +++ b/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBT.java @@ -10,11 +10,11 @@ import org.bukkit.inventory.meta.ItemMeta; import java.util.List; import java.util.Map; -public class ItemNBTTag +public class ItemNBT { ItemStack item; - public ItemNBTTag(ItemStack item) + public ItemNBT(ItemStack item) { this.item = item; } @@ -23,7 +23,7 @@ public class ItemNBTTag { if (this.item == null) {return null;} - NBTTagCompound tag = new NBTTagCompound("giftapi"); + NBTTagCompound tag = new NBTTagCompound("item"); setBasic(tag); setMetaTag(tag); diff --git a/src/main/java/tokarotik/giftapi/savemanager/page/Page.java b/src/main/java/tokarotik/giftapi/savemanager/page/Page.java new file mode 100644 index 0000000..93c92a3 --- /dev/null +++ b/src/main/java/tokarotik/giftapi/savemanager/page/Page.java @@ -0,0 +1,92 @@ +package tokarotik.giftapi.savemanager.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.savemanager.item.ItemLoad; +import tokarotik.giftapi.savemanager.item.ItemNBT; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Page +{ + public NBTTagList tag; + + public void add(ItemStack item) + { + NBTTagCompound nbt = new ItemNBT(item).getTag(); + + this.tag.add(nbt); + } + + public void remove(ItemStack item) + { + ItemStack[] new_list = addAllExtraOne(item); + + this.tag = itemStackListToNBTList(new_list); + } + + public ItemStack[] getList() + { + return reverse(getList()); + } + + private ItemStack[] getRawList() + { + ItemStack[] list = new ItemStack[this.tag.size()]; + + for (int i = 0; i < this.tag.size(); i++) + { + NBTTagCompound compound = (NBTTagCompound) this.tag.get(i); + + list[i] = new ItemLoad(compound).getItem(); + } + + return list; + } + + private ItemStack[] reverse(ItemStack[] list) + { + List array = Arrays.asList(list); + Collections.reverse(array); + + return (ItemStack[]) array.toArray(); + } + + private ItemStack[] addAllExtraOne(ItemStack item) + { + ItemStack[] new_list = new ItemStack[tag.size()]; + ItemStack[] old_list = getRawList(); + + for (int i = 0;i < tag.size();i++) + { + if (!old_list[i].equals(item)) + { + new_list[i] = old_list[i]; + } + } + + return new_list; + } + + private NBTTagList itemStackListToNBTList(ItemStack[] items) + { + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < items.length; i++) { + if (items[i] != null) + { + ItemNBT tag = new ItemNBT(items[i]); + NBTTagCompound compound = tag.getTag(); + + list.add(compound); + } + } + + return list; + } + + +} diff --git a/src/main/java/tokarotik/giftapi/savemanager/page/PageManager.java b/src/main/java/tokarotik/giftapi/savemanager/page/PageManager.java new file mode 100644 index 0000000..361b6f3 --- /dev/null +++ b/src/main/java/tokarotik/giftapi/savemanager/page/PageManager.java @@ -0,0 +1,11 @@ +package tokarotik.giftapi.savemanager.page; + +public class PageManager +{ + public PageManager() + { + + } + + +}