public Infraction AddTemporaryInfraction(TemporaryInfractionType type, IUser user, IUser moderator, TimeSpan duration, string reason = "", string additionalInfo = "") { Infraction infraction = AddTemporaryInfraction(type, user.Id, moderator, duration, reason, additionalInfo); SendTemporaryInfractionMessageToUser(user, infraction, duration); return(infraction); }
public void ClearTemporaryInfraction(TemporaryInfractionType type, ulong userId) { var userData = _data.UserData.GetOrCreate(userId); userData.TemporaryInfractions.RemoveAll(i => i.Type == type); _data.SaveUserData(); }
public static InfractionType AsInfractionType(this TemporaryInfractionType t) { switch (t) { case TemporaryInfractionType.TempBan: return(InfractionType.TemporaryBan); case TemporaryInfractionType.TempMute: return(InfractionType.TemporaryMute); default: throw new ArgumentException($"{nameof(InfractionType)} does not contain a valid counterpart for {t}."); } }
public Infraction AddTemporaryInfraction(TemporaryInfractionType type, ulong userId, IUser moderator, TimeSpan duration, string reason = "") { var userData = _data.UserData.GetOrCreate(userId); // Ensure that same-type infractions do not stack. userData.TemporaryInfractions.RemoveAll(i => i.Type == type); userData.TemporaryInfractions.Add(TemporaryInfraction.Create(type, DateTime.UtcNow.Add(duration))); Infraction infraction = Infraction.Create(RequestInfractionID()) .WithType(type.AsInfractionType()) .WithModerator(moderator) .WithDescription(reason) .WithAdditionalInfo($"Duration: {duration.Humanize(7)}"); userData.Infractions.Add(infraction); _data.SaveUserData(); return(infraction); }
public void ClearTemporaryInfraction(TemporaryInfractionType type, IUser user) => ClearTemporaryInfraction(type, user.Id);
public void AddTemporaryInfraction(TemporaryInfractionType type, IUser user, IUser moderator, TimeSpan duration, string reason = "") { Infraction infraction = AddTemporaryInfraction(type, user.Id, moderator, duration, reason); SendInfractionMessageToUser(user, infraction); }
private TemporaryInfraction(TemporaryInfractionType type, DateTime expire) { Type = type; Expire = expire; }
public static TemporaryInfraction Create(TemporaryInfractionType type, DateTime expire) => new TemporaryInfraction(type, expire);
public bool HasTemporaryInfraction(TemporaryInfractionType type) => TemporaryInfractions.Any(i => i.Type == type);