Esempio n. 1
0
        internal override async Task <bool> Run()
        {
            int?wheelDifficulty = null;

            while (!wheelDifficulty.HasValue)
            {
                var builder = new DiscordEmbedBuilder()
                {
                    Title = "How Difficult would you like the Wheel to be? Lower Difficulties will lower your required Edges and work, but also your Chance for a good ending :)",
                    Url   = "http://IJustWantThisToBeBlue.com"
                };

                builder.AddField("Easiest Setting. Almost no Edges, will leave you in ruins.", WheelExtension.WheelDifficultyPreference.Baby.ToString());
                builder.AddField(
                    "Easy Setting, for when you are just starting with Edging.",
                    WheelExtension.WheelDifficultyPreference.Easy.ToString());
                builder.AddField(
                    "Default. This is how the Wheel was before the Settings arrived, and how it is before you set up the settings.",
                    WheelExtension.WheelDifficultyPreference.Default.ToString());
                builder.AddField("Pretty Challenging.", WheelExtension.WheelDifficultyPreference.Hard.ToString());
                builder.AddField("This will make every single roll Hardcore. High risk, High reward though.", WheelExtension.WheelDifficultyPreference.Masterbater.ToString());

                await _dm.SendMessageAsync(embed : builder.Build());

                var m = await _ctx.Client.GetInteractivityModule().WaitForMessageAsync(
                    x => x.Channel.Id == _dm.Id &&
                    x.Author.Id == _ctx.Member.Id,
                    TimeSpan.FromSeconds(240));

                if (m == null)
                {
                    await _dm.SendMessageAsync($"Or just don't respond at all. That's ok too :(");

                    return(false);
                }

                if (Enum.TryParse(m.Message.Content, true, out WheelExtension.WheelDifficultyPreference wheelDifficultyPreference))
                {
                    wheelDifficulty = (int)wheelDifficultyPreference;
                }
                else
                {
                    await _dm.SendMessageAsync($"Sorry, I didn't ge that. You have to precisely enter the name of one of the difficulties.");
                }
            }

            await UserSettingExtension.SetSettingAsync(_userId, UserSettingExtension.SettingID.WheelDifficulty, wheelDifficulty.ToString(), _context);

            return(true);
        }
Esempio n. 2
0
        public async Task ApplySettings(DiscordContext context = null)
        {
            if (context == null)
            {
                context = new DiscordContext();
            }

            var userId = _settings.Values.First().UserId;

            foreach (var setting in _settings)
            {
                await UserSettingExtension.SetSettingAsync(userId, setting.Key, setting.Value.Value, context, false);
            }

            await context.SaveChangesAsync();
        }
        internal override async Task <bool> Run()
        {
            WheelExtension.WheelTaskPreferenceSetting?wheelTaskPreference = null;

            var builder = new DiscordEmbedBuilder()
            {
                Title = "What kind of task do you prefer? There are no penalties here.",
                Url   = "http://IJustWantThisToBeBlue.com"
            };

            builder.AddField("Edge for 15 Minutes. 30 second Cooldown.", WheelExtension.WheelTaskPreferenceSetting.Time.ToString());
            builder.AddField("Edge 10 times.", WheelExtension.WheelTaskPreferenceSetting.Amount.ToString());
            builder.AddField("Edge 10 times per day, for the next 2 Days.", WheelExtension.WheelTaskPreferenceSetting.Task.ToString());
            builder.AddField("No preference", WheelExtension.WheelTaskPreferenceSetting.Default.ToString());

            await _dm.SendMessageAsync(embed : builder.Build());

            var m = await _ctx.Client.GetInteractivityModule().WaitForMessageAsync(
                x => x.Channel.Id == _dm.Id &&
                x.Author.Id == _ctx.Member.Id,
                TimeSpan.FromSeconds(240));

            if (m == null)
            {
                await _dm.SendMessageAsync($"Or just don't respond at all. That's ok too :(");

                return(false);
            }

            if (Enum.TryParse(m.Message.Content, true, out WheelExtension.WheelTaskPreferenceSetting wheelPreferenceSetting))
            {
                wheelTaskPreference = wheelPreferenceSetting;
            }
            else
            {
                await _dm.SendMessageAsync($"Sorry, i didn't get that. You have to precisely enter the name of one of the possible preferences.");
            }

            UserSetting wheelTaskPreferenceSetting = await UserSettingExtension.SetSettingAsync(_userId, UserSettingExtension.SettingID.WheelTaskPreference, (int)wheelTaskPreference.Value, _context);

            return(true);
        }
