Пример #1
0
        public void InitServer()
        {
            Configuration.Open();
            Configuration.GetGeneralConfig();
            Configuration.GetDatabaseConfig();
            Configuration.Close();

            Configuration.ShowConfigInLog();
            Configuration.CheckDatabaseConnection();

            if (GeoIpBlock.Enabled)
            {
                WriteLog(LogType.System, "Loading GeoIp data country", LogColor.Black);
                GeoIpBlock.LoadData();
            }

            IpBlockList.Initialize();

            IpFiltering = new IpFiltering()
            {
                CheckAccessTime  = Configuration.CheckAccessTime,
                IpLifetime       = Configuration.IpLifetime,
                IpMaxAccessCount = Configuration.IpMaxAccessCount,
                IpMaxAttempt     = Configuration.IpMaxAttempt
            };

            WriteLog(LogType.System, "Initializing scripts", LogColor.Blue);

            var lua = new LuaScript();

            lua.InitializeScript();

            OpCode.Initialize();

            TcpTransfer = new TcpTransfer()
            {
                GameIpAddress = Configuration.GameServerIp,
                GamePort      = Configuration.GameServerPort
            };

            TcpTransfer.InitClient();

            WriteLog(LogType.System, "Trying to connect to Game Server", LogColor.Black);

            Server = new TcpServer()
            {
                IpFiltering = IpFiltering,
                Port        = Configuration.Port
            };

            Server.InitServer();

            // Delegate
            SendGameServerPacket = SendGameServerData;

            WriteLog(LogType.System, "Login Server started", LogColor.Green);
        }
Пример #2
0
        public void ReloadGeoBlockList()
        {
            using (var lua = new Lua()) {
                GeoIpBlock.Clear();

                lua.LoadCLRPackage();
                lua.RegisterFunction("AddCountry", null, typeof(GeoIpBlock).GetMethod("AddCountry"));

                lua.DoFile("GeoIP.lua");
            }
        }
Пример #3
0
        public void StopServer()
        {
            Server.Stop();

            TcpTransfer.Disconnect();
            TcpTransfer = null;

            IpFiltering.Clear();

            Checksum.Clear();
            GeoIpBlock.Clear();
            IpBlockList.Clear();

            CloseLog();
        }
Пример #4
0
        public void InitializeScript()
        {
            using (var lua = new Lua()) {
                lua.LoadCLRPackage();
                lua.RegisterFunction("AddChecksum", null, typeof(Checksum).GetMethod("Add"));
                lua.RegisterFunction("AddCountry", null, typeof(GeoIpBlock).GetMethod("AddCountry"));
                lua.RegisterFunction("AddIpAddress", null, typeof(IpBlockList).GetMethod("AddIpAddress"));

                Checksum.Clear();
                lua.DoFile("Checksum.lua");

                GeoIpBlock.Clear();
                lua.DoFile("GeoIP.lua");

                IpBlockList.Clear();
                lua.DoFile("BlockList.lua");
            }
        }