private String[] describeShop(Shop shop)
    {
        List<String> shopDetails = new ArrayList<>();

        String seperator = new StringBuilder()
                .append(ChatColor.GREEN).append("=")
                .append(ChatColor.GOLD).append("=")
                .append(ChatColor.GREEN).append("=")
                .append(ChatColor.GOLD).append("=")
                .append(ChatColor.GREEN).append("=")
                .append(ChatColor.GOLD).append("=")
                .append(ChatColor.GREEN).append("=")
                .append(ChatColor.GOLD).append("=")
                .append(ChatColor.GREEN).append("=")
                .append(ChatColor.GOLD).append("=")
                .toString();

        shopDetails.add(seperator);
        shopDetails.add(ChatColor.GOLD + shop.getOwner() + "'s Shop: " + ChatColor.AQUA + shop.getProduct().getMaterial().name().replaceAll("_", " "));

        if (shop.getProduct().isColored())
        {
            StringBuilder sb = new StringBuilder();

            sb
                    .append(ChatColor.GOLD)
                    .append("Color: ")
                    .append(ChatColor.LIGHT_PURPLE)
                    .append(shop.getProduct().getColor().name().replaceAll("_", " "));

            shopDetails.add(sb.toString());
        }

        if (shop.getProduct().isEnchanted())
        {
            StringBuilder sb = new StringBuilder();

            sb.append(ChatColor.GOLD).append("Enchantments: ");

            for (Map.Entry<Enchantment, Integer> entry : shop.getProduct().getEnchantments().entrySet())
            {
                sb
                        .append(ChatColor.LIGHT_PURPLE).append(ShopHelper.toTitleCase(entry.getKey().getName().replaceAll("_", " ")))
                        .append(" ")
                        .append(ChatColor.GREEN).append(entry.getValue())
                        .append(ChatColor.WHITE).append(", ");
            }

            shopDetails.add(sb.toString());
        }

        if (shop.getProduct().isFirework())
        {


            List<FireworkEffect> effects = shop.getProduct().getFireworkMeta().getEffects();
            int power = shop.getProduct().getFireworkMeta().getPower();

            // for (FireworkEffect fe : effects)
            for (int i = 0; i < effects.size(); i++)
            {
                FireworkEffect effect = effects.get(i);

                StringBuilder sb = new StringBuilder();

                 sb.append(ChatColor.GOLD).append("Effect ").append(i + 1).append(": ");

                 List<Color> colors = effect.getColors();

                 for (Color color : colors)
                 {
                     sb.append(color).append("COLOR, ");
                 }

                 shopDetails.add(sb.toString());
            }
        }

        if (shop.getProduct().isTree())
        {
            StringBuilder sb = new StringBuilder()
                    .append(ChatColor.GOLD)
                    .append("Tree Type: ")
                    .append(shop.getProduct().getTreeSpecies());

            shopDetails.add(sb.toString());
        }

        shopDetails.add(new StringBuilder().append(ChatColor.GREEN).append("Buy (from shop): ")
                .append(ChatColor.RED)
                .append((shop.getBuyPrice() > 0)
                    ?  "$" + shop.getBuyPrice() + ChatColor.GREEN + " per item. " + ChatColor.RED + "$" + shop.getBuyPrice() * shop.getItemStack().getMaxStackSize()  + ChatColor.GREEN + " per stack."
                    : "Not selling to customers.").toString());

        shopDetails.add(new StringBuilder().append(ChatColor.GREEN).append("Sell (to shop): ")
                .append(ChatColor.RED)
                .append((shop.getSellPrice() > 0)
                    ?  "$" + shop.getSellPrice() + ChatColor.GREEN + " per item. " + ChatColor.RED + "$" + shop.getSellPrice() * shop.getItemStack().getMaxStackSize()  + ChatColor.GREEN + " per stack."
                    : "Not buying from customers.").toString());


        shopDetails.add(ChatColor.GREEN + "Available Stock: " + ChatColor.RED + shop.getStockCount());
        shopDetails.add(ChatColor.GOLD + "This shop will buy (max) " + ChatColor.RED + shop.getBuyLimit() + ChatColor.GOLD + " items from you.");

        shopDetails.add(seperator);

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