Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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;
                }
            }
        }