He4rt Discord Bot
## Comandos
- `/anunciar` (ADM)
- `/falar` (ADM)
- `/cargo-criar` (ADM)
- `/cargo-deletar` (ADM)
- `/versao` (ADM)
- `/banir` (ADM|MOD)
- `/desbanir` (ADM|MOD)
- `/silenciar` (ADM|MOD)
- `/observar` (ADM|MOD)
- `/observar-lista` (ADM|MOD)
- `/observar-remover` (ADM|MOD)
- `/chat` (ADM|MOD)
- `/limpar` (ADM|MOD)
- `/cor` (PRIVILEGIADOS)
- `/reputacao` (DESATIVADO)
- `/especial`
- `/sala`
- `/sala-transferir`
- `/sala-limite`
- `/avaliar`
- `/apoiase`
- `/bonus`
- `/apresentar`
- `/perfil`
- `/perfil-editar`
- `/perguntar`
- `/medalha`
- `/medalha-adicionar` (ADM|MOD)
- `/ranqueamento`
- `/distintivo`
- `/distintivo-criar` (ADM)
- `/codigo`
- `/forum`
- `/forum-fechar`
- `/reuniao-iniciar` (ADM)
- `/reuniao-finalizar` (ADM)
- `/reuniao-ata` (ESCRIVÃO)
- `/onboarding`
- `/onboarding-requisitar`
- `/onboarding-voluntariar`
- `/onboarding-finalizar`
- `/onboarding-desistir`
## Contribuidores
A He4rt Developers agradece a todos os contribuidores acima e aos contribuidores [da primeira versão](https://github.com/he4rt/He4rt-Bot/blob/master/README.md#-contribuidores)!
## Guia de Contribuição
Caso deseje contribuir com a ferramenta, siga as seguintes instruções:
## Requisitos
- [Discord Development Portal](https://discord.com/developers/docs/intro)
- [Discord Permissions](https://discordapi.com/permissions.html)
- [discord.js Guide](https://discordjs.guide/#before-you-begin)
- [discord.js Docs](https://discord.js.org/)
- [GIT](https://git-scm.com/)
- [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
- [Node 16.18.1](https://nodejs.org/en/)
- [PNPM](https://pnpm.io/pt/)
> ATENÇÃO! Siga os guias do portal do desenvolver e convide o bot para o seu servidor usando o Discord Permissions para facilitar o seu trabalho.
### Rodar
- Clone o repositório
- Instale as dependências usando `pnpm install`
- Copie as chaves secretas usando:
```
cp .env.example .env
```
> Itens com o prefixo `HE4RT_` indicam env do [discord-bot-api](https://github.com/he4rt/he4rt-bot-api), `FIREBASE_` do [firebase](https://firebase.google.com/?hl=pt-br), `APOIASE_` do [apoia.se](https://github.com/he4rt/he4rt-bot-api). Essencialmente, você >não< precisa desses tokens para rodar o bot, apenas para testar comandos que dependem destas chaves. Caso queira usar o firebase, crie o seu json de admin na raiz do projeto com o nome `firebase_admin.json`.
- Use o comando `pnpm dev`
> ATENÇÃO! Caso use o comando `pnpm dev` e dê algum erro, aperte `Ctrl + S` em um arquivo `.ts` para ele recompilar a aplicação. As vezes a aplicação não vai responder, exigindo que cancele a operação, aguarde alguns segundos e execute `pnpm dev`
### Estrutura
```
.
├── client # Anexos para o cliente padrão do `discord.js`
├── commands # Comandos do BOT
├── defines # Definições
├── events # Eventos temporizados, sequenciais e do discord.js
├── http # Construtores HTTP
| global.d.ts # Tipos do NodeJS e derivados
| index.ts # Ponto de partida para a inicialização do BOT
| main.ts # Criação do cliente do `discord.js`
| types.ts # Tipagem
| utils.ts # Funções para uso genérico em outros arquivos
```
> Os arquivos de sufixo \_development são variações usadas em modo de desenvolvedor (pnpm dev), com o `ids_development` indicando id's de nosso servidor de teste e com o `ids.json` indicando id's o nosso servidor do discord. Caso queira entrar no servidor de desenvolvimento, contate um dos administradores no discord.
> Caso queira criar um novo comando, copie o de exemplo em src/commands/example.ts e consulte os outros para entender o padrão