示例#1
0
        private static void Main(string[] args)
        {
            Console.Title = "Fabiano Swagger of Doom - World Server";
            try
            {
                XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net_wServer.config"));

                Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
                Thread.CurrentThread.Name           = "Entry";

                Settings = new Settings("wServer");
                using (var db = new Database(
                           Settings.GetValue <string>("db_host", "127.0.0.1"),
                           Settings.GetValue <int>("db_port", "6379"),
                           Settings.GetValue <string>("db_auth", "")))
                {
                    manager = new RealmManager(
                        Settings.GetValue <int>("maxClients", "100"),
                        Settings.GetValue <int>("tps", "20"),
                        db);

                    WhiteList        = Settings.GetValue <bool>("whiteList", "false");
                    Verify           = Settings.GetValue <bool>("verifyEmail", "false");
                    WhiteListTurnOff = Settings.GetValue <DateTime>("whitelistTurnOff");

                    manager.Initialize();
                    manager.Run();

                    Server       server = new Server(manager);
                    PolicyServer policy = new PolicyServer();

                    Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                    policy.Start();
                    server.Start();
                    log.Info("Server initialized.");

                    while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                    {
                        ;
                    }

                    log.Info("Terminating...");
                    server.Stop();
                    policy.Stop();
                    manager.Stop();
                    log.Info("Server terminated.");
                }
            }
            catch (Exception e)
            {
                log.Fatal(e);

                foreach (var c in manager.Clients)
                {
                    c.Value.Disconnect();
                }
                Console.ReadLine();
            }
        }
