using System;
using System.Collections.Generic;
using System.Linq;
using static IW4MAdmin.Plugins.Stats.Cheat.Detection;
using static SharedLibraryCore.Server;

namespace Stats.Config
{
    public class AnticheatConfiguration
    {
        public bool Enable { get; set; }
        [Obsolete]
        public IDictionary<long, DetectionType[]> ServerDetectionTypes { get; set; } = new Dictionary<long, DetectionType[]>();

        public IDictionary<Game, DetectionType[]> GameDetectionTypes { get; set; } =
            new Dictionary<Game, DetectionType[]>()
            {
                { Game.IW4, Enum.GetValues(typeof(DetectionType)).Cast<DetectionType>().ToArray() },
                { Game.T6, new[] { DetectionType.Offset, DetectionType.Snap, DetectionType.Strain } }
            };
        public IList<long> IgnoredClientIds { get; set; } = new List<long>();
        public IDictionary<Game, IDictionary<DetectionType, string[]>> IgnoredDetectionSpecification{ get; set; } = new Dictionary<Game, IDictionary<DetectionType, string[]>>
        {
            {
                Game.IW4, new Dictionary<DetectionType, string[]>
                {
                    { DetectionType.Chest, new[] { "m21.+" } },
                    { DetectionType.Recoil, new[] { "ranger.*_mp", "model1887.*_mp", ".+shotgun.*_mp", "turret_minigun_mp" } },
                    { DetectionType.Button, new[] { ".*akimbo.*" } }
                }
            }
        };
    }
}