Pesquisar aqui

sábado, 28 de novembro de 2020

Discord bot em Node.js - Somar?

Passo 4 — Implementando o comando "Sum" ihih

Agora, irás estender o teu programa implementando o comando "! sum". O comando irá tomar qualquer número de argumentos e adicioná-los, antes de retornar a soma de todos os argumentos ao usuário.

Se o bot Discord ainda estiver em execução, podes parar o seu processo com CTRL + C.

Abre o arquivo index.js novamente:

  • nano index.js

Para começar a implementar o comando "! sum", usarás um bloco else-if. Depois de verificar o nome do comando ping, ele irá verificar se o nome do comando é igual a "sum". Usamos um bloco else-if já que apenas um comando irá processar de cada vez, então se o programa corresponder ao nome de comando "ping", ele não precisa verificar o comando "sum". Adiciona as seguintes linhas destacadas ao  arquivo:

index.js
...
  if (command === "ping") {
    const timeTaken = Date.now() - message.createdTimestamp;
    message.reply(`Ping! This message had a latency of ${timeTaken}ms.`);
  }

  else if (command === "sum") {
                               
  }                            
});
...

Pode começar a implementar o código para o comando "sum". O código para o comando "sum" irá entrar dentro do bloco else-if que acabaste de criar. Agora, adiciona o código a seguir:

index.js
...
  else if (command === "sum") {
    const numArgs = args.map(x => parseFloat(x));
    const sum = numArgs.reduce((counter, x) => counter += x);
    message.reply(`The sum of all the arguments you provided is ${sum}!`);
  }
...

Tás a usar o método map na lista argumentos para criar uma nova lista usando a função parseFloat em cada item no array args. Isso cria um novo array (atribuído à constante numArgs) no qual todos os itens são números em vez de strings. Isso significa que mais tarde podes encontrar com sucesso a soma dos números adicionando-os.

A segunda linha usa o método reduce na constante numArgs, fornecendo uma função que totaliza todos os elementos na lista. Atribuis a soma de todos os elementos em numArgs à constante. sum.

Em seguida, você usa o método reply no objeto message para responder ao comando do usuário com modelo literal, que contém a soma de todos os argumentos que o usuário envia para o bot.

Isso conclui a implementação do comando "sum". Agora, liga o bot usando o comando a seguir (na mesma pasta que index.js):

  • node index.js

Agora, podes usar o comando "! sum"” em qualquer canal em que o bot possa visualizar e enviar mensagem.

Image of bot replying "The sum of all the arguments you provided is 6!" to "! sum 1 2 3", then replying "The sum of all the arguments you provided is 13! to "! sum 1.5 1.5 10"

Sem comentários:

Enviar um comentário

Comente de forma construtiva...

Nota: só um membro deste blogue pode publicar um comentário.