Construyendo un Bot de Discord en Python

Si está familiarizado con las comunidades en línea y si es parte de una o es dueño de una, debe haber oído hablar de Discord y en Discord, es posible que haya visto bots administrando esas comunidades. Entonces, en este artículo, configuraremos nuestra cuenta del portal de desarrolladores de Discord y crearemos un bot de Discord. Un bot mínimo con funcionalidades básicas y si quieres siempre puedes ampliar las funcionalidades de este bot según tus necesidades.

¿Qué es la discordia?

Discord es una aplicación de chat gratuita que proporciona diferentes funcionalidades de chat, como chat de voz, video y texto, y es utilizada por millones de personas en todo el mundo para uso profesional y divertido. 

Las personas crean comunidades denominadas servidores en discordia y otras personas pueden unirse a estos servidores para pasar el rato allí para conocer gente nueva y hablar sobre sus intereses. Discord también ofrece la funcionalidad para crear servidores privados donde solo las personas invitadas pueden unirse usando estos servidores privados, las personas pueden tener una conversación privada con sus allegados.

Los servidores de Discord están llenos de canales creados por el propietario, pueden ser canales de texto, canales de audio o video. Estos canales se utilizan para hablar sobre temas específicos en el servidor.

¿Qué son los bots de discordia?

Discord es usado por más de 10 millones de personas diariamente usando estas estadísticas, podemos ver claramente el interés de las personas en las comunidades y la discordia está creciendo. La gente está explorando y uniéndose a nuevos servidores.

A medida que crece la popularidad de los servidores, las personas tienden a unirse más a ese servidor una vez que crece la cantidad de miembros, se vuelve difícil para los administradores administrar el servidor, aquí es donde entran en juego los bots. Hay varias tareas que los bots de administración pueden realizar para mejorar la experiencia del usuario en el servidor. Algunas de estas tareas son

  • Bienvenida a los nuevos miembros.
  • Respondiendo preguntas frecuentes.
  • Prohibir a las personas tóxicas de los servidores.
  • Responder, enviar, borrar mensajes.
  • Administrar los roles de las personas en el servidor.

Y la lista continúa. Los administradores de grandes comunidades de discord siempre prefieren habilitar múltiples bots en su servidor, después de seguir este tutorial también puede crear su propio bot de discord, comencemos.

Crear un servidor de Discord

En primer lugar, necesitamos tener un servidor dedicado donde vamos a configurar nuestro bot. Este bot funcionará en un solo canal en este servidor. Para crear un servidor, debe tener una cuenta de discord, si aún no tiene una, puede crear una simplemente yendo a https://discord.com/.

Paso 1: haga clic en el botón Agregar servidor (más) en la barra lateral izquierda, se abrirá la interfaz Crear servidor. Elige la plantilla de tu servidor.

Crear un servidor

Paso 2: elige si usas este servidor por diversión o comunidad.

Información adicional del servidor

Paso 3: elija un nombre bueno y atractivo para su servidor. Si lo está utilizando para la comunidad, simplemente puede dar el nombre de su comunidad o empresa.

Nombre del servidor

Paso 4: Su servidor ahora está creado

Servidor creado

Creación de un canal en el servidor

Ahora necesitamos crear un canal donde este bot estará activo, este bot solo responderá en este canal.

Paso 1: Haga clic en agregar en la lista de canales de texto.

Creando un canal

Paso 2: elige el tipo de canal como canal de texto y dale un nombre a tu canal

Canal Nombre y tipo

Paso 3: se crea el canal

Canal creado

Crear un bot

Ahora que tenemos nuestra cuenta con el servidor lista, podemos continuar y crear nuestro primer bot en el portal de desarrolladores de Discord. El portal para desarrolladores de discord es una plataforma proporcionada por discord para las personas que desean ampliar las capacidades de discord y usarlas para crear cosas más interesantes, uno de los ejemplos es la creación de bots.

Paso 1: inicie sesión en el portal: vaya a https://discord.com/developers/applications e inicie sesión con su cuenta de Discord en la que se crea el servidor para el que desea crear un bot.

Iniciar sesión con la cuenta de Discord

