private void OnMenuLanguageSettingRefreshAvailableLanguages(On.UnityEngine.UI.MenuLanguageSetting.orig_RefreshAvailableLanguages orig, UnityEngine.UI.MenuLanguageSetting self)
        {
            orig(self);
            LanguageCode[] customLangs;
            if (GameManager.instance.gameConfig.hideLanguageOption)
            {
                customLangs = (Enum.GetValues(typeof(LanguageCode)) as LanguageCode[]);
            }
            else
            {
                customLangs = (Enum.GetValues(typeof(LanguageCode)) as LanguageCode[]);
            }

            SupportedLanguages[]      langs      = (SupportedLanguages[])self.GetType().GetField("langs", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(self);
            List <SupportedLanguages> finalLangs = new List <SupportedLanguages>();

            foreach (var l in customLangs)
            {
                if (File.Exists($"{DIR}/{l}/General.txt") || (langs.Contains((SupportedLanguages)l)))
                {
                    finalLangs.Add((SupportedLanguages)l);
                }
            }

            self.GetType().GetField("langs", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(self, finalLangs.ToArray());

            //self.optionList = new string[finalLangs.Count];
            //for (int i = 0; i < finalLangs.Count; i++)
            //{
            //    self.optionList[i] = finalLangs[i].ToString();
            //}
        }
 private void OnMenuLanguageSettingPushUpdateOptionList(On.UnityEngine.UI.MenuLanguageSetting.orig_PushUpdateOptionList orig, UnityEngine.UI.MenuLanguageSetting self)
 {
     orig(self);
     SupportedLanguages[] langs = (SupportedLanguages[])self.GetType().GetField("langs", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(self);
     string[]             array = new string[langs.Length];
     for (int i = 0; i < langs.Length; i++)
     {
         array[i] = ((LanguageCode)langs[i]).ToString();
     }
     self.SetOptionList(array);
 }