void irc_OnMSGRecvd(MSG msg) { if (msg.message.StartsWith(".addact ")) { action = msg.message.Substring(".addact ".Length); if (!action.Contains("$nick")) { action += " $nick"; } actions.Add((string)action.Clone()); EncFile.AppendText(server.Data + Path.DirectorySeparatorChar + "actions.db", action + "\n"); } else if (msg.message.StartsWith(".act")) { if (msg.message.Split(' ').Length > 1) { action = actions[rand.Next(actions.Count)]; irc.SendMe(msg.to, action.Replace("$nick", msg.message.Split(' ')[1])); } else { action = actions[rand.Next(actions.Count)]; irc.SendMe(msg.to, action.Replace("$nick", msg.from)); } } }
public override void Load() { words.Clear(); lines.Clear(); if (File.Exists(server.Data + Path.DirectorySeparatorChar + "lines.dat") && false) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "lines.dat")) { string str = line.Substring(line.IndexOf(':') + 1); uint num = uint.Parse(line.Substring(0, line.IndexOf(':'))); for (uint x = 0; x < num; x++) { Learn(str); } } } else { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "logfile.txt")) { if (line.Contains("antiroach>") || line.Contains("peterzal>")) { ProcessMessage(new MSG("", "", "", "", line.Substring(line.IndexOf('>') + 2))); } } } }
public override void Save() { string fileout = ""; foreach (KeyValuePair <string, List <uint> > times in channelOverall) { fileout += times.Key; foreach (ulong time in times.Value) { fileout += " " + time.ToString(); } fileout += "\n"; } foreach (KeyValuePair <string, Dictionary <string, List <uint> > > timess in chanNickOverall) { foreach (KeyValuePair <string, List <uint> > times in timess.Value) { fileout += timess.Key + " " + times.Key; foreach (uint time in times.Value) { fileout += " " + time.ToString(); } fileout += "\n"; } } Directory.CreateDirectory(server.Data); EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "ActivityMonitor.db", fileout); }
public override void Load() { chanNickOverall.Clear(); channelOverall.Clear(); if (File.Exists(server.Data + Path.DirectorySeparatorChar + "ActivityMonitor.db")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "ActivityMonitor.db")) { string[] s = line.Split(' '); if (s.Length == 25) { List <uint> list = new List <uint>(); for (int x = 1; x < 25; x++) { list.Add(uint.Parse(s[x])); } channelOverall[s[0]] = list; } else { if (!chanNickOverall.ContainsKey(s[0])) { chanNickOverall[s[0]] = new Dictionary <string, List <uint> >(); } List <uint> list = new List <uint>(); for (int x = 2; x < 26; x++) { list.Add(uint.Parse(s[x])); } chanNickOverall[s[0]][s[1]] = list; } } } }
public override void Save() { string toFile = ""; lock (words) { foreach (KeyValuePair <string, List <KeyValuePair <int, ushort> > > word in words) { toFile += word.Key; foreach (KeyValuePair <int, ushort> pair in word.Value) { toFile += " " + pair.Key.ToString() + " " + pair.Value.ToString(); } toFile += "\n"; } } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "words.dat", toFile); toFile = ""; lock (lines) { foreach (KeyValuePair <int, KeyValuePair <string, uint> > line in lines) { toFile += line.Value.Value.ToString() + ":" + line.Value.Key + "\n"; } } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "lines.dat", toFile); }
public override void AuthedCommand(MSG msg, int operLevel) { msg.message = msg.message.Substring(msg.message.IndexOf(' ') + 1); if (msg.message.StartsWith("add ") && msg.message.Split(' ').Length == 3) { oplist.Add(msg.message.Split(' ')[1], msg.message.Split(' ')[2]); EncFile.AppendText(server.Data + Path.DirectorySeparatorChar + "autoop.db", msg.message.Split(' ')[1] + " " + msg.message.Split(' ')[2] + "\n"); } }
private static void UnpackRegulationFile(Options options) { using (FileStream inputStream = new FileStream(options.InputPath, FileMode.Open, FileAccess.Read)) { EncFile encryptedFile = EncFile.ReadEncFile(inputStream, DecryptionKeys.RegulationFileKey); DcxFile compressedRegulationFile = DcxFile.Read(encryptedFile.Data); UnpackBndFile(new MemoryStream(compressedRegulationFile.Decompress()), options.OutputPath); } }
public override void Save() { string toFile = ""; foreach (KeyValuePair <string, string> login in logins) { toFile += login.Key + " " + login.Value + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "nickserv.passwd", toFile); }
public override void Load() { if (File.Exists(server.Data + Path.DirectorySeparatorChar + "nickserv.passwd")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "nickserv.passwd")) { logins.Add(line.Split(' ')[0], line.Split(' ')[1]); } } }
public override void Save() { string output = ""; foreach (KeyValuePair <string, string> user in registrar) { output += user.Key + ":" + user.Value + "\n"; } Directory.CreateDirectory(server.Data); EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "lastfm.db", output); }
public override void Load() { if (File.Exists(server.Data + Path.DirectorySeparatorChar + "autoop.db")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "autoop.db")) { oplist.Add(line.Split(' ')[0], line.Split(' ')[1]); } } else { File.Create(server.Data + Path.DirectorySeparatorChar + "autoop.db").Close(); } }
public override void Load() { if (File.Exists(server.Data + Path.DirectorySeparatorChar + "actions.db")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "actions.db")) { actions.Add(line); } } else { File.Create(server.Data + Path.DirectorySeparatorChar + "actions.db").Close(); EncFile.AppendText(server.Data + Path.DirectorySeparatorChar + "actions.db", "shakes hands with $nick\n"); actions.Add("shakes hands with $nick"); } }
public override void Save() { string toFile = ""; for (int x = 0; x < newSuggestions.Count; x++) { toFile += newSuggestions[x].ToString() + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "suggestions.new", toFile); toFile = ""; for (int x = 0; x < oldSuggestions.Count; x++) { toFile += oldSuggestions[x].ToString() + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "suggestions.old", toFile); }
public override void Load() { try { if (File.Exists(server.Data + Path.DirectorySeparatorChar + "lastfm.db")) { foreach (string line in EncFile.ReadAllText(server.Data + Path.DirectorySeparatorChar + "lastfm.db").Split("\n".ToCharArray())) { if (!string.IsNullOrEmpty(line)) { registrar.Add(line.Split(':')[0], line.Split(':')[1]); } } } } catch { } }
public override void Save() { Directory.CreateDirectory(server.Data); string toFile = ""; foreach (KeyValuePair <DateTime, KeyValuePair <string, string> > y in youtubes) { toFile += y.Key.ToBinary().ToString() + " " + y.Value.Key + " " + y.Value.Value + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "youtubes", toFile); toFile = ""; foreach (KeyValuePair <DateTime, KeyValuePair <string, string> > y in links) { toFile += y.Key.ToBinary().ToString() + " " + y.Value.Key + " " + y.Value.Value + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "links", toFile); }
public override void Load() { if (File.Exists(server.Data + Path.DirectorySeparatorChar + "insult.db")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "insult.db")) { switch (line.Split(':')[0]) { case "body": bodyParts.Add(line.Split(':')[1]); break; case "animal": animalCocks.Add(line.Split(':')[1]); break; case "wipe": wipeMunchers.Add(line.Split(':')[1]); break; } } } else { File.Create(server.Data + Path.DirectorySeparatorChar + "insult.db").Close(); bodyParts.Add("face"); bodyParts.Add("ass"); bodyParts.Add("dick"); bodyParts.Add("twat"); bodyParts.Add("mouth"); animalCocks.Add("baby dick"); animalCocks.Add("mosquito c**k"); animalCocks.Add("weasel's ass"); animalCocks.Add("badger's v****a"); animalCocks.Add("rhino ass"); animalCocks.Add("90 year old man's boobs"); wipeMunchers.Add("butt faced pile of dog shit"); wipeMunchers.Add("baby rapist"); wipeMunchers.Add("shit eating c**k bag"); wipeMunchers.Add("c**k sucking fucktard"); wipeMunchers.Add("steaming pile of nigger shit"); } }
public override void Save() { Directory.CreateDirectory(server.Data); string quotefile = ""; for (int x = 0; x < quotes.Count; x++) { quotefile += quotes[x].ToString() + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "quotes", quotefile); string datafile = ""; foreach (KeyValuePair <string, MSG> last in database) { datafile += last.Value.ToString() + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "lastsaid", datafile); }
public override void Save() { string o = ""; foreach (string s in bodyParts) { o += "body:" + s + "\n"; } foreach (string s in animalCocks) { o += "animal:" + s + "\n"; } foreach (string s in wipeMunchers) { o += "wipe:" + s + "\n"; } EncFile.WriteAllText(server.Data + Path.DirectorySeparatorChar + "insult.db", o); }
public override void Load() { newSuggestions.Clear(); oldSuggestions.Clear(); if (File.Exists(server.Data + Path.DirectorySeparatorChar + "suggestions.new")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "suggestions.new")) { newSuggestions.Add(new MSG(line)); } } if (File.Exists(server.Data + Path.DirectorySeparatorChar + "suggestions.old")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "suggestions.old")) { oldSuggestions.Add(new MSG(line)); } } }
public override void Load() { Regex extract = new Regex("(?<date>[^ ]*)( )(?<link>[^ ]*)( )(?<title>.*)"); if (File.Exists(server.Data + Path.DirectorySeparatorChar + "youtubes")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "youtubes")) { Match m = extract.Match(line); youtubes.Add(new KeyValuePair <DateTime, KeyValuePair <string, string> >(DateTime.FromBinary(long.Parse(m.Groups["date"].Value)), new KeyValuePair <string, string>(m.Groups["link"].Value, m.Groups["title"].Value))); } } if (File.Exists(server.Data + Path.DirectorySeparatorChar + "link")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "links")) { Match m = extract.Match(line); links.Add(new KeyValuePair <DateTime, KeyValuePair <string, string> >(DateTime.FromBinary(long.Parse(m.Groups["date"].Value)), new KeyValuePair <string, string>(m.Groups["link"].Value, m.Groups["title"].Value))); } } }
public override void Load() { database.Clear(); quotes.Clear(); log.Clear(); if (File.Exists(server.Data + Path.DirectorySeparatorChar + "quotes")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "quotes")) { MSG c = new MSG(line); quotes.Add(c); } } if (File.Exists(server.Data + Path.DirectorySeparatorChar + "lastsaid")) { foreach (string line in EncFile.ReadAllLines(server.Data + Path.DirectorySeparatorChar + "lastsaid")) { MSG c = new MSG(line); database[c.from] = c; } } }
private static void UnpackBdtFile(Options options) { FileNameDictionary dictionary = FileNameDictionary.OpenFromFile(options.InputGameVersion); string fileNameWithoutExtension = Path.GetFileName(options.InputPath).Replace("Ebl.bdt", "").Replace(".bdt", ""); string archiveName = fileNameWithoutExtension.ToLower(); using (Bdt5FileStream bdtStream = Bdt5FileStream.OpenFile(options.InputPath, FileMode.Open, FileAccess.Read)) { Bhd5File bhdFile = Bhd5File.Read( inputStream: DecryptBhdFile( filePath: Path.ChangeExtension(options.InputPath, "bhd"), version: options.InputGameVersion), version: options.InputGameVersion ); foreach (var bucket in bhdFile.GetBuckets()) { foreach (var entry in bucket.GetEntries()) { MemoryStream data; if (entry.FileSize == 0) { long fileSize; if (!TryReadFileSize(entry, bdtStream, out fileSize)) { Console.WriteLine($"Unable to determine the length of file '{entry.FileNameHash:D10}'"); continue; } entry.FileSize = fileSize; } if (entry.IsEncrypted) { data = bdtStream.Read(entry.FileOffset, entry.PaddedFileSize); CryptographyUtility.DecryptAesEcb(data, entry.AesKey.Key, entry.AesKey.Ranges); data.Position = 0; data.SetLength(entry.FileSize); } else { data = bdtStream.Read(entry.FileOffset, entry.FileSize); } string fileName; string dataExtension = GetDataExtension(data); bool fileNameFound = dictionary.TryGetFileName(entry.FileNameHash, archiveName, out fileName); if (!fileNameFound) { fileNameFound = dictionary.TryGetFileName(entry.FileNameHash, archiveName, dataExtension, out fileName); } string extension; if (fileNameFound) { extension = Path.GetExtension(fileName); if (dataExtension == ".dcx" && extension != ".dcx") { extension = ".dcx"; fileName += ".dcx"; } } else { extension = dataExtension; fileName = $"{entry.FileNameHash:D10}_{fileNameWithoutExtension}{extension}"; } if (extension == ".enc") { byte[] decryptionKey; if (DecryptionKeys.TryGetAesFileKey(Path.GetFileName(fileName), out decryptionKey)) { EncFile encFile = EncFile.ReadEncFile(data, decryptionKey); data = encFile.Data; fileName = Path.Combine(Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName)); extension = Path.GetExtension(fileName); } else { Debug.WriteLine($"No decryption key for file \'{fileName}\' found."); } } if (extension == ".dcx") { DcxFile dcxFile = DcxFile.Read(data); data = new MemoryStream(dcxFile.Decompress()); fileName = Path.Combine(Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName)); if (fileNameFound) { extension = Path.GetExtension(fileName); } else { extension = GetDataExtension(data); fileName += extension; } } if (extension == ".bnd") { UnpackBnd3File(data, options.OutputPath); continue; // don't actually unpack bnds } Debug.WriteLine( "{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}", fileNameWithoutExtension, fileName, extension, entry.FileNameHash, entry.FileOffset, entry.FileSize, entry.PaddedFileSize, entry.IsEncrypted, fileNameFound); string newFileNamePath = Path.Combine(options.OutputPath, fileName); Directory.CreateDirectory(Path.GetDirectoryName(newFileNamePath)); File.WriteAllBytes(newFileNamePath, data.ToArray()); } } } }