Como criar um bot do Discord em Python

Seu próprio servidor Discord pode dar muito trabalho, e é por isso que os bots que cuidam das funções administrativas são populares. Você pode criar facilmente seu próprio bot usando a biblioteca Python discord.py e aplicando conhecimentos básicos de Python.

Passo a passo para criar seu próprio bot Python Discord

Antes de começar a programar seu bot, você deve criar um bot do Discord. Você pode criar seu próprio aplicativo com o Discord e, depois de fazer isso, nada impedirá seu bot do Discord. O código necessário para o seu bot do Discord depende das tarefas que você deseja automatizar. O bot apresentado neste tutorial tem o objetivo de adicionar funções em um servidor Discord.

Etapa 1: instalar o discord.py

Para criar seu bot, a biblioteca Python discord.py é uma ferramenta essencial. Antes de começar, você deve instalá-la em seu sistema usando o pip, como é de costume com o Python. No Windows, o comando de terminal apropriado para a instalação é:

py -3 -m pip install -U discord.py
python

Etapa 2: criar documento Python

Crie um novo documento Python para codificar seu bot. Você pode usar vários editores de código para seu arquivo Python ou um ambiente de desenvolvimento integrado (IDE) como o Pycharm.

Etapa 3: conectar-se ao Discord

Primeiro, importe a biblioteca do Discord para seu documento Python. Defina o token do bot que você recebeu ao registrar seu bot do Discord no site do desenvolvedor do Discord. Para fazer isso, substitua o espaço reservado pelo seu token de bot personalizado:

import discord
TOKEN = token_placeholder
python

Você precisa da biblioteca para interagir com a API do Discord. Para se conectar ao Discord, você precisará de uma instância do chamado objeto cliente. Use o código a seguir para criá-lo:

client = discord.Client()
python

Etapa 4: verificar se a conexão foi estabelecida com sucesso

Para garantir que seu bot esteja conectado corretamente ao servidor Discord, inclua um método assíncrono em seu arquivo Python. Isso é feito respondendo ao evento on_ready , que é definido na API discord.py. Para permitir que sua função funcione como um manipulador de eventos, use o @client.event decorador em Python.

@client.event
async def on_ready():
    print(f'{client.user} is connected to the following server:\n')
    for server in client.guilds:
        print(f'{server.name}(id: {server.id})')
python
Nota

As funções assíncronas são frequentemente empregadas na programação de bots do Discord. Isso garante que a função seja executada em um thread dedicado separado do thread principal, permitindo a execução paralela de tarefas de bot sem bloquear o thread principal.

Etapa 5: adicionar funcionalidades ao seu bot

Para implementar a funcionalidade do bot no discord.py, o on_message evento é utilizado. Esse evento é acionado sempre que o bot do Discord recebe uma mensagem. Para lidar com esse evento, seu método deve primeiro determinar o remetente da mensagem e, em seguida, executar a funcionalidade desejada, como adicionar funções.

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('!add_role'):
        # Find role name
        role_name = message.content.split(' ')[1]
        # search corresponding Discord role
        role = discord.utils.get(message.guild.roles, name=role_name)
        # Check if the role exists
        if role is None:
            await message.channel.send(f'Role "{role_name}" does not exist)
            return
        # Role assignment
        await message.author.add_roles(role)
        await message.channel.send(f'Role "{role_name}" was added to {message.author}')

Inicialmente, a função verifica se a mensagem recebida foi enviada pelo próprio bot do Discord. Se isso for verdade, a função é encerrada usando a instrução return .

A próxima etapa envolve um exame mais detalhado do conteúdo da mensagem. Se a mensagem começar com a string !add_role, o bot a reconhecerá como um comando. Isso indica que os usuários do servidor devem iniciar as solicitações ao bot do Discord com a string !add_role . Embora qualquer string possa ser utilizada como um comando, é preferível usar strings que não sejam comumente usadas em linguagem natural.

O bot determina o nome da função desejada a partir de um comando interpretado corretamente usando a função Python split(). Em seguida, ele localiza a função relevante em seu servidor. Você pode fazer isso aproveitando o objeto message , que contém várias informações sobre o servidor no campo message.guild .

Se a função não existir e, consequentemente, tiver o valor “None” (Nenhum), será gerada uma mensagem de erro e a função será encerrada usando a instrução return . Se a função existir, ela será atribuída conforme necessário. Para isso, utilizamos a função add_roles da biblioteca discord.py, que também é definida no objeto message .

Nota

Seu bot do Discord tem a capacidade de executar qualquer tarefa que você definir para ele. Você pode criar bots que executem funções semelhantes às do conhecido bot de bate-papo e moderação, MEE6, ou até mesmo codificar seus próprios Discord Music Bots. Ilustramos isso usando um exemplo básico que os iniciantes podem seguir facilmente.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top