コード例 #1
0
ファイル: Tools.cs プロジェクト: filthfiend/Fifthbot
        public async Task GroupKinks(params string[] parameters)
        {
            if (parameters.Length < 2)
            {
                await Context.Channel.SendMessageAsync("Insufficient data, quitting!");

                return;
            }

            List <string> kinkList  = parameters.ToList();
            string        groupName = kinkList[0];

            kinkList.RemoveAt(0);



            KinkGroup groupToJoin = DataMethods.GetGroup(groupName);

            if (groupToJoin == null)
            {
                await Context.Channel.SendMessageAsync("Invalid group, quitting!");

                return;
            }

            string adding = "Adding kinks to " + groupToJoin.KinkGroupName + "\n";

            foreach (string kinkName in kinkList)
            {
                bool kinkFound = await DataMethods.AddKinkToGroup(groupToJoin.KinkGroupID, kinkName, Context.Guild.Id);

                if (kinkFound)
                {
                    adding += kinkName + " added\n";
                }
                else
                {
                    adding += kinkName + " is not a valid kink\n";
                }
            }


            await Context.Channel.SendMessageAsync(adding);
        }
コード例 #2
0
ファイル: UtilMethods.cs プロジェクト: filthfiend/Fifthbot
        public async Task EditGroupData(SocketCommandContext Context)
        {
            ulong userID = Context.User.Id;

            Command groupCommand = Vars.activeCommands.Where(x => x.ActorID == userID).FirstOrDefault();

            Console.WriteLine(" we've got our group command ");


            KinkGroup groupToEdit = Vars.tableEntries.Where(x => x.GetType().Name == "KinkGroup").ToList().Cast <KinkGroup>().ToList().Where(x => x.KinkGroupID.ToString() == groupCommand.CommandData).FirstOrDefault();

            Console.WriteLine(" we've got our group to edit ");



            if (groupCommand.CommandData == "start")
            {
                string groupName = Context.Message.Content;


                KinkGroup groupFromDB = DataMethods.GetGroup(groupName);


                if (groupFromDB == null)
                {
                    ulong msgEndID = groupCommand.MessageID;

                    var msgEnd = (RestUserMessage)await Context.Channel.GetMessageAsync(msgEndID);

                    string endMessage = "Welcome " + Context.User.Mention + "\n" +
                                        "Group not found, quitting!";

                    await msgEnd.ModifyAsync(x => x.Content = endMessage);

                    Vars.activeCommands.RemoveAll(x => x.ActorID == Context.User.Id);


                    await Context.Message.DeleteAsync();

                    return;
                }

                Vars.tableEntries.Add(groupFromDB);

                groupCommand.CommandData = groupFromDB.KinkGroupID.ToString();
                groupCommand.CommandStep = 1;

                string newMessage = "Welcome " + Context.User.Mention + "\n" +
                                    "Edit Group Step 1: Enter New Name, or Fartz to skip";

                ulong msgToEditID = groupCommand.MessageID;

                var msgToEdit = (RestUserMessage)await Context.Channel.GetMessageAsync(msgToEditID, CacheMode.AllowDownload);

                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                await Context.Message.DeleteAsync();
            }

            else if (groupToEdit != null && groupCommand.CommandStep == 1)
            {
                string newGroupName = Context.Message.Content;

                if (!newGroupName.Equals("fartz", StringComparison.OrdinalIgnoreCase))
                {
                    groupToEdit.KinkGroupName = newGroupName;

                    KinkGroup kinkToCheck = Vars.tableEntries.Where(x => x.GetType().Name == "KinkGroup").ToList().Cast <KinkGroup>().ToList().Where(x => x.KinkGroupID.ToString() == groupCommand.CommandData).FirstOrDefault();

                    if (groupToEdit.KinkGroupName != kinkToCheck.KinkGroupName)
                    {
                        Console.WriteLine("Kink in edit list not updating");
                    }
                }

                groupCommand.CommandStep = 2;

                string newMessage = "Welcome " + Context.User.Mention + "\n" +
                                    "Edit Kink Step 2: Enter New Description, or Fartz to skip";

                ulong msgToEditID = groupCommand.MessageID;

                var msgToEdit = (RestUserMessage)await Context.Channel.GetMessageAsync(msgToEditID, CacheMode.AllowDownload);

                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                await Context.Message.DeleteAsync();
            }

            else if (groupToEdit != null && groupCommand.CommandStep == 2)
            {
                string newKinkDescrip = Context.Message.Content;
                if (!newKinkDescrip.Equals("fartz", StringComparison.OrdinalIgnoreCase))
                {
                    groupToEdit.KinkGroupDescrip = newKinkDescrip;

                    KinkGroup kinkToCheck = Vars.tableEntries.Where(x => x.GetType().Name == "KinkGroup").ToList().Cast <KinkGroup>().ToList().Where(x => x.KinkGroupID.ToString() == groupCommand.CommandData).FirstOrDefault();

                    if (groupToEdit.KinkGroupDescrip != kinkToCheck.KinkGroupDescrip)
                    {
                        Console.WriteLine("Kink in edit list not updating");
                    }
                }

                await Context.Message.DeleteAsync();


                string newMessage = "Welcome " + Context.User.Mention + "\n" +
                                    "Now updating entry with new Name and Description: \n"
                                    + "Name: " + groupToEdit.KinkGroupName + "\n"
                                    + "Desc: " + groupToEdit.KinkGroupDescrip + "\n";


                ulong msgToEditID = groupCommand.MessageID;

                var msgToEdit = (RestUserMessage)await Context.Channel.GetMessageAsync(msgToEditID, CacheMode.AllowDownload);

                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                await DataMethods.EditGroup(groupToEdit.KinkGroupID, groupToEdit.KinkGroupName, groupToEdit.KinkGroupDescrip);


                await Task.Delay(1000);

                newMessage += "\n.";
                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                await Task.Delay(1000);

                newMessage += ".";
                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                await Task.Delay(1000);

                newMessage += ".";
                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                await Task.Delay(1000);

                newMessage += " Done.";
                await msgToEdit.ModifyAsync(x => x.Content = newMessage);

                Vars.activeCommands.RemoveAll(x => x.ActorID == Context.User.Id);

                Vars.tableEntries.RemoveAll(x => x.GetType().Name == "KinkGroup" && (x as KinkGroup).KinkGroupID == groupToEdit.KinkGroupID);
            }
        }
