Hello! I am trying to make a plugin that saves inventories to a text file after a certain amount of time (incase you would need to revert if an inventory is lost).
Here is what I have so far:
public static void saveInv(){
for (Object o : MinecraftServer.getServer().getConfigurationManager().playerEntityList){
EntityPlayer p = (EntityPlayer) o;
Date date = new Date();
SimpleDateFormat f = new SimpleDateFormat("MM-dd-yyyy HH-mm-ss");
File file = new File("InventoryStorageFolder/" + p.getGameProfile().getName() + " - " + f.format(date) + ".txt");
if (!file.exists())
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter writer = null;
try {
writer = new PrintWriter(file);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
for (ItemStack s : p.inventory.mainInventory){
if (s == null) continue;
int id = Item.getIdFromItem(s.getItem());
if (!s.hasTagCompound()){
writer.println(Integer.toString(id) + "*" + s.stackSize);
}else
writer.println(Integer.toString(id) + "*" + s.stackSize + "*" + s.getTagCompound().toString());
}
writer.close();
}
}
I have a few questions, though.
1. How do I get the data number of the item (like for vanilla dye or wool: 0-15)?
2. I'm pretty sure most mods, like Tinkers Construct for example, store their item information into NBT tags. If I convert the tags to a string and put it in the file, how do I convert it back to NBT?
If I'm doing anything wrong or if this could be done more easily, please let me know!
Thanks, Blockhead7360.