internal static IOptimizator[] SearchOptimizators(string Filter) { var Optimizators = new IOptimizator[0]; foreach (string PluginPath in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, Filter)) { try { string Content = File.ReadAllText(PluginPath, System.Text.Encoding.UTF8); Content = Content.Replace("IPlugin", "IOptimizator"); int IO = Content.Substring(0, Content.IndexOf("class")).IndexOf("using "); if (IO < 0) { IO = 0; } Content = Content.Substring(0, IO) + "using TLBOT.Optimizator;\n" + Content.Substring(IO); try { DotNetVM VM = new DotNetVM(Content, DotNetVM.Language.CSharp); Type[] Classes = VM.Assembly.GetTypes().Where(x => typeof(IOptimizator).IsAssignableFrom(x)).ToArray(); foreach (Type Class in Classes) { IOptimizator Plugin = (IOptimizator)Activator.CreateInstance(Class); Optimizators = Optimizators.AppendArray(Plugin); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), string.Format("TLBOT 2 - {0} Error", System.IO.Path.GetFileName(PluginPath)), MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch { } } return(Optimizators); }
private void ItemChecked(object sender, ItemCheckEventArgs e) { IOptimizator Optimizator = AllOptimizators.Where(x => x.GetName() == OptimizatorList.Items[e.Index].ToString()).First(); bool Enabled = e.NewValue == CheckState.Checked; if (Optimizator is WordWraper) { Program.OptimizatorSettings.EnableWordWrap = Enabled; } else if (Optimizator is CaseFixer) { Program.OptimizatorSettings.CaseFixer = Enabled; } else if (Optimizator is Replaces) { Program.OptimizatorSettings.CustomReplaces = Enabled; } else if (Optimizator is JapFixer) { Program.OptimizatorSettings.JapaneseFixer = Enabled; } else if (Optimizator is DialogueFilter) { Program.OptimizatorSettings.DialogueFilter = Enabled; } else if (Optimizator is MassiveFix) { Program.OptimizatorSettings.MassiveFixer = Enabled; } else { foreach (IOptimizator EOptimizator in AllOptimizators) { if (EOptimizator.GetName() != Optimizator.GetName()) { continue; } string Name = CaseFixer.SetCase(EOptimizator.GetName(), CaseFixer.Case.Title).Trim().Replace(" ", ""); Ini.SetConfig("Optimizator", Name, Enabled ? "True" : "False", Program.INIPath); } } }
private bool IsEnabled(IOptimizator Optimizator) => (from x in EnabledOptimizators where x.GetName() == Optimizator.GetName() select x).Count() > 0;