Desculpe pelo meu inglês ruim
- Node.js
- Discord.js (Comunicação com a API do discord)
- Postgres (Persistencia de alguns dados)
- pg (Conexão no banco | Querys são feitas manualmente)
- Redis (cache)
- Docker (Containers)
- CommandKit library (Event and command handler)
- /clear (limpa as mensagens do chat)
- /blacklist [subCommand] (Adiciona palavras a blacklist)
- /ping (Mostra o ping do bot)
- /setup (Configura o banco de dados da guild)
- /timeout [subCommand] (Deixa o usuário selecionado impossibilitado de digitar em chats ou remove seu timeout)
- /bot [subCommand] (Da reload em algumas features do bot, como commands, event listeners e validations)
- /choose (text[]) (Escolhe aleatoriamente entre as opções passadas pela option)
- /help (Mostra todos os comandos cadastrados e suas opções)
- /warn [subCommand] (Sistema de warns)
- /dm (user) (text) (Envia uma mensagem para um usuário especifico pela DM)
- etc etc
Para executar o projeto, você primeiro precisa baixar o repositório na sua maquina, utilizando:
Git clone https://github.com/hiroshimorowaka/discordbotjs.git
ou baixando de forma zipada e descompactando na sua pasta.
- Docker Engine v24.0.6 com Docker Compose v2.22.0
- Node.js v20.8.0
Após baixar o repositório, não se esqueça de instalar as dependências locais do projeto:
npm install
Crie um arquivo
.env.development
na raiz do projeto e popule com as variáveis de ambiente do seu bot baseado no arquivo já existente.env.template
(caso você não saiba criar um bot no discord, clique aqui)
Depois de feito toda a configuração do .env
e das dependências, você irá precisar configurar o arquivo config.json
e o status.json
-
O
config.json
possui um objeto com duas chaves:testServers
,devs
,logs
Esses parametros recebem um array com o ID dos servidores de testes que comandos marcados comdevsOnly
será registrado e odevs
que é o ID das pessoas que são desenvolvedores que receberão permissão de executar esses comandos Mais informações sobre os comandos em: -
O
status.json
possui um array com multiplos objetos, e dentro de cada objeto possui as chaves:name
etype
.
Name
é a chave que define a frase que você quer que apareça no status do bot
Type
é o tipo de status que você quer que apareça no bot (listening/playing etc)
Você pode ter multiplos objetos para que fique fazendo um looping entre eles dentro de 10 segundos, mas caso você não queira fazer nenhum looping, você pode definir somente UM status nostatus.json
Mais informações sobre status em:
Depois de fazer todas as etapas acima, seu bot já está pronto para ser executado!
Agora é só startar o projeto com
npm run dev
, e ele irá subir os container e executar o projeto;
npm run start
roda o projeto carregando as variaveis de dentro do.env.development
, o que é somente utilizado para cenário de produção dentro da sua hospedam. No meu caso eu uso a Squarecloud.Para derrubar os container ou subi-los sem executar o projeto, existem os comandos:
npm run up:services
Subir os containers
npm run down:services
Derrubar os containers
npm run stop:services
Parar os container respectivamente