1
resposta

Criando uma linha de comando com vários argumentos usando DSharpPlus?

Estou começando a programar em C# e como projeto pessoal estou criando um Bot para Discord de rolagem de dados utilizando o DSharpPlus.

Meu problema está em como fazer para identificar os argumentos (não sei se estou usando o termo correto) no comando digitado no Discord. (ex.: /roll 6 -dif 5 -esp)

Quando digito /roll 6 tenho o retorno de seis números gerados pelo Bot. (consegui chegar até aqui)

Mas o que quero é que, quando digitasse -dif 5 por exemplo, eu teria o retorno de quantos resultados estão acima ou abaixo do 5 nesse caso.

E no caso do -esp preciso que o Bot apenas reconheça se esse argumento está ou não no comando usado, para que eu coloque esse resultado numa variável booleana.

Os métodos e classes para ter esses resultados eu já escrevi, só não consigo fazer a conexão entre meu código e o comando do Bot.

Esse é o comando que escrevi até agora para executar o comando /roll no Discord.

[Command("roll")]
[Aliases("r")]
public async Task Rolagem(CommandContext ctx, int dado)
{
    Dados jogada = new Dados();
    jogada.Rolagem(dado);

    var janela = new DiscordEmbedBuilder
    {
        Title = "Resultado",
        Color = DiscordColor.DarkRed,
        Description = $"Rolagem: {jogada.ExibirResultado}"                
    };

    await ctx.Channel.SendMessageAsync(embed: janela).ConfigureAwait(false);
}
1 resposta

Olá!

Peço desculpas pela demora em obter um retorno

Para identificar os argumentos em um comando digitado no Discord utilizando o DSharpPlus em C#, você pode utilizar o método ParseString da classe CommandContext. Esse método permite que você identifique os argumentos passados no comando e os utilize em seu código.

Aqui estão alguns materiais que podem ajudar você a aprender mais sobre programação em C# e desenvolvimento de bots para Discord:

Espero ter ajudado, um grande abraço e até mais!