ACR_ServerCommunicator.GameWorldManager.ReferencePlayerByName C# (CSharp) Method

ReferencePlayerByName() public method

Reference the data for a player by the player name. If the data was not yet available, it is retrieved from the database.
public ReferencePlayerByName ( string PlayerName, IALFADatabase Database ) : ACR_ServerCommunicator.GamePlayer
PlayerName string Supplies the object name.
Database IALFADatabase Supplies the database connection to use for /// queries, if required. The active rowset may be consumed.
return ACR_ServerCommunicator.GamePlayer
        public GamePlayer ReferencePlayerByName(string PlayerName, IALFADatabase Database)
        {
            //
            // Check if the object is already known first.
            //

            GamePlayer Player = (from P in Players
                                 where P.PlayerName.Equals(PlayerName, StringComparison.InvariantCultureIgnoreCase)
                                 select P).FirstOrDefault();

            if (Player != null)
                return Player;

            //
            // Need to pull the data from the database.
            //

            if (Database == null)
                return null;

            Database.ACR_SQLQuery(String.Format(
                "SELECT `ID`, `IsDM`, `Name` FROM `players` WHERE `Name` = '{0}'",
                Database.ACR_SQLEncodeSpecialChars(PlayerName)));

            if (!Database.ACR_SQLFetch())
                return null;

            Player = new GamePlayer(this);

            Player.PlayerId = Convert.ToInt32(Database.ACR_SQLGetData(0));
            Player.IsDM = ConvertToBoolean(Database.ACR_SQLGetData(1));
            Player.PlayerName = Database.ACR_SQLGetData(2);

            InsertNewPlayer(Player, Database);

            return Player;
        }