# 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 é:

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

### 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:

```python
import discord
TOKEN = token_placeholder
```

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:

```python
client = discord.Client()
```

### 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.

```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})')
```

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.

```none
@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()`](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-split/ "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.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/bot-do-discord-python/](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/bot-do-discord-python/) for AI/LLM consumption.