Criando um bot Discord em Python. Parte 1

Versões do autor

Python: 3.8.2

discord.py: 1.3.3



Saudações, Khabrovites e outros usuários da Internet. Hoje vou começar uma série de artigos dedicados à criação de um bot Discord usando a biblioteca discord.py. Veremos como criar um bot primitivo e um bot "avançado" com módulos. Neste artigo faremos um comando padrão e mais um pequeno comando. Vamos começar!



Criar um bot e obter um token



Para adicionar um bot ao servidor, você precisa criar seu próprio aplicativo e copiar o ID do cliente na guia Informações gerais.





Aqui, substituímos o CLID pelo ID do cliente copiado anteriormente.



https://discordapp.com/oauth2/authorize?&client_id=CLID&scope=bot&permissions=8


Na guia Bot, crie um bot e copie o token.





Codificação



Instale a própria biblioteca.



pip install discord


Crie um arquivo config.py (isso é mais conveniente) e crie um dicionário nele.



settings = {
    'token': ' ',
    'bot': ' ',
    'id': Client ID ,  ,
    'prefix': ' '
}


Criamos um arquivo principal, o nome pode ser qualquer coisa.

Importamos bibliotecas e nosso arquivo de configuração:



import discord
from discord.ext import commands
from config import settings


Crie um "corpo" de bot, o nome pode ser qualquer:



bot = commands.Bot(command_prefix = settings['prefix']) #       settings,      prefix.


Vamos começar a escrever o código principal.



@bot.command() #    pass_context,        .
async def hello(ctx): #      ctx.
    author = ctx.message.author #   author      .

    await ctx.send(f'Hello, {author.mention}!') #     ,    author.


No final, inicie o bot com:



bot.run(settings['token']) #    settings   token,   


Código completo
import discord
from discord.ext import commands
from config import settings

bot = commands.Bot(command_prefix = settings['prefix'])

@bot.command() #    pass_context,        .
async def hello(ctx): #      ctx.
    author = ctx.message.author #   author      .
    await ctx.send(f'Hello, {author.mention}!') #     ,    author.

bot.run(settings['token']) #    settings   token,   


Deve ser assim:





Tutorial de bônus!



Vamos fazer uma conclusão sobre imagens aleatórias com raposas.

Para fazer isso, importamos mais algumas bibliotecas:



import json
import requests


Vamos começar a escrever o comando.



@bot.command()
async def fox(ctx):
    response = requests.get('https://some-random-api.ml/img/fox') # Get-
    json_data = json.loads(response.text) #  JSON

    embed = discord.Embed(color = 0xff9900, title = 'Random Fox') #  Embed'a
    embed.set_image(url = json_data['link']) #   Embed'a
    await ctx.send(embed = embed) #  Embed


Deve ser assim:





o fim



Isso completa a Parte 1. Parte 2 em breve.




All Articles