示例#2
0
        private static void Main(string[] args)
        {
            Console.Title = "Zy's Realm - World Server";
            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
                Thread.CurrentThread.Name           = "Entry";

                Settings = new SimpleSettings("wServer");
                new Database(
                    Settings.GetValue <string>("db_host", "127.0.0.1"),
                    Settings.GetValue <string>("db_database", "rotmgprod"),
                    Settings.GetValue <string>("db_user", "root"),
                    Settings.GetValue <string>("db_auth", ""));

                manager = new RealmManager(
                    Settings.GetValue <int>("maxClients", "100"),
                    Settings.GetValue <int>("tps", "20"));

                WhiteList = Settings.GetValue <bool>("whiteList", "false");
                DebugMode = Settings.GetValue <bool>("debugMode", "false");

                manager.Initialize();
                manager.Run();

                Server       server = new Server(manager);
                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                if (Settings.GetValue <bool>("broadcastNews", "false") && File.Exists("news.txt"))
                {
                    new Thread(autoBroadcastNews).Start();
                }
                Console.WriteLine("Server initialized.");


                if (isStopped())
                {
                    Console.WriteLine("Terminating...");
                    server.Stop();
                    policy.Stop();
                    manager.Stop();
                    Console.WriteLine("Server terminated.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);

                foreach (var c in manager.Clients)
                {
                    c.Value.Disconnect(Client.DisconnectReason.STOPPING_SERVER);
                }
                Console.ReadLine();
            }
        }
示例#3
0
        private static void Main(string[] args)
        {
            Console.Title = "Loading...";

            XmlConfigurator.ConfigureAndWatch(new FileInfo("_gameserver.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            using (var db = new Database())
            {
                Usage = -1;

                manager = new RealmManager(db);

                autoRestart = Settings.NETWORKING.RESTART.ENABLE_RESTART;

                manager.Initialize();
                manager.Run();

                Server       server = new Server(manager);
                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();

                if (autoRestart)
                {
                    chat   = manager.Chat;
                    uptime = DateTime.Now;
                    restart();
                    usage();
                }

                Console.Title = Settings.GAMESERVER.TITLE;

                Logger.Info("Server initialized.");

                Console.CancelKeyPress += delegate
                {
                    Shutdown?.Set();
                };

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                Logger.Info("Terminating...");
                server?.Stop();
                policy?.Stop();
                manager?.Stop();
                Shutdown?.Dispose();
                Logger.Info("Server terminated.");
                Environment.Exit(0);
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += LogUnhandledException;

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            Config = args.Length > 0 ?
                     ServerConfig.ReadFile(args[0]) :
                     ServerConfig.ReadFile("wServer.json");

            Environment.SetEnvironmentVariable("ServerLogFolder", Config.serverSettings.logFolder);
            GlobalContext.Properties["ServerName"] = Config.serverInfo.name;
            GlobalContext.Properties["ServerType"] = Config.serverInfo.type.ToString();

            XmlConfigurator.ConfigureAndWatch(new FileInfo(Config.serverSettings.log4netConfig));

            using (Resources = new Resources(Config.serverSettings.resourceFolder, true))
                using (var db = new Database(
                           Config.dbInfo.host,
                           Config.dbInfo.port,
                           Config.dbInfo.auth,
                           Config.dbInfo.index,
                           Resources))
                {
                    var manager = new RealmManager(Resources, db, Config);
                    manager.Run();

                    var policy = new PolicyServer();
                    policy.Start();

                    var server = new Server(manager,
                                            Config.serverInfo.port,
                                            Config.serverSettings.maxConnections,
                                            StringUtils.StringToByteArray(Config.serverSettings.key));

                    server.Start();

                    Console.CancelKeyPress += delegate
                    {
                        Shutdown.Set();
                    };

                    Shutdown.WaitOne();

                    Log.Info("Terminating...");
                    manager.Stop();
                    server.Stop();
                    policy.Stop();
                    Log.Info("Server terminated.");
                }
        }
示例#5
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += LogUnhandledException;
            Thread.CurrentThread.CurrentCulture         = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name = "Entry";

            Config = args.Length > 0 ?
                     ServerConfig.ReadFile(args[0]) :
                     ServerConfig.ReadFile("wServer.json");

            LogManager.Configuration.Variables["logDirectory"] = Config.serverSettings.logFolder + "/wServer";
            LogManager.Configuration.Variables["buildConfig"]  = Utils.GetBuildConfiguration();

            using (Resources = new Resources(Config.serverSettings.resourceFolder, true))
                using (Database = new Database(Resources, Config))
                {
                    Config.serverInfo.instanceId = Guid.NewGuid().ToString();

                    var marketSweeper = new MarketSweeper(Database);
                    marketSweeper.Run();

                    var manager = new RealmManager(Resources, Database, Config);
                    manager.Run();

                    var policy = new PolicyServer();
                    policy.Start();

                    var server = new Server(manager,
                                            Config.serverInfo.port,
                                            Config.serverSettings.maxConnections,
                                            StringUtils.StringToByteArray(Config.serverSettings.key));
                    server.Start();

                    Console.CancelKeyPress += delegate
                    {
                        Shutdown.Set();
                    };

                    Shutdown.WaitOne();
                    Log.Info("Terminating...");
                    manager.Stop();
                    server.Stop();
                    policy.Stop();
                    Log.Info("Server terminated.");
                }
        }
示例#6
0
        static void Main(string[] args)
        {
            Console.Title       = "Stable World Server";
            Console.WindowWidth = 110;
            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            using (Settings = new SimpleSettings("wServer"))
                using (var db = new Database(
                           Settings.GetValue <string>("db_host", "127.0.0.1"),
                           Settings.GetValue <int>("db_port", "6379"),
                           Settings.GetValue <string>("db_auth", "")))
                {
                    RealmManager manager = new RealmManager(
                        Settings.GetValue <int>("maxClient", "100"),
                        Settings.GetValue <int>("tps", "20"),
                        db);

                    manager.Initialize();
                    manager.Run();

                    Server       server = new Server(manager, 2050);
                    PolicyServer policy = new PolicyServer();

                    Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                    policy.Start();
                    server.Start();
                    log.Info("Server initialized.");

                    while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                    {
                        ;
                    }

                    log.Info("Terminating...");
                    server.Stop();
                    policy.Stop();
                    manager.Stop();
                    db.Dispose();
                    log.Info("Server terminated.");
                }
        }
示例#7
0
        private static void Main(string[] args)
        {
            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            Settings = new SimpleSettings("wServer");

            Database.Init(Settings.GetValue <string>("db_host", "nillysrealm.com"),
                          Settings.GetValue <string>("db_port", "3306"),
                          Settings.GetValue <string>("db_name", "rotmg"),
                          Settings.GetValue <string>("db_user", ""),
                          Settings.GetValue <string>("db_pass", "botmaker"));

            var manager = new RealmManager();

            manager.Initialize();
            manager.Run();

            var server = new Server(Settings.GetValue <int>("port", "2050"));
            var policy = new PolicyServer();

            policy.Start();
            server.Start();
            log.Info("Server initialized.");

            Console.CancelKeyPress += delegate
            {
                log.Info("Terminating...");
                server.Stop();
                policy.Stop();
                //Settings.Dispose();
                log.Info("Server terminated.");
                Thread.Sleep(500);
                Environment.Exit(0);
            };

            while (true)
            {
                Thread.Sleep(500);
            }
        }
示例#8
0
        private static void Main(string[] args)
        {
            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net_wServer.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            using (Settings = new SimpleSettings("wServer"))
            {
                new Database(
                    Settings.GetValue("dbHost", "127.0.0.1"),
                    Settings.GetValue("dbName", "fluffyadventure"),
                    Settings.GetValue("dbUser", "root"),
                    Settings.GetValue("dbPassword", ""));
                RealmManager manager = new RealmManager(
                    Settings.GetValue <int>("maxClient", "100"),
                    Settings.GetValue <int>("tps", "20"));

                manager.Initialize();
                manager.Run();

                Server       server = new Server(manager, 2050);
                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                log.Info("Server initialized.");

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                log.Info("Terminating...");
                server.Stop();
                policy.Stop();
                manager.Stop();
                log.Info("Server terminated.");
            }
        }
        //This is set here, just in case the client SOMEHOW manages to connect before the Settings.Value is set. Which is impossible, but it's whatever.

        private static void Main(string[] args)
        {
            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));

            System.Timers.Timer timer = new System.Timers.Timer(65 * 60 * 1000);
            timer.Elapsed += AutoRestart;

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            using (Settings = new SimpleSettings("wServer"))
            {
                serverDatabaseConnString = Settings.GetValue("conn"); //Ugh, this should do good. :]
                serverTPS        = Settings.GetValue <int>("tps", "5");
                serverMaxClients = Settings.GetValue <int>("maxClient", "100");

                manager = new RealmManager(serverMaxClients, serverTPS);

                manager.Initialize();
                manager.Run();

                var server = new Server(manager, 2050);
                var policy = new PolicyServer();


                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                log.Info("Server initialized.");
                timer.Start();

                while (((uint)Console.ReadKey(true).Key) != (uint)ConsoleKey.Escape)
                {
                    log.Info("Terminating...");
                    server.Stop();
                    policy.Stop();
                    manager.Stop();
                    log.Info("Server terminated.");
                }
            }
        }
示例#10
0
        private static void Main(string[] args)
        {
            Console.Title = "Phoenix Realms: Reborn - World Server";

            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            using (Settings = new SimpleSettings("wServer"))
            {
                var db      = new Database(Settings.GetValue("conn"));
                var manager = new RealmManager(
                    Settings.GetValue <int>("maxClient", "100"),
                    Settings.GetValue <int>("tps", "10"),
                    db);

                manager.Initialize();
                manager.Run();

                var server = new Server(manager, 2050);
                var policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                log.Info("Server initialized.");

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                log.Info("Terminating...");
                server.Stop();
                policy.Stop();
                manager.Stop();
                db.Dispose();
                log.Info("Server terminated.");
            }
        }
示例#11
0
文件: Program.cs 项目: ethus3h/LR-v2
        private static void Main(string[] args)
        {
            Console.Title = "wServer";
            try
            {
                XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net_wServer.config"));

                Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
                Thread.CurrentThread.Name           = "Entry";

                Settings = new SimpleSettings("wServer");
                new Database();

                manager = new RealmManager(
                    Settings.GetValue <int>("maxClients", "50"),
                    Settings.GetValue <int>("tps", "20"));

                WhiteList        = Settings.GetValue <bool>("whiteList", "false");
                Verify           = Settings.GetValue <bool>("verifyEmail", "false");
                WhiteListTurnOff = Settings.GetValue <DateTime>("whitelistTurnOff");

                manager.Initialize();
                manager.Run();

                Server       server = new Server(manager);
                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                new Thread(AutoNotify).Start();
                if (Settings.GetValue <bool>("broadcastNews", "false") && File.Exists("news.txt"))
                {
                    new Thread(autoBroadcastNews).Start();
                }
                log.Info("Server initialized.");

                uint key = 0;
                while ((key = (uint)Console.ReadKey(true).Key) != (uint)ConsoleKey.Escape)
                {
                    if (key == (2 | 80))
                    {
                        Settings.Reload();
                    }
                }

                log.Info("Terminating...");
                server.Stop();
                policy.Stop();
                manager.Stop();
                log.Info("Server terminated.");
            }
            catch (Exception e)
            {
                log.Fatal(e);

                foreach (var c in manager.Clients)
                {
                    c.Value.Disconnect();
                }
                Console.ReadLine();
            }
        }
示例#12
0
        private static void Main(string[] args)
        {
            Console.Title = "Loading...";

            XmlConfigurator.ConfigureAndWatch(new FileInfo("_gameserver.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            using (var db = new Database())
            {
                GameUsage = -1;

                Manager = new RealmManager(db);

                AutoRestart = Settings.NETWORKING.RESTART.ENABLE_RESTART;

                Manager.Initialize();
                Manager.Run();

                Log._("Message", Message.Messages.Count);

                Server server = new Server(Manager);

                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                Settings.DISPLAY_SUPPORTED_VERSIONS();

                Log.Info("Initializing GameServer...");

                policy.Start();
                server.Start();

                if (AutoRestart)
                {
                    Chat   = Manager.Chat;
                    Uptime = DateTime.Now;
                    Restart();
                    Usage();
                }

                Console.Title = Settings.GAMESERVER.TITLE;

                Log.Info("Initializing GameServer... OK!");

                Console.CancelKeyPress += delegate
                {
                    Shutdown?.Set();
                };

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                Log.Info("Terminating...");

                server?.Stop();
                policy?.Stop();
                Manager?.Stop();
                Shutdown?.Dispose();

                Log.Warn("Terminated GameServer.");

                Thread.Sleep(1000);

                Environment.Exit(0);
            }
        }
示例#13
0
        private static void Main(string[] args)
        {
            Console.Title = "Loading...";

            XmlConfigurator.ConfigureAndWatch(new FileInfo("_gameserver.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            if (!Directory.Exists(LootCachePath))
            {
                Directory.CreateDirectory(LootCachePath);
            }
            if (!Directory.Exists(MonsterCachePath))
            {
                Directory.CreateDirectory(MonsterCachePath);
            }
            if (!Directory.Exists(TaskCachePath))
            {
                Directory.CreateDirectory(TaskCachePath);
            }
            if (!Directory.Exists(AchievementCachePath))
            {
                Directory.CreateDirectory(AchievementCachePath);
            }

            try
            {
                var db = new Database();
                GameUsage = -1;

                Manager = new RealmManager(db);

                AutoRestart = Settings.NETWORKING.RESTART.ENABLE_RESTART;

                Manager.Initialize();
                Manager.Run();

                var policy = new PolicyServer();
                var server = new Server();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();

                if (AutoRestart)
                {
                    Chat   = Manager.Chat;
                    Uptime = DateTime.Now;
                    Restart();
                }

                Console.Title = Settings.GAMESERVER.TITLE;

                Console.CancelKeyPress += delegate
                {
                    Shutdown?.Set();
                };

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                Log.Info("Terminating...");

                policy?.Stop();
                server?.Stop();
                Manager?.Stop();
                Manager?.Database.Dispose();
                Shutdown?.Dispose();

                Log.Warn("Terminated GameServer.");

                Thread.Sleep(1000);

                Environment.Exit(0);
            }
            catch (Exception e) { ForceShutdown(e); }
        }
示例#14
0
        private static void Main(string[] args)
        {
            Console.Title = "FSOD";
            try
            {
                XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net_wServer.config"));

                Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
                Thread.CurrentThread.Name           = "Entry";

                Settings = new SimpleSettings("wServer");
                new Database(
                    Settings.GetValue <string>("db_host", "127.0.0.1"),
                    Settings.GetValue <string>("db_database", "rotmgprod"),
                    Settings.GetValue <string>("db_user", "root"),
                    Settings.GetValue <string>("db_auth", ""));

                manager = new RealmManager(
                    Settings.GetValue <int>("maxClients", "100"),
                    Settings.GetValue <int>("tps", "20"));

                WhiteList        = Settings.GetValue <bool>("whiteList", "false");
                Verify           = Settings.GetValue <bool>("verifyEmail", "false");
                WhiteListTurnOff = Settings.GetValue <DateTime>("whitelistTurnOff");

                manager.Initialize();
                manager.Run();

                Server       server = new Server(manager);
                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                if (Settings.GetValue <bool>("broadcastNews", "false") && File.Exists("news.txt"))
                {
                    new Thread(autoBroadcastNews).Start();
                }
                log.Info("Server initialized.");

                foreach (var type in typeof(World).Assembly.GetTypes())
                {
                    if (type.IsAbstract || !typeof(World).IsAssignableFrom(type))
                    {
                        continue;
                    }
                    if (type.GetConstructors().First().GetParameters().Length > 0)
                    {
                        continue;
                    }
                    var world = (World)type.Assembly.CreateInstance(type.FullName);
                    if (world == null)
                    {
                        log.Warn($"Cant make World {type.Name}");
                    }
                    if (world?.Difficulty == -1)
                    {
                        log.Warn($"World {type.Name} has the default difficulty (-1)");
                    }
                    world?.Dispose();
                }

                uint key = 0;
                while ((key = (uint)Console.ReadKey(true).Key) != (uint)ConsoleKey.Escape)
                {
                    if (key == (2 | 80))
                    {
                        Settings.Reload();
                    }
                }

                log.Info("Terminating...");
                server.Stop();
                policy.Stop();
                manager.Stop();
                log.Info("Server terminated.");
            }
            catch (Exception e)
            {
                log.Fatal(e);

                foreach (var c in manager.Clients)
                {
                    c.Value.Disconnect();
                }
                Console.ReadLine();
            }
        }
示例#15
0
文件: Program.cs 项目: Bog624s/Rotux
        private static void Main(string[] args)
        {
            Console.Title = "Rotux - World Server";
            try
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
                Thread.CurrentThread.Name           = "Entry";

                Settings = new SimpleSettings("wServer");
                new Database(
                    Settings.GetValue <string>("db_host", "127.0.0.1"),
                    Settings.GetValue <string>("db_database", "rotmgprod"),
                    Settings.GetValue <string>("db_user", "root"),
                    Settings.GetValue <string>("db_auth", ""));

                manager = new RealmManager(
                    Settings.GetValue <int>("maxClients", "100"),
                    Settings.GetValue <int>("tps", "20"));

                WhiteList        = Settings.GetValue <bool>("whiteList", "false");
                Verify           = Settings.GetValue <bool>("verifyEmail", "false");
                WhiteListTurnOff = Settings.GetValue <DateTime>("whitelistTurnOff");

                manager.Initialize();
                manager.Run();

                Server       server = new Server(manager);
                PolicyServer policy = new PolicyServer();

                Console.CancelKeyPress += (sender, e) => e.Cancel = true;

                policy.Start();
                server.Start();
                if (Settings.GetValue <bool>("broadcastNews", "false") && File.Exists("news.txt"))
                {
                    new Thread(autoBroadcastNews).Start();
                }
                Console.WriteLine("Server initialized.");

                uint key = 0;
                while ((key = (uint)Console.ReadKey(true).Key) != (uint)ConsoleKey.Escape)
                {
                    if (key == (2 | 80))
                    {
                        Settings.Reload();
                    }
                }

                Console.WriteLine("Terminating...");
                server.Stop();
                policy.Stop();
                manager.Stop();
                Console.WriteLine("Server terminated.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);

                foreach (var c in manager.Clients)
                {
                    c.Value.Disconnect();
                }
                Console.ReadLine();
            }
        }