using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.ServiceProcess; using System.Text; using System.Threading; using System.Threading.Tasks; using CS; using FilterAPI; using FilterAPI.Networking; using FilterManager.LocalHandlers; using FilterManager.LocalNetworking; using FilterManager.ManagerHandlers; using FilterManager.ManagerNetworking; using SHN; namespace FilterManager { internal class Program { public static String ServiceName = "Manager"; public static Config Conf; public static Database SQL; public static SHNFile SlanderFilter; public static LocalClient LocalClient; public static LocalHandlerLoader LocalHandlers; public static ManagerHandlerLoader ManagerHandlers; public static ConcurrentDictionary ManagerClients = new ConcurrentDictionary(); public static Dictionary GrabednUserNos = new Dictionary(); private static void Main() { if (Environment.UserInteractive) { Service s = new Service(); s.Init(); while (true) { Thread.Sleep(1); } } else { ServiceBase[] ServicesToRun = new ServiceBase[] { new Service() }; ServiceBase.Run(ServicesToRun); } } public static void LoadSHNs() { MethodInfo CryptoMethod = CSFile.LoadCode(Conf.GetConfigValue("SHNCryptoFile"), "SHN.SHNCrypto", Conf.GetConfigValue("SHNCryptoName")); var shnPath = Conf.GetConfigValue("FilterSHNPath"); var lp1 = $"{shnPath}CharacterCreate.shn"; //CharacterCreate = new SHNFile(lp1, CryptoMethod); //if (CharacterCreate.Type == SHNType.TextData) { CharacterCreate.SHNEncoding = Encoding.ASCII; } //else { CharacterCreate.SHNEncoding = Encoding.GetEncoding("ISO-8859-1"); } //if (CharacterCreate.Type != SHNType.QuestData) { CharacterCreate.Read(); } //else { CharacterCreate.ReadQuest(); } //CharacterCreate.DisallowRowChanges(); //AcademyMoneyRewards = new SHNFile(String.Format("{0}AcademyMoneyRewards.shn", Conf.GetConfigValue("FilterSHNPath")), CryptoMethod); //if (AcademyMoneyRewards.Type == SHNType.TextData) { AcademyMoneyRewards.SHNEncoding = Encoding.ASCII; } //else { AcademyMoneyRewards.SHNEncoding = Encoding.GetEncoding("ISO-8859-1"); } //if (AcademyMoneyRewards.Type != SHNType.QuestData) { AcademyMoneyRewards.Read(); } //else { AcademyMoneyRewards.ReadQuest(); } //AcademyMoneyRewards.DisallowRowChanges(); SlanderFilter = new SHNFile(String.Format("{0}SlanderFilter.shn", Conf.GetConfigValue("FilterSHNPath")), CryptoMethod); if (SlanderFilter.Type == SHNType.TextData) { SlanderFilter.SHNEncoding = Encoding.ASCII; } else { SlanderFilter.SHNEncoding = Encoding.GetEncoding("ISO-8859-1"); } if (SlanderFilter.Type != SHNType.QuestData) { SlanderFilter.Read(); } else { SlanderFilter.ReadQuest(); } SlanderFilter.DisallowRowChanges(); } public static void SendConsoleText(ConsoleColor WriteColor, String Text, params Object[] Args) { String FormattedText = String.Format(Text, Args); using (var ClientPacket = new Packet(LocalNETCMD.CONS_TEXT)) { ClientPacket.PacketWriter.Write(ConsoleColorConverter.ConsoleColorToID(WriteColor)); ClientPacket.PacketWriter.Write(ServiceName); ClientPacket.PacketWriter.Write(FormattedText); if (LocalClient != null) { LocalClient.SendPacket(ClientPacket); } } } } }