Skip to content

Javascript with Discord.js #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/introducao/sobre-nos.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ sidebar_position: 1

# Sobre nós

Somos uma comunidade de desenvolvedores que prezam pela busca do conhecimento e facilidade
no compartilhamento de informações. Não somos uma empresa, mas sim uma organização de membros
que contribuem por vontade própria.
49 changes: 49 additions & 0 deletions docs/linguagens/javascript/construindo/base-bot.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: "Definindo o bot"
sidebar_position: 1
displayed_sidebar: javascriptSidebar
pagination_prev: linguagens/javascript/preparacao
---

# Definindo o bot

Parabéns por chegar até aqui! Agora que você tem o Node.js e o Discord.js instalados no seu projeto, você está pronto para começar a programar o seu bot!

### Criando o Arquivo Principal do Bot
Primeiro, vamos criar um arquivo chamado `index.js` na pasta do seu projeto. Este arquivo será o coração do nosso bot, onde a maior parte do código será escrita. Copie e cole o seguinte código no arquivo `index.js`:

```js title="index.js"
require("dotenv").config()
const { Client, Events, GatewayIntentBits } = require("discord.js")

const client = new Client({ intents: [GatewayIntentBits.Guilds] })

client.once(Events.ClientReady, readyClient => {
console.log(`Ready! Logado como ${readyClient.user.tag}`)
})

client.login(process.env.TOKEN)
```

Este código faz várias coisas. Primeiro, ele carrega o módulo `dotenv`, que nos permite usar variáveis de ambiente para armazenar informações sensíveis, como o token do nosso bot. Em seguida, ele cria uma nova instância do cliente Discord.js, que é o que usaremos para interagir com o Discord. Finalmente, ele faz o login no Discord usando o token do nosso bot.

Depois de adicionar o código, sua pasta de projeto deve conter os seguintes arquivos:

<Directory>
<Directory.Folder name='node_modules' />
<Directory.File name='package.json' />
<Directory.File name='package-lock.json' />
<Directory.File name='index.js' />
<Directory.Env />
</Directory>

### Iniciando o Bot
Agora que temos a base do nosso bot configurada, é hora de ligá-lo! Para fazer isso, abra o terminal na pasta do seu projeto e digite o seguinte comando:

```sh
node .
```

Este comando diz ao Node.js para executar o arquivo `index.js` que acabamos de criar. Se tudo estiver configurado corretamente, você verá uma mensagem dizendo "Ready! Logado como [nome do seu bot]" no terminal.

Parabéns, o seu bot está agora online! No próximo passo, vamos adicionar um comando que permite ao bot responder com o seu ping quando solicitado.
6 changes: 6 additions & 0 deletions docs/linguagens/javascript/construindo/primeiro-comando.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: "Primeiro Comando"
sidebar_position: 2
displayed_sidebar: javascriptSidebar
pagination_prev: linguagens/javascript/construindo/base-bot
---
23 changes: 23 additions & 0 deletions docs/linguagens/javascript/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
sidebar_position: 1
displayed_sidebar: javascriptSidebar
pagination_prev: linguagens/index
pagination_next: linguagens/javascript/preparacao
---

# Introdução

