Beispiel #1
0
        public static async Task UserJoinedServer(SocketGuildUser guildUser)
        {
            var chnl     = guildUser.Guild.GetChannel(Config.TheNoobGateChannel) as ITextChannel;
            var mainchnl = guildUser.Guild.GetChannel(Config.MeleeSlasherMainChannel) as ITextChannel;

            var insult = await Insults.GetInsult();

            Random rnd = new Random();

            var noobRole = Helpers.FindRole(guildUser, UtilityRoles.Noob);
            await guildUser.AddRoleAsync(noobRole);

            if (CommandToggles.WelcomeMessages)
            {
                var welcomeMessageMain = await WarmWelcome.GetWelcomeArrayMain(guildUser, rnd);

                await mainchnl.SendMessageAsync(welcomeMessageMain);
            }

            ITextChannel logChannel = guildUser.Guild.GetChannel(Config.UserJoinedLogChannel) as ITextChannel;
            await logChannel.SendMessageAsync($"{guildUser.Username}#{guildUser.Discriminator} joined Melee Slasher. UserID = {guildUser.Id}");

            var messageInfo     = "Write +help for instructions";
            var greetingMessage = await WarmWelcome.GetWelcomeArrayNoobGate(guildUser, rnd) + "\n" + messageInfo;

            _ = Task.Run(async() => await GreetUser(chnl, greetingMessage));
        }
