diff --git a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java index f8f5ed7..c6bb7b7 100644 --- a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java +++ b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java @@ -6,7 +6,9 @@ import org.bukkit.command.CommandSender; 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; public class GiftCommand implements CommandExecutor { @@ -27,6 +29,12 @@ public class GiftCommand implements CommandExecutor { new NBTManager("world").write((Player) sender); + BasicNBT nbt = new BasicNBT("world"); + + 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()); + this.apiManager.openInventory((Player) sender); return true; diff --git a/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java b/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java index 6eb65d9..d167c0c 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java +++ b/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java @@ -9,6 +9,7 @@ import org.bukkit.entity.Player; import java.io.File; import java.io.FileOutputStream; +import java.io.FileInputStream; public class BasicNBT { @@ -40,11 +41,21 @@ public class BasicNBT { public NBTTagCompound readPlayerNBT(EntityPlayer entityPlayer) { - NBTTagCompound compound = new NBTTagCompound(); + try + { + FileInputStream in = new FileInputStream(this.path + "\\players\\" + entityPlayer.getName() + ".dat"); + NBTTagCompound compound = NBTCompressedStreamTools.a(in); - entityPlayer.e(compound); + entityPlayer.e(compound); - return compound; + return compound; + } + catch(Exception e) + { + Bukkit.getLogger().warning(e.toString()); + + return null; + } } public EntityPlayer getPlayer(Player player) diff --git a/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java b/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java index 91f360b..b524c41 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java +++ b/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java @@ -2,15 +2,15 @@ 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; -import tokarotik.giftapi.savemanager.item.ItemManager; - public class NBTManager { private BasicNBT basicNBT; @@ -26,7 +26,7 @@ public class NBTManager EntityPlayer entityPlayer = this.basicNBT.getPlayer(player); NBTTagCompound tag = this.basicNBT.readPlayerNBT(entityPlayer); - ItemStack item = new ItemStack(39, 1); + ItemStack item = new ItemStack(Material.COAL_BLOCK, 1); ItemMeta metaItem = item.getItemMeta(); @@ -38,10 +38,9 @@ public class NBTManager item.setItemMeta(metaItem); - ItemManager itemManager = new ItemManager(item); - itemManager.getTag(); + ItemNBTTag itemManager = new ItemNBTTag(item); - tag.setCompound("giftapi", itemManager.tag); + tag.setCompound("giftapi", itemManager.getTag()); System.out.println("OUTPUT" + tag); diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java index 912bd5c..8ae8e74 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java +++ b/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java @@ -1,9 +1,14 @@ package tokarotik.giftapi.savemanager.item; +import net.minecraft.server.v1_6_R3.NBTTagList; +import net.minecraft.server.v1_6_R3.NBTTagString; import org.bukkit.inventory.ItemStack; import net.minecraft.server.v1_6_R3.NBTTagCompound; import org.bukkit.inventory.meta.ItemMeta; +import java.util.Arrays; +import java.util.List; + public class ItemGame { @@ -21,7 +26,7 @@ public class ItemGame getId(), getCount(), getDurability() ); - ItemMeta meta = item.getItemMeta(); + item.setItemMeta(setMeta(item.getItemMeta())); // тут чехорда. с начало сет айтем, после сет мета, а в самом конце гет мета return item; @@ -69,15 +74,28 @@ public class ItemGame } if (metaNBT.hasKey("lore")) { - //meta.setLore(); + meta.setLore( + NBTListToStringList( + metaNBT.getList("lore") + ) + ); } } return meta; } - private void NBTCompountToStringList(NBTTagCompound nbt) + private List NBTListToStringList(NBTTagList nbt) { - return; // it will fill + String[] list = new String[nbt.size()]; + + for (int i = 0; i < nbt.size(); i++) + { + NBTTagString base = (NBTTagString) nbt.get(i); + + list[i] = base.data; + } + + return Arrays.asList(list); } } diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/ItemManager.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemManager.java deleted file mode 100644 index bff90a2..0000000 --- a/src/main/java/tokarotik/giftapi/savemanager/item/ItemManager.java +++ /dev/null @@ -1,31 +0,0 @@ -package tokarotik.giftapi.savemanager.item; - -import net.minecraft.server.v1_6_R3.NBTTagCompound; -import org.bukkit.inventory.ItemStack; -//import org.bukkit.inventory.ItemStack; -//import org.bukkit.inventory.meta.ItemMeta; - -public class ItemManager -{ - public ItemStack item; - public NBTTagCompound tag; - - public ItemManager(ItemStack item) - { - this.item = item; - } - - public ItemManager(NBTTagCompound tag) - { - this.tag = tag; - } - - public void getTag() - { - ItemNBTTag item = new ItemNBTTag(this.item); - - this.tag = item.getTag(); - } - - -}