public static Embed ToErrorEmbed <T>(this CommandResult <T> result) { var eb = new ErrorEmbedBuilder() .WithErrorMessage(result.FailureReason !); return(eb.Build()); }
public async Task ViewAsync(int applicationId) { var query = new GetById.Query { Id = applicationId }; var app = await _mediator.Send(query); if (app is null) { var errorEmbed = new ErrorEmbedBuilder() .WithErrorMessage($"Application with ID `{applicationId}` does not exist.") .Build(); await Context.Channel.SendEmbedAsync(errorEmbed); return; } var embed = new EmbedBuilder() .AddField($"{app.AppStatus.ToString().ToUpper()}: Application by {app.AuthorName}", $"Author's Discord ID: {app.AuthorDiscordId}\nApplication ID: {app.AppId}") .AddField("Provided details", string.IsNullOrWhiteSpace(app.MessageContent) ? "*Player did not provide any details.*" : app.MessageContent) .AddField("Link to original message", app.MessageUrl) .WithThumbnailUrl(app.ImageUrl) .WithFooter($"Applied at {app.AppTime}") .WithApplicationStatusColour(app.AppStatus) .Build(); await Context.Channel.SendEmbedAsync(embed); }
private async Task BotMessageReceivedAsync(SocketMessage message) { if (message.Author.IsBot) { return; } if (!(message is SocketUserMessage userMessage)) { return; } var argPos = 0; if (userMessage.Channel.Name.Equals(_config.ChannelNames.MemberApps) && message.Attachments.Count != 0) { var channel = userMessage.Channel; using (var scope = Services.CreateScope()) { var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); await mediator.Send(new CreateFromUserMsg.Command { UserMessage = userMessage }); } await channel.SendMessageAsync( "Your application has been submitted and you will be pinged once it has been processed."); return; } if (!userMessage.HasCharPrefix(_config.Prefix, ref argPos)) { return; } _botService.ExecuteHandlerAsynchronously( handler: (client) => { var context = new SocketCommandContext(client, userMessage); return(_commandService.ExecuteAsync(context, argPos, _provider)); }, callback: async(result) => { if (result.IsSuccess) { return; } if (result.Error == CommandError.UnknownCommand) { return; } if (result.Error.HasValue) { var embed = new ErrorEmbedBuilder() .WithErrorMessage($"{result.Error.Value}; {result.ErrorReason}") .Build(); await message.Channel.SendEmbedAsync(embed); } }); }