public static Image GetItemURLImageFromProvider(Settings.Provider provider)
    {
        if (provider != null)
        {
            return(LoadImage(GlobalPaths.CustomPlayerDir + @"\\" + provider.Icon, GlobalPaths.extradir + @"\\NoExtra.png"));
        }

        return(LoadImage(GlobalPaths.extradir + @"\\NoExtra.png"));
    }
    public static void ChangeItem(string item, string itemdir, string defaultitem, PictureBox outputImage, TextBox outputString, ListBox box, bool initial, Settings.Provider provider, bool hatsinextra = false)
    {
        if (Directory.Exists(itemdir))
        {
            if (initial)
            {
                if (!hatsinextra)
                {
                    box.Items.Clear();
                }
                DirectoryInfo dinfo = new DirectoryInfo(itemdir);
                FileInfo[]    Files = dinfo.GetFiles("*.rbxm");
                foreach (FileInfo file in Files)
                {
                    if (file.Name.Equals(string.Empty))
                    {
                        continue;
                    }

                    if (hatsinextra)
                    {
                        if (file.Name.Equals("NoHat.rbxm"))
                        {
                            continue;
                        }
                    }

                    box.Items.Add(file.Name);
                }
                //selecting items triggers the event.
                try
                {
                    box.SelectedItem = item;
                }
                catch (Exception)
                {
                    box.SelectedItem = defaultitem + ".rbxm";
                }

                box.Enabled = true;
            }
        }

        if (File.Exists(itemdir + @"\\" + item.Replace(".rbxm", "") + "_desc.txt"))
        {
            outputString.Text = File.ReadAllText(itemdir + @"\\" + item.Replace(".rbxm", "") + "_desc.txt");
        }
        else
        {
            outputString.Text = item;
        }

        if (provider != null && IsItemURL(item))
        {
            outputImage.Image = GetItemURLImageFromProvider(provider);
        }
        else
        {
            outputImage.Image = LoadImage(itemdir + @"\\" + item.Replace(".rbxm", "") + ".png", itemdir + @"\\" + defaultitem + ".png");
        }
    }