Ejemplo n.º 1
0
        private static void Main(string[] args)
        {
            Arguments.Parse(args);

            ConsoleTools.EnableQuickEditMode();
            //ConsoleTools.SetConsoleCtrlHandler(ConsoleCtrlHandler, true); // Causes crash??
            ConsoleTools.SetDefaultCulture(CultureInfo.InvariantCulture);

            if (Arguments.WriteLogToFile)
            {
                Logger.SetupFile($"logs/ProjectFolan_{Functions.Time()}.log");
            }

            Logger.Get().InfoNoFormat(Statics.Banner);

            if (Settings.Load(Arguments.ConfigPath))
            {
                Logger.Get("Settings").Info($"Loaded from: {Arguments.ConfigPath}");
            }
            else
            {
                Logger.Get("Settings").Info($"Failed to load from: {Arguments.ConfigPath}");
                return;
            }

            if (Settings.UseMysql)
            {
                _database = new MySqlDatabase(Settings.MySqlAddress, Settings.MySqlPort, Settings.MySqlDatabase,
                                              Settings.MySqlUsername, Settings.MySqlPassword, Logger.Get("MySQL"));
            }
            else if (Settings.UseSqLite)
            {
                _database = new SqLiteDatabase(Settings.SqLitePath, Logger.Get("SQLite"));
            }

            if (!_database.Connect())
            {
                return;
            }

            _universeAgent = new UniverseAgentListener(Settings.UniverseAgentPort, Logger.Get("UniverseAgent"),
                                                       _database);
            _universeAgent.Start();

            _playerAgent = new PlayerAgentListener(Settings.PlayerAgentPort, Logger.Get("PlayerAgent"), _database);
            _playerAgent.Start();

            _csplayerAgent = new CsPlayerAgentListener(Settings.CsPlayerAgentPort, Logger.Get("CsPlayerAgent"),
                                                       _database);
            _csplayerAgent.Start();

            _agentServer = new AgentServerListener(Settings.AgentServerPort, Logger.Get("AgentServer"), _database);
            _agentServer.Start();

            _gameServer = new GameServerListener(Settings.GameServerPort, Logger.Get("GameServer"), _database,
                                                 _agentServer);
            _gameServer.Start();

            Functions.ExitLoop();
        }
Ejemplo n.º 2
0
        public GameServerListener(ILogger logger, IConfiguration configuration, IDatabaseRepository database, ushort port, AgentServerListener agentServerListener)
            : base(port, logger, configuration, database)
        {
            _agentServerListener = agentServerListener;

            //InitGmCommands();
        }
Ejemplo n.º 3
0
 public void Listen(AgentServerListener listener)
 {
     _listener = listener;
     _tcpListener = new TcpListener(IPAddress.Any, _port);
     _listenThread = new Thread(ListenForClients);
     _listenThread.Start();
 }
Ejemplo n.º 4
0
        public GameServerListener(ushort port, Logger logger, IDatabase database,
                                  AgentServerListener agentServerListener)
            : base(port, logger, database)
        {
            _databaseStatic      = database;
            _agentServerListener = agentServerListener;

            ConanMap.Init(Database);
            Spell.Init(Database);
            InitGmCommands();
        }
Ejemplo n.º 5
0
        /*private bool ConsoleCtrlHandler(Console.CtrlType eventType)
         * {
         *  _gameServer?.SaveAllCharacterData();
         *  return false;
         * }*/

        public void Start()
        {
            var dbLogger = new Logger("Database");

            if (Settings.Load(ConfigPath))
            {
                dbLogger.Info("Loaded from: '" + ConfigPath + "'");
            }
            else
            {
                dbLogger.Info("Failed to load from: '" + ConfigPath + "'");
                return;
            }

            if (Settings.UseMysql)
            {
                _database = new MySqlDatabase(Settings.MySqlAddress, Settings.MySqlPort, Settings.MySqlDatabase,
                                              Settings.MySqlUsername, Settings.MySqlPassword, dbLogger);
            }
            else if (Settings.UseSqLite)
            {
                _database = new SqLiteDatabase(Settings.SqLitePath, dbLogger);
            }

            if (!_database.Connect())
            {
                return;
            }

            _universeAgent = new UniverseAgentListener(Settings.UniverseAgentPort, new Logger("UniverseAgent"),
                                                       _database);
            _universeAgent.Start();

            _playerAgent = new PlayerAgentListener(Settings.PlayerAgentPort, new Logger("PlayerAgent"), _database);
            _playerAgent.Start();

            _csplayerAgent = new CsPlayerAgentListener(Settings.CsPlayerAgentPort, new Logger("CsPlayerAgent"),
                                                       _database);
            _csplayerAgent.Start();

            _agentServer = new AgentServerListener(Settings.AgentServerPort, new Logger("AgentServer"), _database);
            _agentServer.Start();

            _gameServer = new GameServerListener(Settings.GameServerPort, new Logger("GameServer"), _database,
                                                 _agentServer);
            _gameServer.Start();
        }