protected void SaveConfig()
 {
     Logger.DebugVerbose("Saving Config");
     configOptions.Save();
     if (DiscordPluginConfig.BotToken != _currentToken)
     {
         //Reinitialise client.
         Logger.Info("Discord Token changed, reinitialising client.\n");
         RestartClient();
     }
 }
        private void checkBox_AdvancedStats_Checked(object sender, RoutedEventArgs e)
        {
            if (!_initialized)
            {
                return;
            }

            PluginConfig.Instance.AdvancedStatsEnable = true;
            PluginConfig.Save();
        }
        private void checkBox_ActiveDeck_Unchecked(object sender, RoutedEventArgs e)
        {
            if (!_initialized)
            {
                return;
            }

            PluginConfig.Instance.ActiveDeckEnable = false;
            PluginConfig.Save();
        }
        private void radioButton_Ascending_Checked(object sender, RoutedEventArgs e)
        {
            if (!_initialized)
            {
                return;
            }

            PluginConfig.Instance.ArenaRunsOrder = true;
            PluginConfig.Save();
        }
        private void buttonBrowse_ArenaRuns_Click(object sender, RoutedEventArgs e)
        {
            if (!_initialized)
            {
                return;
            }

            textBox_ArenaRunsFile.Text          = getFilePath();
            PluginConfig.Instance.ArenaRunsPath = textBox_ArenaRunsFile.Text;
            PluginConfig.Save();
        }
        private void buttonBrowse_AdvancedStats_Click(object sender, RoutedEventArgs e)
        {
            if (!_initialized)
            {
                return;
            }

            textBox_AdvancedStatsFolder.Text        = getFolderPath();
            PluginConfig.Instance.AdvancedStatsPath = textBox_AdvancedStatsFolder.Text;
            PluginConfig.Save();
        }
Example #7
0
        public void CurrentMetaFileVersion_SaveLoad()
        {
            var config1 = new PluginConfig();

            config1.CurrentMetaFileVersion = "2";
            var memoryStream = new MemoryStream();

            config1.Save(new StreamWriter(memoryStream));
            memoryStream.Seek(0, SeekOrigin.Begin);

            var config2 = PluginConfig.Load(new StreamReader(memoryStream));

            Assert.AreEqual("2", config2.CurrentMetaFileVersion);
        }
Example #8
0
 private void *ChangeSortOptionDetour(SomeAgent *agent, int sortOption)
 {
     try {
         if (agent->SomeInt != 0)
         {
             sortOption = Config.SelectedOption;
         }
         else
         {
             Config.SelectedOption = sortOption;
             PluginConfig.Save();
         }
     } catch {
         //
     }
     return(changeSortOptionHook.Original(agent, sortOption));
 }
Example #9
0
        public static void DumpDlls()
        {
            var configs = new PluginConfig <ModKitConfig>("ModKit");

            if (!configs.Config.PreserveGeneratedModsAssembly)
            {
                configs.Config.PreserveGeneratedModsAssembly = true;
                configs.Save();

                throw new Exception("PreserveGeneratedModsAssembly was false, please restart!");
            }

            Assembly entryAssembly = Assembly.GetEntryAssembly();

            string destDir = Path.Combine(Path.GetDirectoryName(entryAssembly.Location), "extracted");

            Directory.CreateDirectory(destDir);

            foreach (string assembly in mAssemblies)
            {
                string asmname      = $"costura.{assembly}.compressed".ToLower();
                string destFileName = Path.Combine(destDir, assembly);

                File.Delete(destFileName);

                using (Stream stream = entryAssembly.GetManifestResourceStream(asmname))
                    using (DeflateStream deflateStream = new DeflateStream(stream, CompressionMode.Decompress))
                        using (FileStream destination = File.OpenWrite(destFileName))
                            deflateStream.CopyTo(destination);
            }

            File.Delete(Path.Combine(destDir, "Eco.Mods.dll"));

            //SLG is using Directory.GetCurrentDirectory() here, so we use it, too
            File.Copy(Path.Combine(Directory.GetCurrentDirectory(), "Eco.Mods.dll"), Path.Combine(destDir, "Eco.Mods.dll"));

            File.Delete(Path.Combine(destDir, "EcoServer.exe"));
            File.Copy(entryAssembly.Location, Path.Combine(destDir, "EcoServer.exe"));


            Console.WriteLine("Dlls extracted!");
            Thread.Sleep(500);
        }
