Ejemplo n.º 1
0
 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));
         }
     }
 }
Ejemplo n.º 2
0
 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)));
             }
         }
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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;
             }
         }
     }
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 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");
     }
 }
Ejemplo n.º 7
0
 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);
     }
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
 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]);
         }
     }
 }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
 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();
     }
 }
Ejemplo n.º 12
0
 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");
     }
 }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
 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 { }
 }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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");
            }
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
 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));
         }
     }
 }
Ejemplo n.º 20
0
        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)));
                }
            }
        }
Ejemplo n.º 21
0
 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;
         }
     }
 }
Ejemplo n.º 22
0
        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());
                    }
                }
            }
        }