ACR_ServerCommunicator.ACR_ServerCommunicator.ShowLastLoginTime C# (CSharp) Method

ShowLastLoginTime() private method

This method looks up the last login time for a player.
private ShowLastLoginTime ( uint PlayerObject, string Name ) : void
PlayerObject uint Supplies the requesting player's /// object.
Name string Supplies the name to query.
return void
        private void ShowLastLoginTime(uint PlayerObject, string Name)
        {
            //
            // Run the database lookups in the query thread and respond in an
            // asynchronous fashion.
            //

            GetDatabase().ACR_IncrementStatistic("SHOW_LAST_LOGIN_TIME");

            WorldManager.SignalQueryThreadAction(delegate(IALFADatabase Database)
            {
                int PlayerId = 0;
                string Message;
                string PlayerName = null;

                lock (WorldManager)
                {
                    GamePlayer Player;
                    GameCharacter Character;

                    Player = WorldManager.ReferencePlayerByName(Name, Database);

                    if (Player == null)
                    {
                        Character = WorldManager.ReferenceCharacterByName(Name, Database);

                        if (Character != null)
                            Player = Character.Player;
                    }

                    if (Player == null)
                    {
                        WorldManager.EnqueueMessageToPlayer(PlayerObject, String.Format(
                            "{0} is not a recognized player or character name.", Name));
                        return;
                    }

                    PlayerId = Player.PlayerId;
                    PlayerName = Player.Name;
                }

                Database.ACR_SQLQuery(String.Format(
                    "SELECT `players`.`LastLogin` FROM `players` WHERE `ID` = {0}",
                    PlayerId));

                if (Database.ACR_SQLFetch() == false)
                {
                    Message = "Internal error querying database.";
                }
                else
                {
                    Message = String.Format("{0} last logged in at {1}.", PlayerName, Database.ACR_SQLGetData(0));
                }

                lock (WorldManager)
                {
                    WorldManager.EnqueueMessageToPlayer(PlayerObject, Message);
                }
            });

            WorldManager.SignalIPCEventWakeup();
        }
ACR_ServerCommunicator