Como fazer um bot para o Discord utilizando Python - 🐍

Fala turma, beleza??

Desde pequeno gosto muito de videogames, e quando era menor, tive um PS1, PS2, PSP e Xbox360, da adolescência até hoje (20 anos) não tenho mais consoles há muito tempo, e um dos meus hobbys hoje em dia é jogar com meus amigos no computador, principalmente jogos competitivos, e para isso, é necessário se comunicar, já usei diversos softwares para solucionar esse problema, como Skype e Teamspeak, mas, sem dúvidas alguma, o melhor que existiu até hoje para mim foi o Discord, que inclusive é o que eu utilizo, por que, ele tem diversos recursos, além de ser bastante otimizado para tudo o que ele oferece, é possível até mesmo criar o seu Bot e alocar em um servidor para realizar alguma função para você.

Depois dessa introdução gigantesca, venho neste artigo ensinar a como fazer bots para o Discord utilizando Python, além disso, estarei deixando no final do artigo o link de dois Bots que fiz que estão disponíveis para serem utilizados nos seus servidores.


Recursos:

  • Para começarmos é necessário ter Python instalado, e conhecimento básico do mesmo.
  • Ter instalado alguma IDE ou editor de texto, irei utilizar o VSCode.
  • Ter o gerenciador de pacotes "pip" para instalarmos uma biblioteca externa, basta abrir o prompt de comando e digitar o seguinte comando (obs: após a instalação do Python).

- Windows:

python get-pip.py

- Linux (Ubuntu):

apt-get update
apt-get install python-pip

- Conferir instalação do mesmo:

pip -v

- Retorno:

image

- Biblioteca:

pip install discord.py

Criação:

- Configurações:

Primeiramente, é necessário criar uma aplicação lá no ambiente de desenvolvimento do Discord, irá clicar em "New Application" e nomeá-lo.

image

Com isso, já é possível obter o token da aplicação, basta clicar em "Bot", e depois em "Add Bot", e após isso terá um botão "Reset Token", que irá gerar o token de sua aplicação. (Obs: Esse token não pode ser compartilhado, ou seja, colocado no Github, que irá ser automaticamente invalidado (não sei se isso vale para repositório privado), e o Discord irá enviar uma mensagem na DM informando que o código foi exposto publicamente)

image

Além disso, é necessário dar as seguintes permissões de Gateway, caso o seu bot não seja verificado, que é o nosso caso, essas permissões estão na mesma aba do Token.

image

Para gerar o convite do seu bot, é necessário ir na aba "General Information" e copiar o seu "Application ID", acesse o seguinte site e coloque as permissões que seu bot irá necessitar e o "Application ID", após isso, irá gerar um link de convite do seu bot.

- Código:

Com o token em mãos, iremos para a parte do código, crie uma pasta e abra a mesma no VSCode, e crie também um arquivo com formatação .py, no meu caso eu criei um arquivo chamado "main.py".

import discord
from discord.ext import commands

intents = discord.Intents.all()
bot = commands.Bot(intents=intents, command_prefix="!")

#Inicialização do bot
@bot.event
async def on_ready():
    print(f'Logado: {bot.user}')

#Log
@bot.event
async def on_message(message):
    print(f'Message de {message.author}: {message.content}')
    await bot.process_commands(message)

#Comandos
@bot.command(name="ola")
async def ola(message):
    await message.channel.send("Olá, você faz parte da turma? Caso não, venha fazer parte! :D")

@bot.command(name="tabnews")
async def tabnews(message):
    await message.channel.send("O Tabnews é uma plataforma que podemos compartilhar experiência, informações e notícias sobre tecnologia, idealizado pelo Filipe Deschamps.")

#Token
bot.run('SEU TOKEN')

Com esse pequeno código já é possível rodar o seu bot e usufruir dele.

image


Finalização:

Obviamente esse é um bot muito simples, onde ele apenas retorna uma mensagem quando chamamos os comandos !ola e !tabnews, e para aprimorá-lo você pode usar sua criatividade, integrando APIs entre outras coisas, e ler a DOCUMENTAÇÃO, que tem tudo sobre os recursos disponíveis da biblioteca, como os Embed, que irá formatar os seus retornos de uma forma mais bonita, recomendo também, vídeos do canal ByLearn, que me ensinou bastante. Esse foi o meu primeiro post aqui no Tabnews e agradeço a todos por essa comunidade.


Meus Bots:

Bom ver varias aplicações em Python.

Olá, estou com uma duvida, como faço para fazer a separar a estrutrura me diferentes arquivos ?

Faça da seguinte forma: - Crie um arquivo main.py e outro com um nome de sua escolha. Vou usar pag1.py como exemplo. - No arquivo pag1 você vai definir seus comandos - Agora no arquivo main.py você vai digitar no começo do código um ***import pag1***