public async Task <TypesData> GetTypesRaw() { try { return(await _weebClient.GetTypesAsync()); } catch (Exception exception) { Console.WriteLine(exception); return(null); } }
public async Task AddInteractions(CommandService service) { if (!this.IsAuthenticated) { return; } var types = await WeebClient.GetTypesAsync().ConfigureAwait(false); if (types == null || types.Types.Count == 0) { return; } await service.CreateModuleAsync("", build => { build.Name = "Interactions"; build.Summary = "All available interaction commands"; foreach (var type in types.Types) { build.AddCommand(type, async(context, objects, serviceProvider, commandInfo) => { var image = await this.WeebClient.GetRandomAsync(type, Array.Empty <string>()).ConfigureAwait(false); if (image == null) { await context.Channel.SendMessageAsync("", embed: new EmbedBuilder() { Color = SoraSocketCommandModule.Red, Title = $"{SoraSocketCommandModule.FAILURE_EMOJI} Failed to fetch image :/ Try another one." }.Build()); return; } var eb = new EmbedBuilder() { Color = SoraSocketCommandModule.Purple, Footer = new EmbedFooterBuilder() { Text = "Powered by weeb.sh and the weeb.net wrapper" }, ImageUrl = image.Url }; var mentions = context.Message.MentionedUserIds .Where(id => id != context.User.Id && id != context.Client.CurrentUser.Id) .ToArray(); if (mentions.Length == 0) { await context.Channel.SendMessageAsync("", embed: eb.Build()); return; } // Otherwise create a nice title var tasks = mentions .Select(async x => await context.Guild.GetUserAsync(x).ConfigureAwait(false)); var res = (await Task.WhenAll(tasks).ConfigureAwait(false)) .Where(u => u != null) .Select(Formatter.UsernameDiscrim); var title = String.Join(", ", res); if (title.Length > 150) { title = $"{title.Remove(150)}..."; } title = GetTitle(type, Formatter.UsernameDiscrim(context.User), title); if (title != null) { eb.Title = title; } await context.Channel.SendMessageAsync("", embed: eb.Build()); }, builder => { builder.AddParameter("users", typeof(string), parameterBuilder => { parameterBuilder.IsRemainder = true; parameterBuilder.IsOptional = true; }); }); } }); }
public async Task <TypesData> GetTypessAsync(bool hidden) { return(await weebClient.GetTypesAsync(hidden)); //hidden is always defaulted to false }