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