private static void Main() { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); PrintHeader(); InitializeLogger(); InitializeConfigs(); ChickenContainer.Builder.Register(_ => new PluggablePacketFactory()).As <IPacketFactory>().SingleInstance(); if (InitializePlugins()) { return; } EnablePlugins(PluginEnableTime.PreContainerBuild); CommunicationIocInjector.Inject(); ChickenContainer.Initialize(); if (Server.RegisterServer()) { Log.Info("REGISTER_FAIL_SERVER_API"); return; } EnablePlugins(PluginEnableTime.PostContainerBuild); Server.RunServerAsync(1337).ConfigureAwait(false).GetAwaiter().GetResult(); Server.UnregisterServer(); LogManager.Shutdown(); }
public static int Handle(LanguageCommand command) { new RedisPlugin().OnLoad(); new RedisPlugin().OnEnable(); ChickenContainer.Initialize(); foreach (object enume in Enum.GetValues(typeof(LanguageKey))) { var element = (LanguageKey)enume; if (command.GeneratorType != "all" && command.GeneratorType != element.GetKeyForLangFiles()) { continue; } string subDirectory = command.Input + Path.DirectorySeparatorChar + element.GetKeyForLangFiles(); if (!Directory.Exists(subDirectory)) { Directory.CreateDirectory(subDirectory); Log.Warn($"Creating directory {subDirectory} for future lang files"); File.Create(subDirectory + Path.DirectorySeparatorChar + ".gitkeep"); continue; } Log.Info($"Parsing langugage files for {element.GetKeyForLangFiles()}"); foreach (FileInfo filePath in new DirectoryInfo(subDirectory).GetFiles().Where(s => IsNostaleLangFile(s.Name, element))) { Log.Info($"Parsing langugage file {filePath.Name}"); ReadFileAndFillService(filePath.FullName, element); } } return(0); }
private static void Main(string[] args) { PrintHeader(); InitializeLogger(); InitializeConfiguration(); InitializePlugins(); ChickenContainer.Builder.Register(s => PluginManager).As <IPluginManager>(); ChickenContainer.Initialize(); ClientSession.AccountService = ChickenContainer.Instance.Resolve <IAccountService>(); ClientSession.ServerApi = ChickenContainer.Instance.Resolve <IServerApiService>(); ClientSession.SessionService = ChickenContainer.Instance.Resolve <ISessionService>(); NetworkManager.RunServerAsync(_port, new LoginEncoderFactory()).Wait(); }
public void Setup() { string mqttEndPoint = Environment.GetEnvironmentVariable("MQTT_BROKER_ENDPOINT") ?? "localhost"; ChickenContainer.Builder.Register(s => new MqttClientConfigurationBuilder().ConnectTo(mqttEndPoint).WithName("test-relation-service-client")); ChickenContainer.Builder.Register(s => new MqttServerConfigurationBuilder().ConnectTo(mqttEndPoint).WithName("test-relation-service-server")); CommunicationIocInjector.Inject(); ChickenContainer.Builder.RegisterType <RelationServiceClient>().AsImplementedInterfaces(); ChickenContainer.Initialize(); _relationService = ChickenContainer.Instance.Resolve <IRelationService>(); }
public static int Handle(GenerateCommand command) { var algo = new BasicAlgorithmPlugin(); algo.OnLoad(); algo.OnEnable(); var tmp = new DatabasePlugin(); tmp.OnLoad(); tmp.OnEnable(); ChickenContainer.Initialize(); var portal = new PacketPortalGenerator(); var monster = new MapMonsterGenerator(); var npc = new MapNpcGenerator(); var shop = new ShopParserGenerator(); var shopItem = new ShopItemGenerator(); switch (command.GeneratorType) { case "npc": npc.Generate(command.Input); break; case "monster": monster.Generate(command.Input); break; case "portal": portal.Generate(command.Input); break; case "shop": shop.Generate(command.Input); break; case "shopItem": shopItem.Generate(command.Input); break; case "all": portal.Generate(command.Input); monster.Generate(command.Input); npc.Generate(command.Input); shop.Generate(command.Input); shopItem.Generate(command.Input); break; } return(0); }
static void Main() { PrintHeader(); InitializeLogger(); if (InitializePlugins()) { return; } EnablePlugins(PluginEnableTime.PreContainerBuild); ChickenContainer.Initialize(); EnablePlugins(PluginEnableTime.PostContainerBuild); Console.ReadLine(); }
private static void Main() { PrintHeader(); InitializeLogger(); if (InitializePlugins()) { return; } EnablePlugins(PluginEnableTime.PreContainerBuild); RegisterDependencies(); CommunicationIocInjector.Inject(); ChickenContainer.Initialize(); EnablePlugins(PluginEnableTime.PostContainerBuild); var server = ChickenContainer.Instance.Resolve <IIpcServer>(); var container = ChickenContainer.Instance.Resolve <IIpcPacketHandlersContainer>(); foreach (Type handlerType in typeof(RelationService).Assembly.GetTypesImplementingGenericClass(typeof(GenericIpcRequestHandler <,>), typeof(GenericIpcPacketHandler <>))) { try { object handler = ChickenContainer.Instance.Resolve(handlerType); if (!(handler is IIpcPacketHandler postProcessor)) { Log.Warn($"{handler}"); continue; } Type type = handlerType.BaseType.GenericTypeArguments[0]; container.RegisterAsync(postProcessor, type); } catch (Exception e) { Log.Error("[FAIL]", e); } } Console.ReadLine(); }
public static int Handle(ParseCommand command) { if (!CheckFiles(command.InputDirectory)) { Log.Warn("Respect the following parsing directory layer : "); Console.WriteLine($"{command.InputDirectory}/"); Console.WriteLine("\t- maps"); Console.WriteLine("\t- dats"); Console.WriteLine("\t\t- Skill.dat"); Console.WriteLine("\t\t- Monster.dat"); Console.WriteLine("\t\t- Item.dat"); Console.WriteLine("\t\t- Card.dat"); Console.WriteLine("\t- packets"); Console.WriteLine("\t\t- einfo.packets"); Console.WriteLine("\t\t- packet.txt"); return(1); } var algo = new BasicAlgorithmPlugin(); algo.OnLoad(); algo.OnEnable(); var tmp = new DatabasePlugin(); tmp.OnLoad(); tmp.OnEnable(); ChickenContainer.Initialize(); var card = new CardDatConverter(); var item = new ItemDatConverter(); var monster = new MonsterDatConverter(); var map = new MapDatConverter(); var skill = new SkillDatConverter(); var einfo = new EInfoFiller(); var portal = new PacketPortalGenerator(); var monGenerator = new MapMonsterGenerator(); var npc = new MapNpcGenerator(); var shop = new ShopParserGenerator(); var shopItem = new ShopItemGenerator(); var shopSkill = new ShopSkillGenerator(); switch (command.ParsingType) { case "card": card.Extract(command.InputDirectory); break; case "skill": skill.Extract(command.InputDirectory); break; case "map": map.Extract(command.InputDirectory); break; case "item": item.Extract(command.InputDirectory); break; case "einfo": einfo.Fill(command.InputDirectory); break; case "monster": monster.Extract(command.InputDirectory); break; case "all": Log.Info("Parsing..."); InitializeAccounts(); map.Extract(command.InputDirectory + "/maps"); skill.Extract(command.InputDirectory + "/dats"); item.Extract(command.InputDirectory + "/dats"); card.Extract(command.InputDirectory + "/dats"); monster.Extract(command.InputDirectory + "/dats"); einfo.Fill(command.InputDirectory + "/packets/einfo.packets"); portal.Generate(command.InputDirectory + "/packets/packet.txt"); monGenerator.Generate(command.InputDirectory + "/packets/packet.txt"); npc.Generate(command.InputDirectory + "/packets/packet.txt"); shop.Generate(command.InputDirectory + "/packets/packet.txt"); shopItem.Generate(command.InputDirectory + "/packets/packet.txt"); shopSkill.Generate(command.InputDirectory + "/packets/packet.txt"); Log.Info("Parsing done"); break; } return(0); }