1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-09 23:00:57 -05:00

prevent autoflag from running player has been manually unflagged

This commit is contained in:
RaidMax
2021-03-23 10:34:44 -05:00
parent a4bdbcacb9
commit 2348a48dd3
3 changed files with 15 additions and 7 deletions

View File

@ -669,22 +669,30 @@ namespace SharedLibraryCore.Services
}
/// <summary>
/// indicates if the given clientid has been autoflagged
/// indicates if the given clientid can be autoflagged
/// </summary>
/// <param name="clientId"></param>
/// <returns></returns>
public async Task<bool> IsAutoFlagged(int clientId)
public async Task<bool> CanBeAutoFlagged(int clientId)
{
await using var context = _contextFactory.CreateContext(false);
var now = DateTime.UtcNow;
return await context.Penalties
var hasExistingAutoFlag = await context.Penalties
.Where(_penalty => _penalty.Active)
.Where(_penalty => _penalty.OffenderId == clientId)
.Where(_penalty => _penalty.Type == EFPenalty.PenaltyType.Flag)
.Where(_penalty => _penalty.PunisherId == 1)
.Where(_penalty => _penalty.Expires == null || _penalty.Expires > now)
.AnyAsync();
var hasUnflag = await context.Penalties
.Where(_penalty => _penalty.Active)
.Where(_penalty => _penalty.OffenderId == clientId)
.Where(_penalty => _penalty.Type == EFPenalty.PenaltyType.Unflag)
.AnyAsync();
return !hasExistingAutoFlag && !hasUnflag;
}
/// <summary>