Esempio n. 1
0
        /// <summary>
        /// Mod command. Resets the blocked words set on a privileges group.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="core">The core.</param>
        public static void ResetBlockedWords(Command command, Core core = null)
        {
            if (Tools.IsNotModThenSendWarning(command))
            {
                return;
            }

            if (string.IsNullOrEmpty(command.Arguement))
            {
                Entites.Message.SendMessage(Message.Answer(command.Message,
                                                           "You must specify the privileges group which's blocked words shall be reseted."));
                return;
            }

            Entites.Privileges privileges = Privileges.GetPrivileges(command.Message.UserToChannel.Channel, command.Arguement);
            if (privileges == null)
            {
                Entites.Message.SendMessage(Message.Answer(command.Message,
                                                           $"No privileges group nammed {command.Arguement} was found."));
                return;
            }

            DAL.Privileges.LoadRules(privileges).Rules.BlockedWords = BlockedWord.GetDefaultBlockedWords();
            DAL.Rules.UpdateBlockedWords(privileges.Rules);
            Entites.Message.SendMessage(Message.Answer(command.Message, $"Blocked words of {command.Arguement} were successfully reinitialized."));
        }
Esempio n. 2
0
        /// <summary>
        /// Mod command. Sets the rules applying to a privileges group.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="core">The core.</param>
        public static void SetRules(Command command, Core core = null)
        {
            if (Tools.IsNotModThenSendWarning(command))
            {
                return;
            }

            string[] arguements = command.SplitArguements(count: 7);
            if (arguements.Length < 7)
            {
                Entites.Message.SendMessage(Message.Answer(command.Message,
                                                           "Incorect syntax. Please use the following one: /setrules privileges messageDelayInSeconds extensionBlocked? domainBlocked? messageTypeBlocked? blockedWordsEnabled? r9kEnabled?. Note that the fields ending by ? must be either 'y' or 'n'."));
                return;
            }
            for (int i = 2; i < arguements.Length; ++i)
            {
                if (!arguements[i].Equals("y", StringComparison.InvariantCultureIgnoreCase) && !arguements[i].Equals("n", StringComparison.InvariantCultureIgnoreCase))
                {
                    Entites.Message.SendMessage(Message.Answer(command.Message,
                                                               "Incorect syntax. Please use the following one: /setrules privileges messageDelayInSeconds extensionBlocked? domainBlocked? messageTypeBlocked? blockedWordsEnabled? r9kEnabled?. Note that the fields ending by ? must be either 'y' or 'n'."));
                    return;
                }
            }

            if (!int.TryParse(arguements[1], out int messageDelay))
            {
                Entites.Message.SendMessage(Message.Answer(command.Message,
                                                           $"Please write a time in seconds rather than {arguements[1]}"));
                return;
            }

            Entites.Privileges privileges = Privileges.GetPrivileges(command.Message.UserToChannel.Channel, arguements[0]);
            if (privileges == null)
            {
                Entites.Message.SendMessage(Message.Answer(command.Message,
                                                           $"No privileges group nammed {arguements[0]} was found."));
                return;
            }
            DAL.Privileges.LoadRules(privileges);

            privileges.Rules.SpamDelay           = messageDelay <= 0 ? null : (TimeSpan?)TimeSpan.FromSeconds(messageDelay);
            privileges.Rules.ExtensionBlocked    = "y".Equals(arguements[2], StringComparison.InvariantCultureIgnoreCase);
            privileges.Rules.DomainBlocked       = "y".Equals(arguements[3], StringComparison.InvariantCultureIgnoreCase);
            privileges.Rules.MessageTypeBlocked  = "y".Equals(arguements[4], StringComparison.InvariantCultureIgnoreCase);
            privileges.Rules.BlockedWordsEnabled = "y".Equals(arguements[5], StringComparison.InvariantCultureIgnoreCase);
            privileges.Rules.R9KEnabled          = "y".Equals(arguements[6], StringComparison.InvariantCultureIgnoreCase);
            DAL.Rules.Update(privileges.Rules);
            Entites.Message.SendMessage(Message.Answer(command.Message, $"The rules of {arguements[0]} were successfully updated."));
        }
        private static string SetPrivilegesAnalyzes(Command command)
        {
            if (!Tools.IsMod(command.Message.UserToChannel))
            {
                return("This command is reserved for moderators.");
            }

            string[] arguements = command.Arguement.Split(new[] { ' ' }, 2);
            string   user;
            string   privilegesName;

            if (arguements.Length > 1)
            {
                user           = arguements[0].Substring(1);
                privilegesName = arguements[1];
            }
            else
            {
                user           = command.Message.UserToChannel.User.CurrentUserName.Username;
                privilegesName = arguements[0];
            }

            Entites.UserToChannel userToChannel =
                Get(DAL.UserName.LoadOwnedBy(DAL.UserName.GetFromUsername(user, command.Message.ApplicationName))
                    .OwnedBy as Entites.User, command.Message.UserToChannel.Channel);
            if (userToChannel == null)
            {
                return($"No one nammed @{user} was found.");
            }

            Entites.Privileges privileges = Privileges.GetPrivileges(command.Message.UserToChannel.Channel, privilegesName);
            if (privileges == null)
            {
                return($"No privileges group nammed {privilegesName} was found.");
            }

            userToChannel.PrivilegesId = privileges.PrivilegesId;
            Update(userToChannel);
            return($"Your privileges group is now set to {privilegesName}.");
        }