public string GenerateDefaultModSettings()
        {
            Logger.Debug("Generating default settings...");
            var settingsList = new List <string>();

            settingsList.Add(new TModSettings().Serialize());
            ModFeatures.ForEach(feature => settingsList.Add(feature.DefaultSettings.Serialize()));
            return(settingsList.Join());
        }
        private void Initialize(HarmonyInstance harmonyInstance, string settings)
        {
            Logger.Debug("Initializing Features...");
            ModSettings     = JsonHelpers.Deserialize <TModSettings>(settings) ?? new TModSettings();
            Logger.LogLevel = ModSettings.LogLevel;
            var jsonSettings = JsonHelpers.Deserialize(settings);

            ModFeatures.ForEach(
                feature => feature.Initialize(
                    harmonyInstance,
                    jsonSettings?[feature.Name]?.ToString(),
                    Logger,
                    Directory));
            Logger.Debug("Feature initialization complete.");
        }
Example #3
0
        static MultiAdminFeatures()
        {
            foreach (string startArg in Environment.GetCommandLineArgs())
            {
                if (startArg.StartsWith(MULTIADMIN_CONSOLE_PREFIX, StringComparison.OrdinalIgnoreCase))
                {
                    MultiAdminUsed = true;

                    IEnumerable <string> separatedInfo = startArg.Split(MultiAdminValueSeparator).Skip(1);
                    MultiAdminVersion = separatedInfo.ElementAtOrDefault(0);
                    string features = separatedInfo.ElementAtOrDefault(1);
                    if (!string.IsNullOrEmpty(features) && int.TryParse(features, out int modFeatures))
                    {
                        MultiAdminModFeatures = (ModFeatures)modFeatures;
                        return;
                    }

                    ServerConsole.AddLog($"Failed to parse MultiAdmin ModFeatures! Source: {features}", ConsoleColor.Red);
                    break;
                }
            }
        }