Пример #1
0
        internal void OnLogin(IAuthClient client)
        {
            var addr = client.ClientAddress;

            if (addr == null)
            {
                // client disconnected
                return;
            }

            LastIP        = addr.GetAddressBytes();
            LastLogin     = DateTime.Now;
            Locale        = client.Info.Locale;
            ClientVersion = client.Info.Version.ToString();
            UpdateAndFlush();

            AuthCommandHandler.AutoExecute(this);

            var evt = LoggedIn;

            if (evt != null)
            {
                evt(this, client);
            }

            s_log.Info("Account \"{0}\" logged in from {1}.", Name, client.ClientAddress);
        }
Пример #2
0
        internal static void Run()
        {
            Console.WriteLine("Console ready - Type ? for help");

            DatabaseUtil.ReleaseConsole();

            while (true)
            {
                string line;
                try
                {
                    while (!Console.KeyAvailable && AuthenticationServer.Instance.IsRunning)
                    {
                        Thread.Sleep(100);
                    }
                    if (!AuthenticationServer.Instance.IsRunning)
                    {
                        break;
                    }
                    line = Console.ReadLine();
                }
                catch
                {
                    // console shutdown
                    break;
                }
                if (line == null || !AuthenticationServer.Instance.IsRunning)
                {
                    break;
                }
                if (DatabaseUtil.IsWaiting)
                {
                    DatabaseUtil.Input.Write(line);
                }
                else
                {
                    lock (Console.Out)
                    {
                        if (line.StartsWith("."))
                        {
                            line = line.Substring(1);
                            AuthCommandHandler.ReadAccountAndReactTo(line);
                        }
                        else
                        {
                            AuthCommandHandler.Execute(null, line);
                        }
                    }
                }
            }
        }
Пример #3
0
        public static void CreateCommandDocs(string dir)
        {
            RealmServ.EntryLocation = Path.GetFullPath(ToolConfig.WCellRealmServerConsoleExe);
            var realmServ = RealmServ.Instance;             // make sure to create the RealmServ instance first

            LogUtil.SetupConsoleLogging();

            Console.WriteLine("Output Directory: " + new DirectoryInfo(dir).FullName);

            RealmServerConfiguration.Instance.AutoSave = false;
            RealmServerConfiguration.Initialize();

            RealmCommandHandler.Initialize();
            AuthCommandHandler.Initialize();
            ToolCommandHandler.Initialize();

            CreateCommandDocs(Path.Combine(dir, "RealmServer"), RealmCommandHandler.Instance.Commands);
            CreateCommandDocs(Path.Combine(dir, "AuthServer"), AuthCommandHandler.Instance.Commands);
            CreateCommandDocs(Path.Combine(dir, "Tools"), ToolCommandHandler.Instance.Commands);
        }
Пример #4
0
 public BufferedCommandResponse ExecuteCommand(string cmd)
 {
     return(AuthCommandHandler.ExecuteBufferedCommand(cmd));
 }