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); }
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); }
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); }
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); }
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); }