Beispiel #2
0
        private async Task RandomCallMeme()
        {
            bool success = false;
            var  insult  = await Insults.GetInsult();

            var rnd = new Random();

            using (var db = new Memestorage())
            {
                try
                {
                    while (success == false)
                    {
                        var maxID = db.Memestore.Max(x => x.MemeId);
                        var meme  = db.Memestore.AsQueryable().Where(x => x.MemeId == rnd.Next(0, maxID)).FirstOrDefault();

                        if (meme != null && !string.IsNullOrEmpty(meme.Content))
                        {
                            await Context.Channel.SendMessageAsync($"Meme#{meme.MemeId}: {meme.Content}");

                            success = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
                }
            }
        }
Beispiel #3
0
        private async Task AssignRoles(SocketGuildUser user, [Remainder] string inputRoles)
        {
            var insult = await Insults.GetInsult();

            IRole roleToRemove = null;

            string[] rolesArray        = ReturnValidatedRoles(inputRoles, user);
            bool     roleNeedsRemoving = CheckIfMultipleExclusiveRoles(rolesArray, user);

            if (roleNeedsRemoving)
            {
                roleToRemove = FindExistingExclusiveRoles(user);
            }

            if (rolesArray.Count() == 0 && inputRoles.Count() > 0)
            {
                await Context.Channel.SendMessageAsync($"none of those roles are valid u f*****g {insult}");

                return;
            }
            else if (rolesArray.Count() == 0)
            {
                await Context.Channel.SendMessageAsync($"not a valid role u {insult}");

                return;
            }


            List <IRole>  iroleCollection    = new List <IRole>();
            List <string> roleNameCollection = new List <string>();

            foreach (var role in rolesArray)
            {
                var roleObject =
                    Helpers.ReturnRole(Context.Guild as SocketGuild, UserRoles.AllowedRolesDictionary[role]);
                iroleCollection.Add(roleObject);
                roleNameCollection.Add(roleObject.Name);
            }
            string roleNames = String.Join(", ", roleNameCollection.ToArray());

            var embed = new EmbedBuilder();

            embed.WithTitle($"✅   {Context.Message.Author.Username} granted {roleNames} to {user.Username}");
            if (roleToRemove != null)
            {
                await user.RemoveRoleAsync(roleToRemove);

                embed.AddField($"Replaced: ", roleToRemove.Name, true);
            }
            embed.WithColor(new Color(0, 255, 0));


            foreach (var item in iroleCollection)
            {
                await user.AddRoleAsync(item);
            }

            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
Beispiel #4
0
    public void Awake()
    {
        var insults = Resources.Load <TextAsset>("Text/insults");
        var lines   = insults.text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

        Debug.Log("Total insult lines: " + lines.Length);

        for (int i = 0; i < lines.Length; i += 2)
        {
            Insults.Add(new Insult(lines[i], lines[i + 1]));
        }
    }
Beispiel #5
0
    void Awake()
    {
        // Load Data
        string resource = LoadResource.GetData();

        InsultsInstance = JsonUtility.FromJson <Insults>(resource);

        // Load Instances
        PointsManager = new PointsCounter(PlayerPointsText, ComputerPointsText);
        Computer      = new Machine(InsultsInstance);
        Turn          = new TurnManager();
    }
        private async Task BanUser()
        {
            var insult = await Insults.GetInsult();

            var embed = new EmbedBuilder();

            embed.WithTitle($"Permanently ends some {insult} from this sacred place");
            embed.WithDescription("**Usage**: !ban \"user\" \"reason\"\n" +
                                  "**Target**: arrogant shitters \n" +
                                  "**Length**: Indefinite.");
            embed.WithColor(new Color(0, 255, 0));
            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
Beispiel #7
0
        public async Task HelpAsync()
        {
            if (Context.Message.Channel.Id != Config.TheNoobGateChannel)
            {
                return;
            }

            var insult = await Insults.GetInsult();

            Random rnd        = new Random();
            var    welcomeMsg = await WarmWelcome.GetHelpfulNoobString();

            await Context.Channel.SendMessageAsync(welcomeMsg);
        }
        private async Task BanUserAndCleanse()
        {
            var insult = await Insults.GetInsult();

            var embed = new EmbedBuilder();

            embed.WithTitle($"Bans & Cleanses a {insult} from this sacred place");
            embed.WithDescription("**Usage**: !ban \"user\" \"reason\"\n" +
                                  "**Target**: arrogant shitters \n" +
                                  "**Chat Purge**: 24 hours. \n" +
                                  "**Ban length:** Indefinite.");
            embed.WithColor(new Color(0, 255, 0));
            await Context.Channel.SendMessageAsync("", false, embed.Build());
        }
Beispiel #9
0
        private async Task VCMove(SocketGuildUser user, IVoiceChannel chnl)
        {
            try
            {
                if (Context.Message.Author.Id == 161176590028505089)
                {
                    return;                                                  // no bob
                }
                var insult = await Insults.GetInsult();


                if (user.Id == Context.Message.Author.Id || Helpers.IsVKOrModeratorOrOwner(user))
                {
                    await Context.Channel.SendMessageAsync($"yeah nice try retard {insult}");

                    return;
                }

                if (user.VoiceChannel != null)
                {
                    var oldChannel = user.VoiceChannel as IVoiceChannel;

                    if (chnl.Id == oldChannel.Id)
                    {
                        await Context.Channel.SendMessageAsync($"why would i move him to the same channel you f*****g {insult}");

                        return;
                    }


                    var channel = Optional.Create <IVoiceChannel>(chnl);
                    await user.ModifyAsync(x =>
                    {
                        x.Channel = channel;
                    });

                    await Context.Channel.SendMessageAsync($"{user.Mention} moved from {oldChannel} to voice channel {chnl}");

                    return;
                }
                ;

                await Context.Channel.SendMessageAsync($"{user.Mention} needs to connect to a voice channel to be moved");
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
        private async Task WarnUser(IGuildUser user)
        {
            string warningMessage = await Insults.GetWarning();

            try
            {
                await user.SendMessageAsync(warningMessage);

                await Context.Channel.SendMessageAsync($"⚠      *** {user.Username} has received a warning.      ⚠***");
            }
            catch (HttpException)
            {
                await Context.Channel.SendMessageAsync(user.Mention + ", " + warningMessage);
            }
        }
        public async Task DeleteInviteLinkWarn(SocketCommandContext context)
        {
            try
            {
                var insult = await Insults.GetInsult();

                await context.Message.DeleteAsync();

                await context.Channel.SendMessageAsync($"{context.User.Mention}, don't post invite links {insult}");
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
Beispiel #12
0
        private async Task EditMeme([Remainder] string input)
        {
            try
            {
                var inputAsArray     = input.Split(" ");
                var title            = inputAsArray[0].ToString();
                var contentOfMessage = String.Join(" ", inputAsArray.Skip(1));
                var insult           = await Insults.GetInsult();

                if (contentOfMessage.Length < 2)
                {
                    await Context.Channel.SendMessageAsync($"wat r u tryin to do");

                    return;
                }
                if (title.Where(x => Char.IsDigit(x)).Any())
                {
                    await Context.Channel.SendMessageAsync($"the meme title can't contain numbers or weird shit, sry bitch");

                    return;
                }

                using (var db = new Memestorage())
                {
                    if (db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).Any())
                    {
                        var meme = db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).FirstOrDefault();

                        //is it a valid user ? (mod/original author)
                        if (Helpers.IsModeratorOrOwner(Context.Message.Author as SocketGuildUser) || meme.AuthorID == Context.Message.Author.Id)
                        {
                            meme.Content = contentOfMessage;
                            await db.SaveChangesAsync();

                            await Context.Channel.SendMessageAsync($"{title} was successfully updated");

                            return;
                        }
                    }

                    await Context.Channel.SendMessageAsync($"nah ur not allowed nice try tho lmfao {insult}");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
Beispiel #13
0
    public (Insult insult, List <string> wrongAnswers) GetRandomInsult(bool onlyUnused = true)
    {
        Debug.Log("Insults: " + Insults.Count);

        var insultSet = onlyUnused ? UnusedInsults : Insults;
        var insult    = insultSet.ElementAt(UnityEngine.Random.Range(0, insultSet.Count()));

        var wrongAnswers = Insults
                           .Where(i => i.CorrectResponseLine != insult.CorrectResponseLine)
                           .Select(x => x.CorrectResponseLine)
                           .OrderBy(x => UnityEngine.Random.Range(0f, 1f))
                           .ToList();

        UsedInsults.Add(insult);

        return(insult, wrongAnswers);
    }
Beispiel #14
0
        public static async Task <string> GetWelcomeArrayMain(SocketGuildUser guildUser, Random rnd)
        {
            var insult = await Insults.GetInsult();

            string[] welcomeArrayMain = new string[]
            {
                $"{guildUser.Mention} has joined Melee Slasher, the {insult} is sitting in the shitter lobby",
                $"{guildUser.Mention} has joined the server, they are now waiting in the noob gate",
                $"{guildUser.Mention} is now waiting in the noob gate",
                $"{guildUser.Mention} join server guys 😃😃😃, they now wait in the noob gate",
                $"some {insult} called {guildUser.Mention} is now sitting in the noob gate",
                $"{guildUser.Mention} has just joined the server, waiting in the noob gate for attending to",
                $"{guildUser.Mention} has connected to the server, they're now sat in the noob gate",
            };
            int pull = rnd.Next(welcomeArrayMain.Length);

            return(welcomeArrayMain[pull].ToString());
        }
Beispiel #15
0
        private async Task DeleteMeme([Remainder] string input)
        {
            try
            {
                var inputAsArray = input.Split(" ");
                var title        = inputAsArray[0].ToString();
                var insult       = await Insults.GetInsult();

                if (inputAsArray.Count() > 1)
                {
                    await Context.Channel.SendMessageAsync("wtf is that supposed to be?");

                    return;
                }

                using (var db = new Memestorage())
                {
                    if (!db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).Any())
                    {
                        await Context.Channel.SendMessageAsync($"there's no {title} {insult}");

                        return;
                    }
                    var rowToRemove = db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).SingleOrDefault();
                    //needs to be original author or moderator
                    if (Helpers.IsModeratorOrOwner(Context.Message.Author as SocketGuildUser) || rowToRemove.AuthorID == Context.Message.Author.Id)

                    {
                        db.Memestore.Remove(rowToRemove);
                        await db.SaveChangesAsync();

                        await Context.Channel.SendMessageAsync($"{title} was deleted successfully from the DB");

                        return;
                    }
                    await Context.Channel.SendMessageAsync($"only the original author or moderator can delete this");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
Beispiel #16
0
        public static async Task <string> GetWelcomeArrayNoobGate(SocketGuildUser guildUser, Random rnd)
        {
            var insult = await Insults.GetInsult();

            string[] welcomeArrayNoobGate = new string[]
            {
                $"{guildUser.Mention}, welcome to the server {insult}.",
                $"new f*****g {insult} {guildUser.Mention} has joined the server.",
                $"Welcome, {guildUser.Mention}.",
                $"what's up {guildUser.Mention}.",
                $"Hello {insult}. {guildUser.Mention},",
                $"Greetings {guildUser.Mention}.",
                $"{guildUser.Mention} has just joined the server, check the new {insult}. ",
                $"User {guildUser.Mention} has connected - someone see to this {insult}.",
            };

            int pull = rnd.Next(welcomeArrayNoobGate.Length);

            return(welcomeArrayNoobGate[pull].ToString());
        }
Beispiel #17
0
    private static void Initialize()
    {
        player_hearts_container   = GameObject.Find("player-hearts");
        computer_hearts_container = GameObject.Find("computer-hearts");
        heart_empty = Resources.Load <Sprite>("Images/heart-empty");

        guybrush_animator = GameObject.Find("guybrush").GetComponent <Animator>();
        pirate_animator   = GameObject.Find("pirate").GetComponent <Animator>();

        for (int i = 0; i < MAX_HEARTS; i++)
        {
            player_hearts[i]   = player_hearts_container.transform.GetChild(i).gameObject.GetComponent <Image>();
            computer_hearts[i] = computer_hearts_container.transform.GetChild(i).gameObject.GetComponent <Image>();
        }
        player_lives   = MAX_HEARTS;
        computer_lives = MAX_HEARTS;

        insults   = JsonUtility.FromJson <Insults>(Resources.Load <TextAsset>("Text/insults").text);
        n_insults = insults.insults.Length;
    }
Beispiel #18
0
        public static async Task <string> GetAggressNoobString(SocketGuildUser guildUser, Random rnd)
        {
            var dubjoyEmoji = Helpers.FindEmoji(guildUser, "dubjoy");
            var insult      = await Insults.GetInsult();

            string[] aggressArray = new string[]
            {
                $"lmfao why you asking me for help? {insult}.",
                $"yea keep asking for help",
                $"yea that's right keep asking for help",
                $"rly love it when some {insult} begs me for help",
                $"lmfao, asking for help like some loser",
                $"hahah no1 gonna help u f*****g retard",
                $"get f****d {insult} aint no1 gonna help u LMFAO",
                $"ur irritating",
                $"{dubjoyEmoji} keep crying for help",
                $"you're alone here, nobody even wants you",
                $"LOL you actually asked for help {dubjoyEmoji}",
                $"f*****g weak {insult} asking for help,",
                $"?.. you think i was seriously going to help you",
                $"stfu, i wasn't serious about helping",
                $"you expect some warm welcome or something ? wtf u think this place is {dubjoyEmoji}",
                $"ugh",
                $"hahaha why u crying for help {insult}",
                $"lmfao, u think some1 gonna help u ?",
                $"nobody gonna help u son",
                $"cant u do things by urself? why are u such a pathetic loser that needs help",
                $"why don't you ask your mommy for help instead you f*****g {insult} {dubjoyEmoji}",
                $"why don't you ask your mommy for help instead you f*****g {insult}",
                $"nah",
                $"no",
                $"na",
                $"cry more {insult}",
                $"maybe later.. {dubjoyEmoji}",
                $"{dubjoyEmoji}",
                $"{dubjoyEmoji} u actually asked for help"
            };
            int pull = rnd.Next(aggressArray.Length);

            return(aggressArray[pull].ToString());
        }
Beispiel #19
0
        private async Task CanPostPics(IGuildUser user)
        {
            try
            {
                var userSocket = user as SocketGuildUser;
                var picsRole   = Helpers.FindRole(userSocket, UtilityRoles.PicPermDisable);
                if (picsRole is null)
                {
                    await Context.Channel.SendMessageAsync("cant find cant post pics role !");

                    return;
                }
                var insult = await Insults.GetInsult();

                if (!Helpers.IsRole(UtilityRoles.PicPermDisable, userSocket))
                {
                    await Context.Channel.SendMessageAsync("they can post pics u " + insult);

                    return;
                }
                if (Helpers.IsRole(UtilityRoles.Moderator, userSocket))
                {
                    await Context.Channel.SendMessageAsync("stop beefing with eachother f*****g bastards");

                    return;
                }
                var embedReplaceRemovedRole = new EmbedBuilder();
                embedReplaceRemovedRole.WithTitle($"✅   {Context.User.Username} returned pic perms for {user.Username}");
                embedReplaceRemovedRole.WithColor(new Color(0, 255, 0));
                await Context.Channel.SendMessageAsync("", false, embedReplaceRemovedRole.Build());

                await userSocket.RemoveRoleAsync(picsRole);
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
Beispiel #20
0
        private async Task UnMute(IGuildUser user)
        {
            try
            {
                var userSocket = user as SocketGuildUser;
                var mutedRole  = Helpers.FindRole(userSocket, UtilityRoles.Muted);
                if (mutedRole is null)
                {
                    await Context.Channel.SendMessageAsync("cant find muted role !");

                    return;
                }
                var insult = await Insults.GetInsult();

                if (!Helpers.IsRole(UtilityRoles.Muted, userSocket))
                {
                    await Context.Channel.SendMessageAsync("theyre not even muted u " + insult);

                    return;
                }
                if (Helpers.IsRole(UtilityRoles.Moderator, userSocket))
                {
                    await Context.Channel.SendMessageAsync("stop beefing with eachother f*****g bastards");

                    return;
                }
                var embedReplaceRemovedRole = new EmbedBuilder();
                embedReplaceRemovedRole.WithTitle($"✅   {Context.User.Username} successfully unmuted {user.Username}");
                embedReplaceRemovedRole.WithColor(new Color(0, 255, 0));
                await Context.Channel.SendMessageAsync("", false, embedReplaceRemovedRole.Build());

                await userSocket.RemoveRoleAsync(mutedRole);
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
Beispiel #21
0
        private async Task CallMemeID(int id)
        {
            var insult = await Insults.GetInsult();

            using (var db = new Memestorage())
            {
                try
                {
                    var meme = db.Memestore.AsQueryable().Where(x => x.MemeId == id).FirstOrDefault();
                    if (meme != null)
                    {
                        if (!string.IsNullOrEmpty(meme.Content))
                        {
                            Regex rgx   = new Regex("(<@![0-9]+>)");
                            var   match = rgx.Match(meme.Content);
                            if (match.Success)
                            {
                                db.Memestore.Remove(meme);
                                await Context.Channel.SendMessageAsync($"{meme.Title} contained some pings so get deleted son lmfao hahahah");
                            }
                            else
                            {
                                meme.MemeUses = meme.MemeUses + 1;

                                await Context.Channel.SendMessageAsync($"{meme.Content}");
                            }
                        }

                        await db.SaveChangesAsync();
                    }
                }
                catch (Exception ex)
                {
                    await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
                }
            }
        }
Beispiel #22
0
        private async Task UnbanUser(ulong userID)
        {
            try
            {
                var insult = await Insults.GetInsult();

                var allBans = await Context.Guild.GetBansAsync();

                bool   existingBan    = false;
                string bannedUserName = string.Empty;

                foreach (var item in allBans)
                {
                    if (item.User.Id == userID)
                    {
                        existingBan    = true;
                        bannedUserName = item.User.Username;
                        break;
                    }
                }

                if (!existingBan)
                {
                    await Context.Channel.SendMessageAsync("that's not a valid ID " + insult);
                }
                else
                {
                    await Context.Guild.RemoveBanAsync(userID);

                    await Context.Channel.SendMessageAsync($"✅    *** {bannedUserName} has been unbanned ***");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionPublically(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }
Beispiel #23
0
 public Machine(Insults insultsInstance)
 {
     this.insultsInstance = insultsInstance;
 }
Beispiel #24
0
        private void HandleCommand(string text, string sender, string fromChannel, CommandOutput output, bool isTrustedUser)
        {
            string command    = text.Split(' ')[0].Substring(1);
            string parameters = "";

            if (text.IndexOf(' ') > 0)
            {
                parameters = text.Substring(text.IndexOf(' ')).Trim();
            }

            var matchedCommand = MatchCommand(command);

            // I want to keep "!add" as a command.
            if (matchedCommand.Count > 1 && matchedCommand.Contains("add"))
            {
                matchedCommand.Clear();
                matchedCommand.Add("add");
            }

            if (matchedCommand.Count == 1)
            {
                output.MatchedCommand = true;
                switch (matchedCommand[0])
                {
                case "add":
                    if (sender == "dessyreqt")
                    {
                        var newCommand = parameters.Substring(0, parameters.IndexOf(' ')).Trim();
                        var newText    = parameters.Substring(parameters.IndexOf(' ')).Trim();

                        CustomCommands.Add(newCommand, newText);
                    }
                    break;

                case "delete":
                    if (sender == "dessyreqt")
                    {
                        CustomCommands.Delete(parameters);
                    }
                    break;

                case "drops":
                    if (parameters.Length > 2)
                    {
                        output.Text.AddRange(OutputDrops(parameters));
                    }
                    break;

                case "summon":
                    var channel = SummonToChannel(parameters);

                    if (channel != "")
                    {
                        output.Text.Add(SummonToChannel(parameters));
                        output.Type = CommandType.JoinChannel;
                    }
                    break;

                case "randnum":
                case "randomnumber":
                    output.Text.Add(GetRandomNumber(parameters).ToString());
                    break;

                case "randlist":
                case "randomlist":
                case "randomizelist":
                    output.Text.Add(GetRandomList(parameters));
                    break;

                case "fight":
                    output.Text.AddRange(GetFightInfo(parameters));
                    break;

                case "addquote":
                    if (isTrustedUser && Quotes.Validate(parameters))
                    {
                        Quotes.Add(parameters);
                        output.Text.Add(string.Format("Quote added! {0} quotes in the database.", Quotes.GetCount()));
                    }
                    break;

                case "quote":
                    var quote = Quotes.GetRandom();
                    int quoteId;

                    if (parameters.Length > 0 && int.TryParse(parameters, out quoteId))
                    {
                        var tempQuote = new Quote {
                            QuoteId = quoteId, QuoteText = Quotes.Get(quoteId)
                        };
                        if (tempQuote.QuoteText != null)
                        {
                            quote = tempQuote;
                        }
                    }

                    lastQuote[fromChannel] = quote.QuoteId;
                    output.Text.Add(FormatQuote(quote));
                    break;

                case "delquote":
                    if (isTrustedUser)
                    {
                        if (parameters.Length > 0 && int.TryParse(parameters, out quoteId))
                        {
                            Quotes.Delete(quoteId);
                            output.Text.Add("That terrible quote has been deleted. Good riddance!");
                        }
                        else if (lastQuote.ContainsKey(fromChannel))
                        {
                            Quotes.Delete(lastQuote[fromChannel]);
                            output.Text.Add("That terrible quote has been deleted. Good riddance!");
                        }
                    }
                    break;

                case "insult":
                    var insultTo = GetInsultTarget(sender, fromChannel, parameters);
                    var insult   = Insults.Get();
                    output.Text.Add(string.Format("{0}, you're nothing but {1}", insultTo, insult));
                    break;

                case "compliment":
                    var complimentTo = GetInsultTarget(sender, fromChannel, parameters);
                    var compliment   = Insults.Get();
                    output.Text.Add(string.Format("{0}, you're decent for {1}", complimentTo, compliment));
                    break;

                case "listquotes":
                    if (isTrustedUser)
                    {
                        output.Text.Add(ListQuotes());
                    }
                    break;

                case "addc":
                    if (isTrustedUser)
                    {
                        var newCommand = string.Format("{0}+{1}", parameters.Substring(0, parameters.IndexOf(' ')).Trim().Replace("+", ""), fromChannel);
                        var newText    = parameters.Substring(parameters.IndexOf(' ')).Trim();

                        CustomCommands.Add(newCommand, newText);
                    }
                    break;

                case "delc":
                    if (isTrustedUser)
                    {
                        var commandName = string.Format("{0}+{1}", parameters, fromChannel);
                        CustomCommands.Delete(commandName);
                    }
                    break;
                }
            }
            else if (matchedCommand.Count == 0)
            {
                var commandOutput = CustomCommands.Get(string.Format("{0}+{1}", command, fromChannel));

                if (commandOutput != null)
                {
                    commandOutput = commandOutput.Replace("{sender}", sender);
                    commandOutput = commandOutput.Replace("{streamer}", fromChannel.Remove(0, 1));
                    commandOutput = commandOutput.Replace("{oatsavgceres}", OatsCeres.GetAvgTime());

                    output.Text.Add(commandOutput);
                }
                else if ((commandOutput = CustomCommands.Get(command)) != null)
                {
                    commandOutput = commandOutput.Replace("{sender}", sender);
                    commandOutput = commandOutput.Replace("{streamer}", fromChannel.Remove(0, 1));

                    output.Text.Add(commandOutput);
                }
            }
        }
Beispiel #25
0
        private async Task StoreMeme([Remainder] string input)
        {
            try
            {
                var inputAsArray     = input.Split(" ");
                var title            = inputAsArray[0].ToString(); title = Regex.Replace(title, @"\t|\n|\r", "");
                var contentOfMessage = String.Join(" ", inputAsArray.Skip(1));
                var insult           = await Insults.GetInsult();

                if (contentOfMessage.Length < 2)
                {
                    await Context.Channel.SendMessageAsync($"what the f**k are you actually doing you f*****g {insult}, why are you trying to make an empty meme ? r u legit f*****g autist or what, fuckign dumb {insult} c**t");

                    return;
                }
                if (title.Where(x => Char.IsDigit(x)).Any())
                {
                    await Context.Channel.SendMessageAsync($"the meme title can't contain numbers or weird shit, sry bitch");

                    return;
                }


                if (await WordFilter.CheckForNaughtyWords(contentOfMessage) || await WordFilter.CheckForNaughtyWords(title))
                {
                    await Context.Channel.SendMessageAsync($"dont put nasty language in the memestore {insult}");

                    return;
                }

                using (var db = new Memestorage())
                {
                    if (db.Memestore.AsQueryable().Where(x => x.AuthorID == Context.Message.Author.Id).Count() >= 25)
                    {
                        await Context.Channel.SendMessageAsync($"f*****g greedy f**k {insult} bastard u cannot make over 25 memes");

                        return;
                    }

                    if (db.Memestore.AsQueryable().Where(x => x.Title.ToLower() == title.ToLower()).Any())
                    {
                        await Context.Channel.SendMessageAsync($"that alrdy exists u {insult}");

                        return;
                    }

                    await db.Memestore.AddAsync(new MemeStoreModel
                    {
                        Author   = Context.Message.Author.Username,
                        AuthorID = Context.Message.Author.Id,
                        Content  = contentOfMessage,
                        Title    = title,
                        Date     = DateTime.Now.ToShortDateString(),
                        Time     = DateTime.Now.ToShortTimeString()
                    });

                    await db.SaveChangesAsync();

                    await Context.Channel.SendMessageAsync($"{title} was successfully created!");
                }
            }
            catch (Exception ex)
            {
                await ExceptionHandler.HandleExceptionQuietly(GetType().FullName, ExceptionHandler.GetAsyncMethodName(), ex);
            }
        }