Como Fazer Seu Próprio Discord Bot
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ê vai 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 tornam isso muito fácil de fazer. Estaremos usando o mais popular, discord.js.
RELACIONADO:Como criar, configurar e gerenciar seu servidor Discord
Começando
Vá até o portal de bots do Discord e crie um novo aplicativo.
Você deve 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 para o 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 instalar a 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 o Atom ou o VSC.
Aqui está o nosso “Hello World”:
const Discord = require ('discord.js'); cliente const = novo Discord.Client (); client.on ('ready', () => {console.log (`Logado 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 ('pronto')
bloco irá disparar quando o bot for inicializado. Aqui, ele está apenas configurado para registrar seu nome no terminal. - O
client.on ('mensagem')
O bloco será acionado sempre que uma nova mensagem for postada em qualquer canal. Claro, você precisará verificar o conteúdo da mensagem, e é isso queE se
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 dispara o depurador do Chrome, que você pode acessar digitando chrome: // inspect /
no Omnibar do Chrome e, em seguida, abrindo "devtools dedicados para Node".
Agora, deve ser apenas "Conectado como", mas aqui eu adicionei uma linha que 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 ('mensagem')
. Então, eu fiz um spambot:
Observação: Tenha cuidado com isso, pois você realmente não quer 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:
//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. Uma vez feito isso, porém, 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 rever 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 (cliente)
no início do seu código e dando uma olhada no objeto cliente no console:
A partir daqui, você pode aprender muito. Uma vez que você pode adicionar um bot a vários servidores de uma vez, os servidores fazem parte do Guilds
objeto do 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.