Paso 2: La aplicación se refiere a la nueva funcionalidad. Por ejemplo, Bot. Haga clic en nueva aplicación para inicializar su primer bot, elija un nombre para su aplicación. Recuerda que el nombre de la aplicación será el nombre de tu bot.

Crear una aplicación

Paso 3: Crear un Bot, haga clic en Bot en la barra lateral izquierda y haga clic en Agregar Bot.

Agregar un robot

Paso 4: Se abrirá una ventana emergente que le preguntará si realmente desea agregar un bot, haga clic en Sí, hágalo.

Verifique que desea agregar un bot

Paso 5: copie el token con el botón COPIAR que se muestra a continuación. Este token se usa para autorizar programas con discordia.

Nota: ¡Nunca comparta su token con nadie!

Copiar token de autenticación

Personalización y autorización de bot

Nuestro bot está creado, es hora de otorgar permisos y definir los alcances del bot. El permiso se refiere a lo que nuestro bot puede hacer en el servidor, por ejemplo, enviar mensajes. El alcance se refiere al rol que desempeñará el bot.

Paso 1: haga clic en OAuth2 y haga clic en Generador de URL ; verá varias casillas de verificación que se refieren a diferentes ámbitos. Para este bot, vamos a usar solo el alcance del bot , haga clic en la casilla de verificación Bot .

Ámbitos de Bot

Paso 2: Las siguientes casillas de verificación son permisos para nuestra casilla. Vamos a dar permiso a este bot para enviar y responder mensajes , así que marque todas las casillas relacionadas con eso. Siempre puede cambiar estos permisos más tarde y generar una nueva URL.

Nota: si desea codificar comandos de barra diagonal, asegúrese de elegir aplicaciones.comandos también en el Paso 1.

Dar permisos al bot

Paso 3: desplácese hacia abajo y podrá ver una URL generada para el bot, haga clic en la copia para copiar esta URL.

URL generada

Paso 4: pegue la URL copiada en una nueva pestaña aquí vamos a autorizar nuestro bot con el servidor. Elija el servidor que creamos anteriormente y haga clic en continuar.

Dar el nombre del servidor

Paso 5: Aquí verás los permisos del bot. Si lo desea, puede editarlos, haga clic en Autorizar

Administrar permisos

Paso 6: Verifica que eres un humano con un captcha y el bot debería estar autorizado ahora. 

Verificar Captcha

Paso 7: Vaya al servidor y podrá ver el nombre del bot que aparece en la lista de personas sin conexión.

Bot que aparece en el servidor

Escribir código para bot

En esta sección, vamos a escribir código python para nuestro bot de discordia.

Paso 1: vamos a crear un archivo .env para almacenar la clave de renovación de nuestro bot que copiamos anteriormente, el archivo .env protegerá nuestras credenciales cuando alojemos nuestro código en algún lugar. Primero, cree un archivo con nombre .env en la carpeta de su proyecto y luego inserte el siguiente código.

TOKEN = ‘<TU_CLAVE>’

Paso 2: Importación de módulos

Cree un nuevo archivo python para el código del bot principal y asígnele el nombre que desee e importe los módulos necesarios.

  • discordia: biblioteca proporcionada por discordia para usar la API de discordia rica en funciones.
  • os: estamos usando variables de entorno os module se usa para importarlas.
  • aleatorio: se utiliza para realizar varias operaciones aleatorias en los datos.
  • dotenv: importando el archivo .env al archivo principal de python.

Python3

import discord
import os
import random
from dotenv import load_dotenv

Paso 3: inicialización de variables

Python3

load_dotenv()
 
client = discord.Bot()
token = os.getenv('TOKEN')

Uso de la función load_dotenv() para importar variables de entorno. Creando un cliente discord para enviar una solicitud a la API discord y, por último, estamos obteniendo e inicializando nuestro token de variable de entorno.

Paso 4: Inicializar nuestro Bot 

Python3

@client.event
async def on_ready():
    print("Logged in as a bot {0.user}".format(client))

Aquí estamos usando el evento on_ready() proporcionado por la API de discord una vez que nuestro cliente API haya inicializado este evento activará la realización de la operación dada. Aquí estamos imprimiendo el nombre de nuestro bot. 

