package tonius.neiintegration.mods.mcforge.dumpers; import java.util.LinkedList; import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import codechicken.nei.config.DataDumper; public class InventoryDumper extends DataDumper { public InventoryDumper() { super("tools.dump.neiintegration.inventory"); } @Override public String[] header() { return new String[] { "Slot", "Display Name", "Amount", "Damage", "Max Damage", "Item ID", "Unlocalized Name", "Item Class", "NBT" }; } @Override public Iterable<String[]> dump(int mode) { List<String[]> list = new LinkedList<String[]>(); this.addToList(list, Minecraft.getMinecraft().thePlayer.inventory.mainInventory, false); this.addToList(list, Minecraft.getMinecraft().thePlayer.inventory.armorInventory, true); return list; } private void addToList(List<String[]> list, ItemStack[] stacks, boolean isArmor) { for (int i = 0; i < stacks.length; i++) { ItemStack stack = stacks[i]; if (stack == null || stack.getItem() == null) { continue; } String slot = String.valueOf(i + (isArmor ? 100 : 0)); String displayName = stack.getDisplayName(); String amount = String.valueOf(stack.stackSize); String damage = String.valueOf(stack.getItemDamage()); String maxDamage = String.valueOf(stack.getMaxDamage()); String itemID = Item.itemRegistry.getNameForObject(stack.getItem()); String unlocalizedName = stack.getUnlocalizedName(); String itemClass = stack.getItem().getClass().getName(); String nbt = stack.stackTagCompound != null ? stack.stackTagCompound.toString() : ""; list.add(new String[] { slot, displayName, amount, damage, maxDamage, itemID, unlocalizedName, itemClass, nbt }); } } @Override public int modeCount() { return 1; } }