public override void ExecuteCommand(EvtChatCommandArgs args)
        {
            List <string> arguments = args.Command.ArgumentsAsList;

            long curResMode = DataHelper.GetSettingInt(SettingsConstants.DEMOCRACY_RESOLUTION_MODE, 0L);
            DemocracyResolutionModes resMode = (DemocracyResolutionModes)curResMode;

            //See the virtual controller
            if (arguments.Count == 0)
            {
                QueueMessage($"The current Democracy resolution mode is {resMode}. To set the resolution mode, add one as an argument: {CachedResolutionModesStr}");
                return;
            }

            //Invalid number of arguments
            if (arguments.Count > 1)
            {
                QueueMessage(UsageMessage);
                return;
            }

            using (BotDBContext context = DatabaseManager.OpenContext())
            {
                //Check if the user has the ability to set the mode
                User user = DataHelper.GetUserNoOpen(args.Command.ChatMessage.Username, context);

                if (user != null && user.HasEnabledAbility(PermissionConstants.SET_DEMOCRACY_RESOLUTION_MODE_ABILITY) == false)
                {
                    QueueMessage("You don't have the ability to set the Democracy resolution mode!");
                    return;
                }
            }

            string resModeStr = arguments[0];

            //Parse
            if (EnumUtility.TryParseEnumValue(resModeStr, out DemocracyResolutionModes parsedResMode) == false)
            {
                QueueMessage($"Please enter a resolution mode: {CachedResolutionModesStr}");
                return;
            }

            //Same mode
            if (parsedResMode == resMode)
            {
                QueueMessage($"The current resolution mode is already {resMode}!");
                return;
            }

            using (BotDBContext context = DatabaseManager.OpenContext())
            {
                //Set the value and save
                Settings resModeSetting = DataHelper.GetSettingNoOpen(SettingsConstants.DEMOCRACY_RESOLUTION_MODE, context);
                resModeSetting.ValueInt = (long)parsedResMode;

                context.SaveChanges();
            }

            QueueMessage($"Changed the Democracy resolution mode from {resMode} to {parsedResMode}!");
        }
        public override void Initialize()
        {
            base.Initialize();

            //Show all resolution modes
            DemocracyResolutionModes[] resModeArr = EnumUtility.GetValues <DemocracyResolutionModes> .EnumValues;

            for (int i = 0; i < resModeArr.Length; i++)
            {
                DemocracyResolutionModes resMode = resModeArr[i];

                CachedResolutionModesStr += resMode.ToString();

                if (i < (resModeArr.Length - 1))
                {
                    CachedResolutionModesStr += ", ";
                }
            }
        }