private void LoadCustomRefills() { _customRefills = RefillParser.Parse(PluginDirectory); if (_customRefills.Count == 0) { return; } var refillMenu = MenuPlugin.AddChild(PluginSettingsRootMenu, "Refill Currency", Settings.RefillCurrency); MenuPlugin.AddChild(refillMenu, "Currency Tab", Settings.CurrencyStashTab); MenuPlugin.AddChild(refillMenu, "Allow Have More", Settings.AllowHaveMore); foreach (var refill in _customRefills) { RangeNode <int> amountOption; if (!Settings.CustomRefillOptions.TryGetValue(refill.MenuName, out amountOption)) { amountOption = new RangeNode <int>(0, 0, refill.StackSize); Settings.CustomRefillOptions.Add(refill.MenuName, amountOption); } amountOption.Max = refill.StackSize; refill.AmountOption = amountOption; MenuPlugin.AddChild(refillMenu, refill.MenuName, amountOption); } _settingsListNodes.Add(Settings.CurrencyStashTab); }
private void LoadCustomFilters() { var filterPath = Path.Combine(PluginDirectory, FITERS_CONFIG_FILE); var filtersLines = File.ReadAllLines(filterPath); var unused = new FilterParser(); _customFilters = FilterParser.Parse(filtersLines); var submenu = new Dictionary <string, MenuItem>(); foreach (var customFilter in _customFilters) { ListIndexNode indexNode; if (!Settings.CustomFilterOptions.TryGetValue(customFilter.Name, out indexNode)) { indexNode = new ListIndexNode { Value = "Ignore", Index = -1 }; Settings.CustomFilterOptions.Add(customFilter.Name, indexNode); } var parentMenu = PluginSettingsRootMenu; if (!string.IsNullOrEmpty(customFilter.SubmenuName)) { if (!submenu.TryGetValue(customFilter.SubmenuName, out parentMenu)) { parentMenu = MenuPlugin.AddChild(PluginSettingsRootMenu, customFilter.SubmenuName); submenu.Add(customFilter.SubmenuName, parentMenu); } } MenuPlugin.AddChild(parentMenu, customFilter.Name, indexNode); customFilter.StashIndexNode = indexNode; _settingsListNodes.Add(indexNode); } }
private void Form1_Load(object sender, EventArgs e) { PluginManager manager = new PluginManager(); Dictionary <string, object> parameters = new Dictionary <string, object>(); parameters.Add("value", 30); manager.SetConfiguration(new PluginConfiguration(parameters)); //manager.SetKeyAllow(evaluateKey); manager.SetKeyAllow((string key) => { return(key == "something"); }); string runnablePath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", @"Plugins\Runnable\bin\Debug\Runnable.dll")); string menuPath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", @"Plugins\Menu\bin\Debug\Menu.dll")); string formPath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..", "..", @"Plugins\Form\bin\Debug\Form.dll")); manager.LoadPlugin(runnablePath); manager.LoadPlugin(menuPath); manager.LoadPlugin(formPath); foreach (LoadedPlugin r in manager.plugins) { Console.WriteLine(r.Name); r.plugin.Started += Plugin_Started; r.plugin.Finished += Plugin_Finished; if (r.plugin is RunnablePlugin) { r.Run(); } //if (r.plugin is MenuPlugin) if (GenericPlugin.CheckTypeForGenericPlugin(r.PluginType, typeof(MenuPlugin))) { MenuPlugin mp = (MenuPlugin)r.plugin; mp.menuStrip = this.formMenuStrip; mp.Run(); } if (GenericPlugin.CheckTypeForGenericPlugin(r.PluginType, typeof(FormsPlugin <>))) { Type t = GenericPlugin.GetGenericClass(r.PluginType); if (t == typeof(Form)) { FormsPlugin <Form> fp = (FormsPlugin <Form>)r.plugin; fp.control = this; fp.Run(); } } } }
public MenuScreen(GamePlugin gamePlugin, MenuPlugin menuPlugin) { _menuPlugin = menuPlugin ?? throw new ArgumentNullException(nameof(menuPlugin)); Title = gamePlugin.Details.Name; InitializeComponent(); foreach (var item in menuPlugin.MenuItems) { var button = new Button { Content = item.Text, HorizontalAlignment = HorizontalAlignment.Stretch }; button.Click += async(sender, args) => { this.IsEnabled = false; try { await Task.Delay(200); var context = new ClickContext(gamePlugin); await item.OnClick(context); } catch (Exception ex) { //TODO: Shutodwn error } finally { this.IsEnabled = true; } }; ButtonList.Items.Add(button); } //var converter = new BrushConverter(); //var brush = (Brush)converter.ConvertFromString(plugin.Theme.Background); //this.Background = brush; }
public MenuItem GetMenuItem(MenuPlugin menuPlugin) { MenuItem item = null; if (menuPlugin.AssemblyName != string.Empty && menuPlugin.AssemblyName != null && menuPlugin.ClassName != string.Empty && menuPlugin.ClassName != null) { string assemblyPath = AssemblyToolkit.GetDll(menuPlugin.AssemblyName); Command cmd = AssemblyToolkit.ActivateObject <Command>(assemblyPath, menuPlugin.ClassName); item = new MenuItem(cmd); } else { item = new MenuItem(); } if (menuPlugin.Image != string.Empty && menuPlugin.Image != null) { string imagePath = CommonToolkit.GetResourceDirectory(menuPlugin.Image); item.Image = CommonToolkit.GetResourceImage(imagePath); } item.Text = (menuPlugin.Label.Equals(string.Empty) || menuPlugin.Label.Equals(null)) ? CommonToolkit.GetLastString(menuPlugin.Path) : menuPlugin.Label; return(item); }