public virtual void Load() { try { lock (ChannelEvalCommands) { if (File.Exists($"./db/{ChannelSaveID}.evalcommands.txt")) { File.ReadAllLines($"./db/{ChannelSaveID}.evalcommands.txt").Do(line => { try { int index; if ((index = line.IndexOf('=')) != -1) { string name = line.Remove(index); ChannelEvalCommands.Add(new EvalCommand(Bot, name.TrimStart('%', '!'), line.Substring(index + 1), name.IndexOf('!') != -1) { AdminOnly = name.IndexOf('%') != -1 }); } } catch { } }); } } } catch { } Settings.Load($"./db/{ChannelSaveID}.settings.ini"); try { if (File.Exists($"./db/{ChannelSaveID}.bets.ini")) { using (var r = new StreamReader($"./db/{ChannelSaveID}.bets.ini")) { CurrentBetName = r.ReadLine(); string line; while ((line = r.ReadLine()) != null) { var S = line.Split(':'); lock (BetEntries) { BetEntries.Add(new SportsBetItem { UserID = S[0], Points = long.Parse(S[1]), Score = Tuple.Create(int.Parse(S[2]), int.Parse(S[3])) }); } } } } } catch {; } }
public virtual void Save() { File.WriteAllLines($"./db/{ChannelSaveID}.evalcommands.txt", ChannelEvalCommands.Select(c => (c.AdminOnly ? "%" : "") + (c.IgnoreExceptions ? "!" : "") + c.Name + "=" + c.Expression)); Settings.Save($"./db/{ChannelSaveID}.settings.ini"); lock (BetEntries) { try { if (BetEntries.Count == 0) { if (File.Exists($"./db/{ChannelSaveID}.bets.ini")) { File.Delete($"./db/{ChannelSaveID}.bets.ini"); } } else { File.WriteAllLines($"./db/{ChannelSaveID}.bets.ini", new string[] { CurrentBetName }.Concat(BetEntries.Select(x => x.UserID + ":" + x.Points + ":" + x.Score.Item1 + ":" + x.Score.Item2))); } } catch { } } }