/// <summary>
        /// Searches for an info by user ID, or constructs a new one.
        /// </summary>
        /// <param name="ID">The TShock User ID of the player.</param>
        public static DBInfo GetPlayerInfo(int ID)
        {
            var turn = Infos.FirstOrDefault(i => i.UserID == ID);

            if (turn == null)
            {
                turn = new DBInfo(ID);
                AddSQL(turn);
            }

            return(turn);
        }
Beispiel #2
0
        public static bool IsSafe(DBInfo info, TShockAPI.DB.User acct = null)
        {
            // Copy account.
            if (acct == null)
            {
                acct = TShock.Users.GetUserByID(info.UserID);
            }

            // I love these long config value names.
            if (Config.ProtectPurgeIfLongtimeUser &&
                info.TotalTime > Config.PurgeAfterInactiveTime ||
                (TShock.Groups.GetGroupByName(acct.Group)
                 .HasPermission(Config.PurgeProtectionPermission)) ||
                (Config.EnableTimeBasedPurges && Config.PurgeAfterInactiveTime
                 < DateTime.Now - info.LastLogin) ||
                Config.WhitelistAccounts.Contains(acct.Name))
            {
                return(false);
            }

            return(true);
        }
 public static void UpdateSQL(DBInfo info)
 {
     Sequel.Query("UPDATE Statistics SET TotalTime=@0, LastLogin=@1 WHERE UserID=@2",
                  info.TotalTime.ToSqlString(), info.LastLogin.ToSQLString(), info.UserID);
 }
 public static void AddSQL(DBInfo info)
 {
     Sequel.Query("INSERT INTO Statistics (UserID, RegisterTime, LastLogin, TotalTime) VALUES (@0, @1, @2, @3)",
                  info.UserID, info.RegisterTime.ToSQLString(), info.LastLogin.ToSQLString(), info.TotalTime.ToSqlString());
 }