public static void Main(string[] args) { using (IWindsorContainer container = new WindsorContainer()) { XmlConfigurator.Configure(new FileInfo(args.Length < 2 ? LogConfigurationFile : args[1])); AuthConfig config = new AuthConfig(); config.Initialize(new ConfigurationFileConfigurationProvider <AuthConfig>() { ConfigurationFile = args.Length < 1 ? ConfigurationFile : args[0], ConfigurationSection = ConfigurationSection }); container.Register(Component.For <AuthConsole>()); container.Register(Component.For <AuthServer>()); container.Register(Component.For <AuthConfig>().Instance(config)); container.Register(Component.For <IRandomSource>().ImplementedBy <SecureRandom>()); container.Register(Component.For <IWhisperComposerFactory <AuthRequest> >().ImplementedBy <AuthComposerFactory>()); container.Register(Component.For <IWhisperRequestFactory <AuthRequest, AuthRequestOpcode> >().ImplementedBy <AuthRequestFactory>()); container.Register(Component.For <IWhisperDatasource>().ImplementedBy <Datasource>() .DependsOn(Dependency.OnValue("address", config.AuthDatabaseAddress)) .DependsOn(Dependency.OnValue("port", config.AuthDatabasePort)) .DependsOn(Dependency.OnValue("database", config.AuthDatabaseName)) .DependsOn(Dependency.OnValue("username", config.AuthDatabaseUser)) .DependsOn(Dependency.OnValue("password", config.AuthDatabasePassword)) ); AuthConsole console = container.Resolve <AuthConsole>(); console.Server.Setup(config.AuthDaemonBindAddress, config.AuthDaemonBindPort); console.Server.Start(); console.Run(); console.Server.Stop(); } }
public override void Initialize() { try { base.Initialize(); ConsoleInterface = new AuthConsole(); ConsoleBase.SetTitle($"#Stump Authentification Server - {Version}"); logger.Info("Initializing Database..."); DBAccessor = new DatabaseAccessor(DatabaseConfiguration); DBAccessor.RegisterMappingAssembly(Assembly.GetExecutingAssembly()); InitializationManager.Initialize(InitializationPass.Database); DBAccessor.Initialize(); logger.Info("Opening Database..."); DBAccessor.OpenConnection(); DataManager.DefaultDatabase = DBAccessor.Database; DataManagerAllocator.Assembly = Assembly.GetExecutingAssembly(); logger.Info("Register Messages..."); MessageReceiver.Initialize(); ProtocolTypeManager.Initialize(); logger.Info("Register Packets Handlers..."); HandlerManager = AuthPacketHandler.Instance; HandlerManager.RegisterAll(Assembly.GetExecutingAssembly()); logger.Info("Register Commands..."); CommandManager.RegisterAll(Assembly.GetExecutingAssembly()); logger.Info("Start World Servers Manager"); WorldServerManager.Instance.Initialize(); logger.Info("Initialize Account Manager"); AccountManager.Instance.Initialize(); logger.Info("Initialize IPC Server.."); IpcHost = new IPCHost(IpcAddress, IpcPort); InitializationManager.InitializeAll(); IsInitialized = true; if (Environment.GetCommandLineArgs().Contains("-maintenance")) { m_maintenanceMode = true; } } catch (Exception ex) { HandleCrashException(ex); Shutdown(); } }