hiroshimorowaka / discordbotjs

Bot ulta simples de discord feito por um iniciante em programação

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hiroshi's Discord BOT

Objetivo: Estudar novas coisas, como Redis, postgres, Discord.js e etc.

Nível atual como programador: Iniciante

Desculpe pelo meu inglês ruim

Stack

  • 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)

Features

  • /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

Como executar o projeto:

Baixar o repositório

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.

Depêndencias globais:

  • Docker Engine v24.0.6 com Docker Compose v2.22.0
  • Node.js v20.8.0

Dependências locais

Após baixar o repositório, não se esqueça de instalar as dependências locais do projeto:

npm install

Configuração inicial

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)

Configurando o BOT

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 com devsOnly será registrado e o devs 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 e type.
    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 no status.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

About

Bot ulta simples de discord feito por um iniciante em programação


Languages

Language:JavaScript 100.0%