public IActionResult SetLimiters([FromBody][Required] Limiters limiters) { if (!ModelState.IsValid) { return(BadRequest()); } _config.Limiters = limiters; return(Ok()); }
private long?GetLimiterCount(TimeSpan span) { Limiter item = Limiters.FirstOrDefault(l => l.Period == span); long? result = null; if (item != null) { result = item.Count; } return(result); }
async void OnReload(ReloadEventArgs e) { await Task.Run(() => Config = Config.Read(ConfigPath)); var result = await Limiters.ReloadAsync(); switch (result) { case ReturnTypes.NullOrCorrupt: e.Player.SendErrorMessage("Failed to reload ChestLimiter's database."); break; case ReturnTypes.Success: e.Player.SendSuccessMessage("[ChestLimiter] Reloaded config and database!"); break; case ReturnTypes.Exception: e.Player.SendErrorMessage("An exception was thrown during ChestLimiter's database reload. Check logs for details."); break; } }
private void SetLimiter(TimeSpan span, long?count) { Limiter item = Limiters.FirstOrDefault(l => l.Period == span); if (item != null) { _limits.Remove(item); } if (!count.HasValue) { return; } item = new Limiter { Count = count.Value, Period = span }; _limits.Add(item); }
async void OnAccountDelete(AccountDeleteEventArgs e) { Limiter limiter = await Limiters.GetAsync(e.User.Name); if (limiter != null) { var result = await Limiters.DelAsync(e.User.Name); switch (result) { case ReturnTypes.NullOrCorrupt: TShock.Log.ConsoleError("chestlimiter: error deleting chest limiter for '{0}'", e.User.Name); break; case ReturnTypes.Success: TShock.Log.ConsoleInfo("chestlimiter: deleted '{0}' chest limiter", e.User.Name); break; case ReturnTypes.Exception: TShock.Log.ConsoleError("chestlimiter: exception thrown while deleting '{0}' chest limiter.", e.User.Name); break; } } }