/// <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); }
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()); }