void ProcessLine(string line) { if (line.Contains("custim_timer_source")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _CustomTimerSource = EnumFileSource.ProfileFolder; else if (val == 1) _CustomTimerSource = EnumFileSource.PlayerFolder; } else if (line.Contains("exec_source")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _ExecSource = EnumFileSource.ProfileFolder; else if (val == 1) _ExecSource = EnumFileSource.PlayerFolder; } else if (line.Contains("key_bindings_source")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _KeyBindSource = EnumFileSource.ProfileFolder; else if (val == 1) _KeyBindSource = EnumFileSource.PlayerFolder; } else if (line.Contains("auto_run_source")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _AutoRunSource = EnumFileSource.ProfileFolder; else if (val == 1) _AutoRunSource = EnumFileSource.PlayerFolder; } else if (line.Contains("irc_log_rotation")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _IrcLoggingType = EnumLoggingType.Never; else if (val == 1) _IrcLoggingType = EnumLoggingType.OneFile; else if (val == 2) _IrcLoggingType = EnumLoggingType.Monthly; else if (val == 3) _IrcLoggingType = EnumLoggingType.Daily; } else if (line.Contains("other_log_rotation")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _OtherLoggingType = EnumLoggingType.Never; else if (val == 1) _OtherLoggingType = EnumLoggingType.OneFile; else if (val == 2) _OtherLoggingType = EnumLoggingType.Monthly; else if (val == 3) _OtherLoggingType = EnumLoggingType.Daily; } else if (line.Contains("event_log_rotation")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _EventLoggingType = EnumLoggingType.Never; else if (val == 1) _EventLoggingType = EnumLoggingType.OneFile; else if (val == 2) _EventLoggingType = EnumLoggingType.Monthly; else if (val == 3) _EventLoggingType = EnumLoggingType.Daily; } else if (line.Contains("skillgain_minimum")) { int? val = ExtractSettingNumericValue(line); if (val == 0) _SkillGainRate = EnumSkillGainRate.Never; else if (val == 1) _SkillGainRate = EnumSkillGainRate.PerInteger; else if (val == 2) _SkillGainRate = EnumSkillGainRate.Per0_1; else if (val == 3) _SkillGainRate = EnumSkillGainRate.Per0_01; else if (val == 4) _SkillGainRate = EnumSkillGainRate.per0_001; else if (val == 5) _SkillGainRate = EnumSkillGainRate.Always; } else if (line.Contains("skillgain_no_alignment")) { bool? val = ExtractBoolValue(line); if (val == true) _NoSkillMessageOnAlignmentChange = true; else if (val == false) _NoSkillMessageOnAlignmentChange = false; } else if (line.Contains("skillgain_no_favor")) { bool? val = ExtractBoolValue(line); if (val == true) _NoSkillMessageOnFavorChange = true; else if (val == false) _NoSkillMessageOnFavorChange = false; } else if (line.Contains("save_skills_on_quit")) { bool? val = ExtractBoolValue(line); if (val == true) _SaveSkillsOnQuit = true; else if (val == false) _SaveSkillsOnQuit = false; } else if (line.Contains("setting_timestamps")) { bool? val = ExtractBoolValue(line); if (val == true) _TimestampMessages = true; else if (val == false) _TimestampMessages = false; } }
/// <summary> /// Sets 'skillgain tab updates' to specified value in this config, /// requires that no wurm clients are running, else will abort /// </summary> /// <param name="newValue"></param> /// <returns></returns> public bool SetSkillGainRate(EnumSkillGainRate newValue) { try { if (State.WurmClientRunning == State.EnumWurmClientStatus.Running) return false; if (newValue == EnumSkillGainRate.Unknown) return false; string replacement = "skillgain_minimum="; if (newValue == EnumSkillGainRate.Never) replacement += "0"; if (newValue == EnumSkillGainRate.PerInteger) replacement += "1"; if (newValue == EnumSkillGainRate.Per0_1) replacement += "2"; if (newValue == EnumSkillGainRate.Per0_01) replacement += "3"; if (newValue == EnumSkillGainRate.per0_001) replacement += "4"; if (newValue == EnumSkillGainRate.Always) replacement += "5"; if (RewriteFile(@"skillgain_minimum=\d", replacement)) { _SkillGainRate = newValue; return true; } else return false; } catch (Exception _e) { Logger.LogError("Error while modifying settings in wurm config file", this, _e); return false; } }