Esempio n. 4
0
        internal override async Task <bool> Run()
        {
            int?analLevel = null;

            var builder = new DiscordEmbedBuilder()
            {
                Title = "At which level do you want your anal tasks to be? This is pretty much a difficulty setting.",
                Url   = "http://IJustWantThisToBeBlue.com"
            };

            builder.AddField("If you don't like anal, choose this.", UserSettingExtension.AnalLevel.None.ToString());
            builder.AddField("If you're new to anal, or just not interested that much. take this.", UserSettingExtension.AnalLevel.Light.ToString());
            builder.AddField("This setting is for regular anal", UserSettingExtension.AnalLevel.Normal.ToString());
            builder.AddField("You've got a d***o up your ass even now? Choose this.", UserSettingExtension.AnalLevel.Hardcore.ToString());

            await _dm.SendMessageAsync(embed : builder.Build());

            var m = await _ctx.Client.GetInteractivityModule().WaitForMessageAsync(
                x => x.Channel.Id == _dm.Id &&
                x.Author.Id == _ctx.Member.Id,
                TimeSpan.FromSeconds(240));

            if (m == null)
            {
                await _dm.SendMessageAsync($"Or just don't respond at all. That's ok too :(");

                return(false);
            }

            if (Enum.TryParse(m.Message.Content, true, out UserSettingExtension.AnalLevel analLevelPreference))
            {
                analLevel = (int)analLevelPreference;
            }
            else
            {
                await _dm.SendMessageAsync($"Sorry, I didn't get that. You have to precisely enter the name of one of the levels.");
            }

            await UserSettingExtension.SetSettingAsync(_userId, UserSettingExtension.SettingID.AnalLevel, analLevel.ToString(), _context);

            return(true);
        }
Esempio n. 5
0
        internal override async Task <bool> Run()
        {
            int?gender = null;

            var builder = new DiscordEmbedBuilder()
            {
                Title = "Please specify the Gender which with you want to be addressed.",
                Url   = "https://en.wikipedia.org/wiki/Gender"
            };

            builder.AddField("If you don't want, to set your Gender, use this.", UserSettingExtension.Gender.None.ToString());
            builder.AddField("You have a Penis.", UserSettingExtension.Gender.Male.ToString());
            builder.AddField("You don't have a Penis.", UserSettingExtension.Gender.Female.ToString());

            await _dm.SendMessageAsync(embed : builder.Build());

            var m = await _ctx.Client.GetInteractivityModule().WaitForMessageAsync(
                x => x.Channel.Id == _dm.Id &&
                x.Author.Id == _ctx.Member.Id,
                TimeSpan.FromSeconds(240));

            if (m == null)
            {
                await _dm.SendMessageAsync($"Or just don't respond at all. That's ok too :(");

                return(false);
            }

            if (Enum.TryParse(m.Message.Content, true, out UserSettingExtension.Gender genderPreference))
            {
                gender = (int)genderPreference;
            }
            else
            {
                await _dm.SendMessageAsync($"Sorry, I didn't get that. You have to precisely enter the name of one of the levels.");
            }

            await UserSettingExtension.SetSettingAsync(_userId, UserSettingExtension.SettingID.Gender, gender, _context);

            return(true);
        }
Esempio n. 6
0
        internal override async Task <bool> Run()
        {
            int?bondageLevel = null;

            var builder = new DiscordEmbedBuilder()
            {
                Title = "At which level do you want your bondage tasks to be? This is like a difficulty setting.",
                Url   = "http://IJustWantThisToBeBlue.com"
            };

            builder.AddField("If you don't like bondage, choose this.", UserSettingExtension.BondageLevel.None.ToString());
            builder.AddField("If you're new to bondage, or just not interested that much. take this.", UserSettingExtension.BondageLevel.Light.ToString());
            builder.AddField("This setting is for regular bondage play", UserSettingExtension.BondageLevel.Normal.ToString());
            builder.AddField("You like to rob on the floor, arms bound to your legs? Choose this.", UserSettingExtension.BondageLevel.Hardcore.ToString());

            await _dm.SendMessageAsync(embed : builder.Build());

            var m = await _ctx.Client.GetInteractivityModule().WaitForMessageAsync(
                x => x.Channel.Id == _dm.Id &&
                x.Author.Id == _ctx.Member.Id,
                TimeSpan.FromSeconds(240));

            if (m == null)
            {
                await _dm.SendMessageAsync($"Or just don't respond at all. That's ok too :(");

                return(false);
            }

            if (Enum.TryParse(m.Message.Content, true, out UserSettingExtension.BondageLevel bondageLevelPreference))
            {
                bondageLevel = (int)bondageLevelPreference;
            }
            else
            {
                await _dm.SendMessageAsync($"Sorry, I didn't get that. You have to precisely enter the name of one of the levels.");
            }

            await UserSettingExtension.SetSettingAsync(_userId, UserSettingExtension.SettingID.BondageLevel, bondageLevel.ToString(), _context);

            await _dm.TriggerTypingAsync();

            await Task.Delay(500);

            await _dm.SendMessageAsync($"Do you want to set up your gear as well? If you don't do it, i won't know your items. (Y/N)");

            var addGearResponse = await _ctx.Client.GetInteractivityModule().WaitForMessageAsync(
                x => x.Channel.Id == _dm.Id &&
                x.Author.Id == _ctx.Member.Id,
                TimeSpan.FromSeconds(240));

            if (m == null)
            {
                await _dm.SendMessageAsync($"Or just don't respond at all. That's ok too :(");

                return(false);
            }

            if (Helpers.RegexHelper.YesRegex.Match(addGearResponse.Message.Content).Success)
            {
                bool setupGear = await new BondageGearModule(_context, _dm, _ctx, _userId).Run();

                if (!setupGear)
                {
                    return(false);
                }
            }
            else
            {
                await _dm.TriggerTypingAsync();

                await Task.Delay(500);

                await _dm.SendMessageAsync($"That's ok, you can do it later :)");
            }

            return(true);
        }