mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-08 06:08:20 -05:00
Utilise Minutes in TempBan for under 1 hour bans. (#362)
* Update tempban command to use minutes instead of hours The duration calculation for tempbans now uses minutes rather than hours for greater precision. This change ensures better alignment with user expectations and configurations in smaller timeframes. * Update regex patterns to enforce stricter input validation Adjusted regex in `ParseTimespan` and `TempBanCommand` to ensure input starts with 1-5 numeric characters, improving validation. This prevents malformed user inputs and enhances overall command reliability. * \w includes digits. Who knew.
This commit is contained in:
parent
1f3a3cefc7
commit
cba9f1726b
@ -229,7 +229,7 @@ namespace SharedLibraryCore.Commands
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class TempBanCommand : Command
|
public class TempBanCommand : Command
|
||||||
{
|
{
|
||||||
private static readonly string TempBanRegex = @"([0-9]+\w+)\ (.+)";
|
private static readonly string TempBanRegex = @"^([0-9]{1,5}\p{L}+)\ (.+)";
|
||||||
private readonly ApplicationConfiguration _appConfig;
|
private readonly ApplicationConfiguration _appConfig;
|
||||||
|
|
||||||
public TempBanCommand(ApplicationConfiguration appConfig, CommandConfiguration config,
|
public TempBanCommand(ApplicationConfiguration appConfig, CommandConfiguration config,
|
||||||
|
@ -510,7 +510,7 @@ namespace SharedLibraryCore
|
|||||||
|
|
||||||
public static TimeSpan ParseTimespan(this string input)
|
public static TimeSpan ParseTimespan(this string input)
|
||||||
{
|
{
|
||||||
var expressionMatch = Regex.Match(input, @"([0-9]+)(\w+)");
|
var expressionMatch = Regex.Match(input, @"^([0-9]{1,5})(\p{L}+)");
|
||||||
|
|
||||||
if (!expressionMatch.Success) // fallback to default tempban length of 1 hour
|
if (!expressionMatch.Success) // fallback to default tempban length of 1 hour
|
||||||
{
|
{
|
||||||
|
@ -312,8 +312,8 @@ namespace WebfrontCore.Controllers
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var durationSpan = _appConfig.BanDurations[duration - 1];
|
var durationSpan = _appConfig.BanDurations[duration - 1];
|
||||||
var durationValue = durationSpan.TotalHours.ToString(CultureInfo.InvariantCulture) +
|
var durationValue = durationSpan.TotalMinutes.ToString(CultureInfo.InvariantCulture) +
|
||||||
Localization["GLOBAL_TIME_HOURS"][0];
|
Localization["GLOBAL_TIME_MINUTES"][0];
|
||||||
command =
|
command =
|
||||||
$"{_appConfig.CommandPrefix}{_tempbanCommandName} @{targetId} {durationValue} {fallthroughReason}";
|
$"{_appConfig.CommandPrefix}{_tempbanCommandName} @{targetId} {durationValue} {fallthroughReason}";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user