O Discord tem uma API excelente para escrever bots personalizados e uma comunidade de bots muito ativa . Hoje vamos dar uma olhada em como começar a fazer o seu.
Você precisará de um pouco de conhecimento de programação para codificar um bot, então não é para todos, mas felizmente existem alguns módulos para linguagens populares que o tornam muito fácil de fazer. Estaremos usando o mais popular, discord.js .
Índice
Começando
Vá até o portal de bots do Discord e crie um novo aplicativo.
Você desejará anotar o ID do cliente e o segredo (que você deve manter em segredo, é claro). No entanto, este não é o bot, apenas o “Aplicativo”. Você terá que adicionar o bot na guia “Bot”.
Anote este token também e mantenha-o em segredo. Em nenhuma circunstância, envie esta chave ao Github. Seu bot será hackeado quase imediatamente.
Instale o Node.js e obtenha a codificação
Para executar o código Javascript fora de uma página da web, você precisa do Node . Baixe, instale e verifique se ele funciona em um terminal (ou Prompt de Comando, pois tudo isso deve funcionar em sistemas Windows). O comando padrão é “nó”.
Também recomendamos a instalação da ferramenta nodemon. É um aplicativo de linha de comando que monitora o código do seu bot e reinicia automaticamente nas alterações. Você pode instalá-lo executando o seguinte comando:
npm i -g nodemon
Você precisará de um editor de texto. Você pode apenas usar o bloco de notas, mas recomendamos Atom ou VSC .
Este é o nosso “Hello World”:
const Discord = require ('discord.js'); cliente const = novo Discord.Client (); client.on ('pronto', () => { console.log (`Conectado como $ {client.user.tag}!`); }); client.on ('mensagem', msg => { if (msg.content === 'ping') { msg.reply ('pong'); } }); client.login ('token');
Este código é retirado do exemplo discord.js . Vamos decompô-lo.
- As primeiras duas linhas são para configurar o cliente. A linha um importa o módulo para um objeto chamado “Discord” e a linha dois inicializa o objeto cliente.
- O
client.on('ready')
bloco irá disparar quando o bot for inicializado. Aqui, ele apenas está configurado para registrar seu nome no terminal. - O
client.on('message')
bloqueio será disparado sempre que uma nova mensagem for postada em qualquer canal. Claro, você precisará verificar o conteúdo da mensagem, e é isso que oif
bloco faz. Se a mensagem disser apenas “ping”, ela responderá com “Pong!” - A última linha faz login com o token do portal do bot. Obviamente, o token na imagem aqui é falso. Nunca publique seu token na Internet.
Copie este código, cole seu token na parte inferior e salve-o como index.js
em uma pasta dedicada.
Como executar o bot
Vá até o seu terminal e execute o seguinte comando:
nodemon --inspect index.js
Isso inicia o script e também ativa o depurador do Chrome, que você pode acessar digitando chrome://inspect/
no Omnibar do Chrome e abrindo “devtools dedicados para Node”.
Agora, deve apenas dizer “Logged in as <bot-name>,” mas aqui eu adicionei uma linha que irá registrar todos os objetos de mensagem recebidos no console:
Então, o que constitui esse objeto de mensagem? Muitas coisas, na verdade:
Mais notavelmente, você tem as informações do autor e do canal, que podem ser acessadas com msg.author e msg.channel. Eu recomendo este método de registrar objetos para os devtools do Chrome Node, e apenas dar uma olhada para ver o que o faz funcionar. Você pode encontrar algo interessante. Aqui, por exemplo, o bot registra suas respostas no console, para que as respostas do bot sejam acionadas client.on('message')
. Então, eu fiz um spambot:
Nota : Tenha cuidado com isso, pois você realmente não deseja lidar com a recursão.
Como adicionar o bot ao seu servidor
Esta parte é mais difícil do que deveria ser. Você deve pegar este URL:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
E substitua CLIENTID pelo ID de cliente do seu bot, encontrado na guia de informações gerais da página do aplicativo . Assim que isso for feito, você pode fornecer o link para seus amigos para que eles adicionem o bot a seus servidores também.
Tudo bem, então o que mais posso fazer?
Além da configuração básica, tudo o mais depende de você. Mas, isso não seria muito de um tutorial se parássemos em hello world, então vamos revisar um pouco da documentação , para que você tenha uma ideia melhor do que é possível. Eu sugiro que você leia o máximo que puder, pois está muito bem documentado.
Eu recomendaria adicionar console.log(client)
ao início do seu código e dar uma olhada no objeto cliente no console:
A partir daqui, você pode aprender muito. Como você pode adicionar um bot a vários servidores ao mesmo tempo, os servidores fazem parte do Guilds
objeto de mapa. Nesse objeto estão as Guilds individuais (que é o nome da API para “servidor”) e esses objetos de guild têm listas de canais que contêm todas as informações e listas de mensagens. A API é muito profunda e pode demorar um pouco para ser aprendida, mas pelo menos é fácil de configurar e começar a aprender.