Example #10
0
        public void OnConfigCommandHandler(object a, object b)
        {
            if (b is string s)
            {
                switch (s.ToLower())
                {
                case "t":
                case "toggle": {
                    PluginConfig.Enable = !PluginConfig.Enable;
                    break;
                }

                case "s":
                case "show": {
                    PluginConfig.Enable = true;
                    break;
                }

                case "h":
                case "hide": {
                    PluginConfig.Enable = false;
                    break;
                }

                case "r":
                case "reset": {
                    fpsHistory.Clear();
                    break;
                }

                default: {
                    drawConfigWindow = true;
                    break;
                }
                }

                PluginConfig.Save();
            }
            else
            {
                drawConfigWindow = true;
            }
        }
        private void textBox_MaxRuns_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (!_initialized)
            {
                return;
            }

            int  limit  = 0;
            bool result = int.TryParse(textBox_MaxRuns.Text, out limit);

            if (result)
            {
                PluginConfig.Instance.ArenaRunsLimit = limit;
                PluginConfig.Save();
            }
            else
            {
                textBox_MaxRuns.Text = PluginConfig.Instance.ArenaRunsLimit.ToString();
            }
        }
Example #12
0
        internal override void Invoke(MessageReceivedEventArgs e)
        {
            if (Owner == -1)
            {
                Handled = true;
            }

            if (IsRunning)
            {
                if (CurrentUser == null && (Owner == -1 || e.Subject.Number == Owner))
                {
                    CurrentUser = e.Subject;
                }

                if (CurrentUser != null && CurrentUser.Equals(e.Subject))
                {
                    switch (CurrentStepId)
                    {
                    case 0:
                        if (Owner == -1)
                        {
                            e.Reply("Hey! 别来无恙啊,欢迎使用 Minop Bot!");
                        }
                        e.Reply("请输入管理员账号:(输入 -1 则设置为当前账号)");
                        break;

                    case 1:
                        if (long.TryParse(e.Message, out OwnerSet))
                        {
                            if (OwnerSet < -1)
                            {
                                e.Reply("QQ 号不正确,请重新输入管理员账号:");
                                CurrentStepId--;
                                break;
                            }

                            e.Reply("管理员设置完毕!");
                            e.Reply("请输入命令响应前缀:");
                        }
                        else
                        {
                            e.Reply("获取 QQ 号失败,请重新输入管理员账号:");
                            CurrentStepId--;
                        }

                        break;

                    case 2:
                        Prefix = e.Message;
                        e.Reply("命令响应前缀设置完毕!");
                        break;
                    }

                    if (CurrentStepId == LastStepId)
                    {
                        e.Reply("配置准备就绪,敬请使用吧!\n" +
                                $"如果需要使用帮助菜单,请输入 {Prefix}help\n" +
                                $"如果设置管理员账号有误,请删除 data\\app\\{AppId}\\PluginConfig.json,并重载应用,发送 minop config\n" +
                                $"如果仅需修改其他内容,发送 {Prefix}config 重新配置即可");

                        if (OwnerSet == -1)
                        {
                            Owner = CurrentUser.Number;
                        }
                        else
                        {
                            Owner = OwnerSet;
                        }

                        PluginConfig.Save();
                        CurrentStepId = 0;
                        CurrentUser   = null;
                        OwnerSet      = -1;
                        IsRunning     = false;
                    }
                    else
                    {
                        CurrentStepId++;
                    }
                }

                Handled = true;
            }
        }
Example #13
0
 public static void Save()
 {
     CONFIG.Save();
 }