コード例 #3
0
        public async Task GroupMenuCreator(SocketCommandContext Context)
        {
            if (Context.Channel.Id != Vars.menuBuilder.ChannelID)
            {
                return;
            }

            if (!Vars.menuBuilder.IsActive)
            {
                return;
            }

            var emojiMenuMsg = (RestUserMessage)await Context.Channel.GetMessageAsync(Vars.menuBuilder.EmojiMenuID);

            var editMenuMsg = (RestUserMessage)await Context.Channel.GetMessageAsync(Vars.menuBuilder.EditMenuID);



            if (Vars.menuBuilder.CommandStep == 0)
            {
                string groupName = Context.Message.Content;

                KinkGroup groupToMenufy = DataMethods.GetGroup(groupName);

                if (groupToMenufy == null)
                {
                    string quitting = "Invalid group name, quitting!";
                    await emojiMenuMsg.ModifyAsync(x => x.Content = quitting);

                    await editMenuMsg.ModifyAsync(x => x.Content = quitting);

                    WipeMenuBuilder();
                    return;
                }

                Vars.menuBuilder.CommandStep   = 1;
                Vars.menuBuilder.KinkGroupName = groupToMenufy.KinkGroupName;
                Vars.menuBuilder.KinkGroupID   = groupToMenufy.KinkGroupID;
                Vars.menuBuilder.KinksToUpdate = DataMethods.GetKinksInGroupWithEmojis(groupToMenufy.KinkGroupID, Vars.menuBuilder.ServerID);

                Console.WriteLine("We're passing GetKinksInGroupWithEmojis.");



                if (Vars.menuBuilder.KinksToUpdate == null)
                {
                    string quitting = "No kinks in group, quitting!";
                    await emojiMenuMsg.ModifyAsync(x => x.Content = quitting);

                    await editMenuMsg.ModifyAsync(x => x.Content = quitting);

                    WipeMenuBuilder();
                    return;
                }

                Console.WriteLine("We're passing kinkstoupdate null check.");

                //CONSOLE DATA CHECK
                Console.WriteLine("Writing kinks to update\n");
                foreach (var kink in Vars.menuBuilder.KinksToUpdate)
                {
                    Console.WriteLine("name - " + kink.KinkName + ", group - " + kink.KinkGroupID + "\n");
                }
                Console.WriteLine("Done");

                string emojiMenuText = "​\n" + "Building Menu" + "\n​" + "\n​"
                                       + "Group - " + Vars.menuBuilder.KinkGroupName + "\n​";
                await emojiMenuMsg.ModifyAsync(x => x.Content = emojiMenuText);

                string editMenuText = "​\n" + "Edit Menu" + "\n​" + "\n​"
                                      + "Valid group name!" + "\n​";

                await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);

                await Task.Delay(2000);

                editMenuText += "​\n" + "Is this a kink menu or a limit menu? Enter Kink, Limit, or anything else to quit" + "\n​";
                await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);
            }
            else if (Vars.menuBuilder.CommandStep == 1)
            {
                string limitOrKink = Context.Message.Content;
                limitOrKink.ToLower();
                limitOrKink = char.ToUpper(limitOrKink[0]) + limitOrKink.Substring(1);


                if (limitOrKink != "Limit" && limitOrKink != "Kink")
                {
                    string quitting = "Invalid response, quitting!";
                    await emojiMenuMsg.ModifyAsync(x => x.Content = quitting);

                    await editMenuMsg.ModifyAsync(x => x.Content = quitting);

                    WipeMenuBuilder();
                    return;
                }

                if (limitOrKink.Equals("limit", StringComparison.OrdinalIgnoreCase))
                {
                    Vars.menuBuilder.IsLimitMenu = true;
                }

                Vars.menuBuilder.CommandStep++;

                string emojiMenuText = "​\n" + "Building Menu" + "\n​" + "\n​"
                                       + limitOrKink + " Group - " + Vars.menuBuilder.KinkGroupName + "\n​";
                await emojiMenuMsg.ModifyAsync(x => x.Content = emojiMenuText);


                string editMenuText = "​\n" + "Edit Menu" + "\n​" + "\n​"
                                      + "Valid Entry!" + "\n​";

                await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);

                await Task.Delay(2000);

                editMenuText += "​\n" + "Reuse emoji data or enter everything from scratch? Reuse, Scratch, or anything else to quit" + "\n​";
                await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);
            }
            else if (Vars.menuBuilder.CommandStep == 2)
            {
                Vars.menuBuilder.CommandStep = 3;
                string limitOrKink    = Vars.menuBuilder.IsLimitMenu ? "Limit" : "Kink";
                string reuseOrScratch = Context.Message.Content;
                reuseOrScratch.ToLower();
                reuseOrScratch = char.ToUpper(reuseOrScratch[0]) + reuseOrScratch.Substring(1);


                if (reuseOrScratch != "Reuse" && reuseOrScratch != "Scratch")
                {
                    string quitting = "Invalid response, quitting!";
                    await emojiMenuMsg.ModifyAsync(x => x.Content = quitting);

                    await editMenuMsg.ModifyAsync(x => x.Content = quitting);

                    WipeMenuBuilder();
                    return;
                }

                if (reuseOrScratch == "Scratch")
                {
                    foreach (KinkWithEmoji kinkWE in Vars.menuBuilder.KinksToUpdate)
                    {
                        kinkWE.ServerID  = 0;
                        kinkWE.EmojiName = "";
                    }
                }

                await emojiMenuMsg.RemoveAllReactionsAsync();

                string emojiMenuText = "​\n" + "Building Menu" + "\n​" + "\n​"
                                       + "**" + limitOrKink + " Group - " + Vars.menuBuilder.KinkGroupName + "**" + "\n" + "\n​";
                await emojiMenuMsg.ModifyAsync(x => x.Content = emojiMenuText);

                string editMenuText = "​\n" + "Edit Menu" + "\n​" + "\n​"
                                      + "Valid Entry!" + "\n​";

                var setKinks = Vars.menuBuilder.KinksToUpdate.Where(x => x.EmojiName != "").ToList();

                foreach (var kinkWE in setKinks)
                {
                    IEmote myEmote = null;
                    if (Emote.TryParse(kinkWE.EmojiName, out Emote shitfartz))
                    {
                        myEmote = shitfartz;
                    }
                    else
                    {
                        myEmote = new Emoji(kinkWE.EmojiName);
                    }

                    //= Emote.TryParse(kinkWE.EmojiName, out Emote shitfartz) ? shitfartz : new Emoji(kinkWE.EmojiName);

                    /*
                     * var anEmoji = Context.Guild.Emotes.Where(x => x.Name == kinkWE.EmojiName).FirstOrDefault();
                     *
                     * string anEmojiString = anEmoji.ToString();
                     */
                    emojiMenuText += myEmote + " " + kinkWE.KinkName + " - " + kinkWE.KinkDesc + "\n" + "\n​";

                    await Task.Delay(1000);

                    await emojiMenuMsg.ModifyAsync(x => x.Content = emojiMenuText);

                    await emojiMenuMsg.AddReactionAsync(myEmote);
                }

                //Guild.Emotes.Where(x => x.Name == kinkToUpdate.EmojiName).FirstOrDefault();


                await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);

                //remember if you do reuse that this may not work cause it
                // could be full

                if (!Vars.menuBuilder.KinksToUpdate.Any(x => x.EmojiName.Equals("")))
                {
                    string building = "Building Menu" + "\n​" + "\n​";
                    emojiMenuText = emojiMenuText.Remove(emojiMenuText.IndexOf(building), building.Length);

                    editMenuText += "​\n" + "You are all out of kinks to enter! Writing Menu to Database!" + "\n​";
                    await DataMethods.AddKinkMenu();

                    await Task.Delay(2000);

                    await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);

                    await emojiMenuMsg.ModifyAsync(x => x.Content = emojiMenuText);

                    WipeMenuBuilder();

                    return;
                }

                string firstKinkName = Vars.menuBuilder.KinksToUpdate.Where(x => x.EmojiName.Equals("")).FirstOrDefault().KinkName;
                editMenuText += "​\n" + "Please react to THIS post with the emoji for: " + firstKinkName + "\n​";

                await Task.Delay(2000);

                await editMenuMsg.ModifyAsync(x => x.Content = editMenuText);
            }
        }