diff --git a/src/main/java/tokarotik/giftapi/Main.java b/src/main/java/tokarotik/giftapi/Main.java index 8674f63..5e63d2a 100644 --- a/src/main/java/tokarotik/giftapi/Main.java +++ b/src/main/java/tokarotik/giftapi/Main.java @@ -1,9 +1,11 @@ package tokarotik.giftapi; +import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; import tokarotik.giftapi.dev.GiftCommand; diff --git a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java index 906dd5a..f8f5ed7 100644 --- a/src/main/java/tokarotik/giftapi/dev/GiftCommand.java +++ b/src/main/java/tokarotik/giftapi/dev/GiftCommand.java @@ -4,6 +4,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; + import tokarotik.giftapi.APIManager; import tokarotik.giftapi.savemanager.NBTManager; @@ -24,7 +25,7 @@ public class GiftCommand implements CommandExecutor { return true; } - new NBTManager().write((Player) sender); + new NBTManager("world").write((Player) sender); this.apiManager.openInventory((Player) sender); diff --git a/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java b/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java index 582edca..6eb65d9 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java +++ b/src/main/java/tokarotik/giftapi/savemanager/BasicNBT.java @@ -14,13 +14,18 @@ public class BasicNBT { private String path; + public BasicNBT(String world) + { + this.path = getPath() + "\\" + world; + } + public boolean writePlayerNBT(NBTTagCompound compound, EntityPlayer entityPlayer) { try { entityPlayer.f(compound); - FileOutputStream out = new FileOutputStream(this.path + '/' + entityPlayer.getName()); + FileOutputStream out = new FileOutputStream(this.path + "\\players\\" + entityPlayer.getName() + ".dat"); NBTCompressedStreamTools.a(compound, out); out.close(); } diff --git a/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java b/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java index da19168..91f360b 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java +++ b/src/main/java/tokarotik/giftapi/savemanager/NBTManager.java @@ -3,23 +3,48 @@ package tokarotik.giftapi.savemanager; import net.minecraft.server.v1_6_R3.EntityPlayer; import net.minecraft.server.v1_6_R3.NBTTagCompound; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.Arrays; +import java.util.List; + +import tokarotik.giftapi.savemanager.item.ItemManager; public class NBTManager { private BasicNBT basicNBT; - public NBTManager() + public NBTManager(String world) { - this.basicNBT = new BasicNBT(); + this.basicNBT = new BasicNBT(world); } public boolean write(Player player) { EntityPlayer entityPlayer = this.basicNBT.getPlayer(player); - NBTTagCompound tag = this.basicNBT.readPlayerNBT(entityPlayer); + ItemStack item = new ItemStack(39, 1); + + ItemMeta metaItem = item.getItemMeta(); + + metaItem.setDisplayName("Muhaha"); + + List list = Arrays.asList("Apple", "Banana", "Cherry"); + + metaItem.setLore(list); + + item.setItemMeta(metaItem); + + ItemManager itemManager = new ItemManager(item); + itemManager.getTag(); + + tag.setCompound("giftapi", itemManager.tag); + + System.out.println("OUTPUT" + tag); + return this.basicNBT.writePlayerNBT(tag, entityPlayer); } diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java index 2bda73c..912bd5c 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java +++ b/src/main/java/tokarotik/giftapi/savemanager/item/ItemGame.java @@ -1,9 +1,83 @@ package tokarotik.giftapi.savemanager.item; +import org.bukkit.inventory.ItemStack; +import net.minecraft.server.v1_6_R3.NBTTagCompound; +import org.bukkit.inventory.meta.ItemMeta; + public class ItemGame { - public ItemGame() + + NBTTagCompound tag; + + public ItemGame(NBTTagCompound tag) + { + this.tag = tag; + } + + public ItemStack getItem() { + ItemStack item = new ItemStack( + getId(), getCount(), getDurability() + ); + + ItemMeta meta = item.getItemMeta(); + + + return item; + } + + private int getId() + { + int id = 0; + if (this.tag.hasKey("id")) + { + id = this.tag.getInt("id"); + } + return id; + } + + private short getCount() + { + short count = 0; + if (this.tag.hasKey("count")) + { + count = this.tag.getShort("count"); + } + return count; + } + + private short getDurability() + { + short durability = 0; + if (this.tag.hasKey("durability")) + { + durability = this.tag.getShort("durability"); + } + return durability; + } + + private ItemMeta setMeta(ItemMeta meta) + { + if (this.tag.hasKey("meta")) + { + NBTTagCompound metaNBT = this.tag.getCompound("meta"); + + if (metaNBT.hasKey("name")) + { + meta.setDisplayName(metaNBT.getString("name")); + } + if (metaNBT.hasKey("lore")) + { + //meta.setLore(); + } + } + + return meta; + } + + private void NBTCompountToStringList(NBTTagCompound nbt) + { + return; // it will fill } } diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/Item.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemManager.java similarity index 57% rename from src/main/java/tokarotik/giftapi/savemanager/item/Item.java rename to src/main/java/tokarotik/giftapi/savemanager/item/ItemManager.java index 51c7f37..bff90a2 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/item/Item.java +++ b/src/main/java/tokarotik/giftapi/savemanager/item/ItemManager.java @@ -2,18 +2,20 @@ 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 Item +public class ItemManager { - private ItemStack item; - private NBTTagCompound tag; + public ItemStack item; + public NBTTagCompound tag; - public Item(ItemStack item) + public ItemManager(ItemStack item) { this.item = item; } - public Item(NBTTagCompound tag) + public ItemManager(NBTTagCompound tag) { this.tag = tag; } diff --git a/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java b/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java index bbfa486..78e34de 100644 --- a/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java +++ b/src/main/java/tokarotik/giftapi/savemanager/item/ItemNBTTag.java @@ -1,6 +1,8 @@ package tokarotik.giftapi.savemanager.item; import net.minecraft.server.v1_6_R3.NBTTagCompound; +import net.minecraft.server.v1_6_R3.NBTTagList; +import net.minecraft.server.v1_6_R3.NBTTagString; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -38,7 +40,7 @@ public class ItemNBTTag private void setMetaTag(NBTTagCompound baseTag) { - NBTTagCompound tag = new NBTTagCompound("meta"); + NBTTagCompound tag = new NBTTagCompound(); if (this.item.hasItemMeta()) { @@ -54,7 +56,7 @@ public class ItemNBTTag if (meta.hasLore()) { - tag.setCompound( + tag.set( "lore", stringListToNBTCompound(meta.getLore()) ); @@ -73,14 +75,16 @@ public class ItemNBTTag } } - private NBTTagCompound stringListToNBTCompound(List list) + private NBTTagList stringListToNBTCompound(List list) { - NBTTagCompound NBTlist = new NBTTagCompound(); + NBTTagList NBTlist = new NBTTagList(); - for (String s : list) { - NBTlist.setString( - null, //Integer.toString(i), - for fun - s + for (int i = 0; i < list.size(); i++) { + NBTlist.add( + new NBTTagString( + null, + list.get(i) + ) ); } return NBTlist; @@ -99,9 +103,9 @@ public class ItemNBTTag { levelNBT = level; } - - enchantmentNBT.setInt("id", enchantment.getId()); enchantmentNBT.setInt("level", levelNBT); + + NBTlist.setCompound(String.valueOf(enchantment.getId()), enchantmentNBT); }); return NBTlist; }