JavaScript com [Discord.js](https://discord.js.org/) é a forma mais popular de criar bots no Discord.
Esse guia vai te ajudar a criar um bot do zero enquanto dá exemplos e explica tópicos como botões, embeds, banco de dados e mais.

# Antes de Começar

Mesmo que o guia te ajude com JavaScript e você possa aprender com ele mesmo sabendo muito pouco de programação, um pequeno conhecimento de JavaScript vai te ajudar a entender de forma mais fácil o guia e fazer você conseguir resolver problemas comuns por si próprio.

Se você não sabe JavaScript, aqui está alguns links para te ajudar a começar:

- [**"Noções básicas de JavaScript"**](https://developer.mozilla.org/pt-BR/docs/Learn/Getting_started_with_the_web/JavaScript_basics);
- [**"O manual de JavaScript para iniciantes"**](https://www.freecodecamp.org/portuguese/news/o-manual-de-javascript-para-iniciantes/);
- [**"Aprenda Fundamentos do JavaScript"**](https://www.brasilcode.com.br/javascript-para-iniciantes-fundamentos-desenvolvimento-front-end-back/).

Escolha um, aprenda JavaScript e depois volte para começar a fazer seu incrível bot!
107 changes: 107 additions & 0 deletions docs/linguagens/javascript/preparacao.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: "Preparação e Instalação"
sidebar_position: 1
displayed_sidebar: javascriptSidebar
pagination_prev: linguagens/javascript/index
pagination_next: linguagens/javascript/construindo/base-bot
---

# Instalando Node.js
Para começar a criar bots, você primeiro precisa instalar [Node.js](https://nodejs.org/).
:::tip[Dica]
Você pode verificar se o Node está instalado no seu sistema usando o comando `node -v`.
:::

### Instalando no Windows
TODO

### Instalando no MacOS

Para instalar Node.js no MacOS você pode:
- Baixar a última versão do [Node.js no website](https://nodejs.org/en/download) para MacOS, abrir o instalador e seguir as instruções;
- Usar um gerenciador de pacotes como [Homebrew](https://brew.sh/) e instalar com o comando `brew install node@20`;
- Usar [NVM](https://github.com/nvm-sh/nvm), o gerenciador de versões do node, e instalar com o comando `nvm install --lts`.

### Instalando no Linux

#### Usando NVM

[NVM](https://github.com/nvm-sh/nvm) é um gerenciador de versões para Node.js. Com ele você pode instalar e usar várias versões do node facilmente.
Para instalar ou atualizar nvm você deve rodar o script de instalação no seu terminal:
```sh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
```
Após isso, feche seu terminal e abrá-o novamente, o comando `nvm` estará disponível para ser usado.
Para baixar e instalar Node.js com nvm, use o comando no terminal:
```sh
nvm install --lts
```
O comando instalará a versão 20 do Node.js no seu computador. Após a instalação ser completa, verifique se o Node está funcionando usando `node -v`.

#### Usando N

[N](https://github.com/tj/n) é um gerenciador de versões para Node.js simples de usar.
Para instalar a versão LTS do Node em seu sistema usando N use esse comando no terminal:
```sh
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | sudo bash -s lts
```
Isso instalará a última versão do Node no seu sistema.
O comando acima não instalará N na sua máquina, para manter N instalado, use:
```sh
sudo npm install -g n
```

# Preparando o Projeto
Para instalar discord.js, você precisa instalar ele via [npm](https://npmjs.org/), o gerenciador de pacotes do Node. npm é incluído em todas as instalações do Node, então você não precisa instalar ele separadamente. Porém, antes de instalar discord.js, você precisa preparar a pasta do seu bot.

:::tip[Dica]
Veja [Como usar o terminal](#) para aprender os básicos de como usar terminal.
:::

### Criando um novo projeto
Crie alguma pasta vazia no seu sistema para ser a pasta do projeto do seu bot.

:::warning[Aviso]
O nome da pasta deve apenas letras, `-` e `_`. O nome da pasta não pode ser `discord.js`.
:::

Após criar a pasta, abra um terminal na pasta e execute o seguinte comando:
```sh
npm init -y
```
Este comando comando cria um arquivo chamado `package.json` que vai guardar todas as dependências de seu projeto e outras informações.

### Instalando a biblioteca discord.js
Agora que você já configurou o Node.js e criou um novo projeto, é hora de instalar a biblioteca `discord.js`. Esta biblioteca permite a interação com a API do Discord de maneira fácil e intuitiva. Para instalá-la, abra o terminal e execute o seguinte comando:
```sh
npm install discord.js
```
### Instalando a biblioteca dotenv
Após a instalação bem-sucedida da biblioteca `discord.js`, precisamos instalar outra biblioteca importante chamada `dotenv`. Esta biblioteca é responsável por gerenciar variáveis de ambiente, o que é útil para armazenar o token do nosso bot de forma segura, evitando expô-lo diretamente no código do nosso projeto. No mesmo terminal que usamos para instalar o `discord.js`, execute o seguinte comando:
```sh
npm install dotenv
```

E completo! Continue lendo para começar a escrever o código do seu bot.

### Configurando Token

:::info
Para acessar o token do seu bot, veja o [guia de como criar uma aplicação no Discord Developer Portal](#)
:::

Para guardar o token do seu bot, usaremos o arquivo `.env`. O arquivo `.env` define variáveis de ambiente que são usadas no seu projeto, essas variáveis geralmente são usadas para armazenar informações sensíveis, como seu token, chaves de API e senha ou configurações específicas do projeto. Este arquivo nunca deve ser compartilhado. Comece criando o arquivo `.env` com o seguinte código:

```ini title=".env"
TOKEN=SEU_TOKEN
```

Com isso os arquivos no seu projeto devem ser o seguinte:
<Directory>
<Directory.Folder name='node_modules'/>
<Directory.File name='package.json' />
<Directory.File name='package-lock.json' />
<Directory.Env />
</Directory>
\
Com isso você terminou as configurações iniciais do projeto e já pode continuar pelo guia para começar a escrever seu primeiro bot!
4 changes: 3 additions & 1 deletion sidebars/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { PropSidebarItemLink, SidebarsConfig } from "@docusaurus/plugin-content-docs";
import { pythonSidebarItems } from './python';
import { javascriptSidebarItems } from "./javascript";

/**
* Creating a sidebar enables you to:
Expand All @@ -21,7 +22,8 @@ const languagesLink: PropSidebarItemLink = {
const sidebars: SidebarsConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [ languagesLink, { type: "autogenerated", dirName: "." } ],
pythonSidebar: [ languagesLink, ...pythonSidebarItems],
pythonSidebar: [ languagesLink, ...pythonSidebarItems ],
javascriptSidebar: [ languagesLink, ...javascriptSidebarItems ],

// But you can create a sidebar manually
/*
Expand Down
22 changes: 22 additions & 0 deletions sidebars/javascript.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import type { SidebarItemConfig } from '@docusaurus/plugin-content-docs';

export const javascriptSidebarItems: SidebarItemConfig[] = [
{
type: 'category',
collapsed: true,
label: 'Primeiros passos',
items: [
'linguagens/javascript/index',
'linguagens/javascript/preparacao'
]
},
{
type: 'category',
collapsed: true,
label: 'Construindo o bot',
items: [
'linguagens/javascript/construindo/base-bot',
'linguagens/javascript/construindo/primeiro-comando'
]
}
]