Pequenas adições e algumas mudanças para melhorar o uso de certas funções chegaram nessa atualização, algumas melhorias e correções também estão presentes, confira:
Comando para executar a CLI
Logs no terminal
O estilo das logs foi alterado para ficar mais minimalista e simples, a lib consola
foi removida da base, agora com um objeto próprio de logs chamado logger
, você pode exibir logs customizadas no terminal.
Caso queira exibir logs com algumas estilizações, importe o objeto logger de ##settings
:
Opção verbose
Depois de alguns relatos de pessoas dizendo que os comandos não estavam sendo registrados, foi adicionada a opção verboose
para exibir uma resposta direta da API do discord para que você tenha certeza de que eles foram registrados. Assim é possível concluir que se você não está vendo os comandos do seu bot no discord, o problema está em outro lugar.
Ativando essa opção, assim que os comandos forem registrados, será exibido no terminal informações sobre eles, como id
, aplicação
e data de criação
do comando:
Tsup compiler
Agora ao gerar um novo projeto com a CLI, na parte de Extra features você pode escolher se deseja adicionar o Tsup compiler.
A compilação do projeto é feita muito mais rápida do que usando o tsc
padrão. Mas não há verificação de tipos, então é recomendado usar o script check
para verificar os tipos.
Você pode pensar que isso não faz diferença ou até aumenta o tempo de build, já que o comando check basicamente é o comando de build do tsc mas sem emitir os arquivos, mas você pode usar o comando de check localmente durante o desenvolvimento, porém ao enviar o projeto para hospedagens, instruir que execute apenas o comando de build, pois a verificação de tipos já foi feita localmente, assim tendo um menor gasto de memória ram e menor tempo para iniciar.
Opções de eventos
Agora você pode definir um middleware e um manipulador de erros para os eventos. Vamos começar falando do manipulador de erros:
Manipulador de erros de eventos
Na função setupCreators
, defina uma função que será executada quando ocorrer um erro em algum evento:
A propriedade event
é um objeto contendo o nome do evento e os argumentos que ele recebeu:
A tipagem dos argumentos é definida automaticamente após verificar o nome do evento
Dessa forma você pode criar diversos manipuladores de erros diferentes para vários tipos de eventos.
Middleware de eventos
Você pode definir uma função middleware
que será executada antes da função run
dos eventos
Assim como nos comandos e responders, você pode fazer muita coisa com isso, como exibir logs padronizadas para todos os eventos executados, injetar informações adicionais nos argumentos de eventos específicos, ou até mesmo bloquear a execução com base em checagens.
A função block
funciona igual nos middlewares de comandos e eventos, mas com uma pequena adição:
No caso dos eventos também é possível passar tags como argumento da função block, dessa maneira, você pode ter 3 eventos do mesmo tipo, por exemplo messageCreate
, mas bloquear apenas aqueles com as tags previamente definidas:
Você pode passar quantas tags quiser para função block
Todos os eventos que conter alguma das tags passadas como argumento da função block, não serão executados.
Opções Autocomplete
Foi adicionado um ajudante para funções que respondem opções autocomplete
, agora ao invés de usar o método respond
da interação, e limitar o array de escolhas, você pode apenas retornar o array que a base fará isso para você, veja:
Você ainda pode usar o método respond
da interação se preferir:
Qualidade de vida
A posição dos argumentos da função middleware
dos responders
foi alterada para condizer com as outras funções de middleware
:
- Agora a versão da base quando ela foi gerada é exibida nas logs ao iniciar o bot.
- O anti-crash que só era ativado após o bot ficar online, agora está ativo desde o início.
- A lib
@magicyan/discord
foi atualizada para a sua versão mais recente:1.3.1
. - Todas as dependencias no package.json vem com a versão exata (sem o prefixo
^
). - Foi adicionada na documentação, informações sobre o função
autocomplete
, opção global dos comandos e de todas as novidades deste blog.
Conclusão
Estes novos recursos da base estão em um estado experimental, pode haver bugs ou erros inesperados, caso encontre algum, reporte diretamente no discord Zunder Community.
Novidades, atualizações, alterações, dicas e muito mais será postado neste blog! Se você quiser ser notificado sempre que uma nova postagem for publicada, entre no discord Zunder Community ou Siga @rinckodev no twitter/x