Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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();
                    }
                }
            }
        }
Example #4
0
        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;
        }
Example #5
0
        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);
        }