public static String[] toString(ItemStack is) {
		ArrayList<String> msg = new ArrayList<String>();
		
		MaterialData md = is.getData();

		msg.add(Integer.toString(is.getAmount()) + " of " + md.getItemType().name() + " ");
		
		if( is.hasItemMeta() ) {
			ItemMeta im = is.getItemMeta();
			
			if( im.hasEnchants() ) {
				Map<Enchantment,Integer> enchants = im.getEnchants();
				
				for( Entry<Enchantment, Integer> enchant : enchants.entrySet() ) {
					msg.add("    - " + enchant.getKey().getName() + " @ " + Integer.toString(enchant.getValue()));
				}
			}
			
			if( im.hasDisplayName()) {
				msg.add("Display Name: " + im.getDisplayName());
			}

			if( im.hasLore() ) {
				ArrayList<String> lores = (ArrayList<String>)im.getLore();
				
				for( String lore : lores ) {
					msg.add("Lore: " + lore);
				}
			}				
		}

		return msg.toArray(new String[msg.size()]);
	}