Paso 5: Configuración de respuestas de bot

  • Estamos configurando respuestas de bot apropiadas para los mensajes de los usuarios. Evento de Discord API on_message que toma un argumento ya que el mensaje se usa para este propósito, el argumento del mensaje contiene detalles sobre el mensaje, el autor del mensaje, en qué canal se envió el mensaje, etc.
  • Primero extraiga información sobre el mensaje, como el nombre de usuario, el canal y el contenido del mensaje. 
  • La siguiente línea juega un papel importante si el bot mismo envía el mensaje, entonces no responda si esta condición no está escrita, entonces el bot se responderá infinitamente a sí mismo.
  • Vamos a activar nuestro bot en el canal que creamos en nuestro servidor llamado random, también puedes activar el bot en otros canales. Escribir varias declaraciones if-else funcionará, pero también puede implementar un chatbot utilizando el aprendizaje automático. Aquí implementamos algunas declaraciones if-else para responder a mensajes básicos como hola, hola y adiós e implementamos una declaración básica para contar una broma. Siempre puede agregar más funciones y hacer que su bot sea más interactivo.

Python3

@client.event
async def on_message(message):
    username = str(message.author).split("#")[0]
    channel = str(message.channel.name)
    user_message = str(message.content)
 
    print(f'Message {user_message} by {username} on {channel}')
 
    if message.author == client.user:
        return
 
    if channel == "random":
        if user_message.lower() == "hello" or user_message.lower() == "hi":
            await message.channel.send(f'Hello {username}')
            return
        elif user_message.lower() == "bye":
            await message.channel.send(f'Bye {username}')
        elif user_message.lower() == "tell me a joke":
            jokes = [" Can someone please shed more\
            light on how my lamp got stolen?",
                     "Why is she called llene? She\
                     stands on equal legs.",
                     "What do you call a gazelle in a \
                     lions territory? Denzel."]
            await message.channel.send(random.choice(jokes))

Paso 6: ejecutar el bot

Creamos el cliente API anterior que proporciona una función llamada para ejecutar esta función que toma el token de autenticación del argumento como un argumento y ejecuta el bot llamando al evento on_ready.

Python3

client.run(token)

Producción:

Bot respondiendo a los mensajes del usuario

Tronco:

Registro de salida

Creación de comandos

En los pasos anteriores, vimos cómo usar client.event para comandos, pero para usos prácticos generalmente no lo usamos. Discord nos ha proporcionado otra forma de crear comandos y es mediante el uso de prefijos.

Paso 1: importar comandos

Importe comandos de discord.ext que nos ayudarán a implementar comandos.

Python3

from discord.ext import commands

Paso 2: elija un prefijo

Ahora, elija un prefijo desde el cual se debe activar el bot y escuche los comandos. Esto puede ser cualquier símbolo, alfabeto o incluso una palabra. En aras de la simplicidad, elegiremos “!” como nuestro prefijo. Para ello edite el cliente previamente definido:

Python3

client = commands.Bot(command_prefix="!*)

Paso 3: Creación de comandos

Ahora, crearemos un comando. Para ello, utilizaremos client.command como decorador.

Python3

@client.command()
async def ping(ctx):
  await ctx.send('Pong!')
  • ctx : Representa la clase commands.context . Este argumento es obligatorio para todos los comandos normales (no para los comandos de barra). Representa el contexto en el que se invoca un comando. Este argumento puede proporcionar una gran cantidad de metadatos, por ejemplo: datos del autor, datos del mensaje, etc.
  • ctx.send : se utiliza para enviar el mensaje de vuelta al canal donde se invocó el comando. Asegúrese de usar await ya que se trata de una rutina.

Ahora, ejecute su archivo nuevamente y vaya al canal del servidor donde está presente el bot.
Si escribes “!ping”, el bot responderá con “Pong”.

Conclusión

Entonces, este fue un ejemplo básico para usar la biblioteca discord.py para crear un Discord Bot. Con la versión actualizada de discord.py, incluso se pueden crear comandos de barra oblicua y modales.

Publicación traducida automáticamente

Artículo escrito por adityasangave21 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *