pokebot discord
2024-09-04 Regresar Atrás
1. Importación de librerías 📦:
import discord
from discord.ext import commands
import requests
import secrets # archivo secrets.py
discord
: Es la librería que conecta tu bot con Discord 🛠️. La usarás para interactuar con el servidor.commands
: Viene de la extensión dediscord.ext
. Facilita la creación de comandos para tu bot, como$poke Pikachu
🐉.requests
: Esta librería permite hacer solicitudes HTTP 🌐. Aquí la usaremos para conectarnos a la PokéAPI.secrets
: Este archivo probablemente contiene tu token secreto del bot 🤫, que es necesario para autenticar y ejecutar tu bot en Discord.
2. Configuración de permisos (intents) 🔐:
intents = discord.Intents.default()
intents.message_content = True
discord.Intents.default()
: Activa permisos básicos que tu bot necesita, pero no puede leer los mensajes aún 🚫.intents.message_content = True
: ¡Aquí lo activamos! ✅ Ahora el bot podrá leer y reaccionar a los mensajes que envíen los usuarios en el servidor.
3. Creación del bot 🤖:
bot = commands.Bot(command_prefix='$', intents=intents)
commands.Bot(command_prefix='$')
: Aquí defines que tu bot va a reconocer comandos que comiencen con el símbolo$
💵. Por ejemplo,$poke Pikachu
.intents=intents
: Le dices al bot que use los permisos configurados antes para poder leer los mensajes.
4. El comando poke
🐾:
@bot.command()
async def poke(ctx, arg):
try:
pokemon = arg.split(" ", 1)[0].lower()
result = requests.get("https://pokeapi.co/api/v2/pokemon/" + pokemon)
if result.status_code == 404:
await ctx.send("Pokemon No Encontrado")
else:
image_url = result.json()['sprites']['front_default']
print(image_url)
await ctx.send(image_url)
except Exception as e:
print("Error: ", e)
-
@bot.command()
: Esto le dice al bot que lo que sigue es un comando personalizado. ¡Estamos creando un comando! 🎮 -
async def poke(ctx, arg)
: Esta es la función del comando$poke
. Aquí el bot espera que le des un nombre de Pokémon después de escribir$poke
(por ejemplo,$poke Pikachu
).Explicación del flujo:
arg.split(" ", 1)[0].lower()
: Aquí el bot toma el nombre del Pokémon que le enviaste y lo convierte a minúsculas para que siempre lo busque correctamente. 🧐requests.get(...)
: Envía una solicitud a la PokéAPI para obtener información sobre ese Pokémon. 🌐if result.status_code == 404
: Si la API responde con un error 404, significa que el Pokémon no fue encontrado en la base de datos. 🛑 En ese caso, el bot te dirá"Pokemon No Encontrado"
.result.json()['sprites']['front_default']
: Si el Pokémon existe, la API devuelve su imagen (sprite) y el bot la manda al chat de Discord. 🖼️await ctx.send(image_url)
: Envía la URL de la imagen del Pokémon al canal donde se envió el comando.
-
except Exception as e
: Atrapa cualquier error inesperado y lo imprime en la consola, para que puedas depurarlo. 🛠️
5. Manejo de errores 🚫:
@poke.error
async def error_type(ctx, error):
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send("Tienes que pasarme un Pokemon")
@poke.error
: Si alguien se olvida de escribir el nombre de un Pokémon después de$poke
, este bloque lo maneja. 💡isinstance(error, commands.MissingRequiredArgument)
: Verifica si el error es porque falta un argumento (el nombre del Pokémon).await ctx.send("Tienes que pasarme un Pokemon")
: Si falta el Pokémon, el bot le recuerda al usuario que debe escribir un nombre para que funcione el comando 🗣️.
6. Evento on_ready
🔄:
@bot.event
async def on_ready():
print(f"Estamos dentro! {bot.user}")
@bot.event
: Esto es un evento. Aquí el bot está escuchando cuando se conecta correctamente a Discord.on_ready()
: Cuando el bot esté listo para funcionar, se imprime un mensaje en la consola con el nombre del bot. 🟢 Así sabrás que todo está funcionando bien.
7. Ejecución del bot 🚀:
bot.run(secrets.TOKEN)
bot.run(secrets.TOKEN)
: Esto inicia el bot usando el token que tienes guardado en tu archivosecrets.py
. ¡Es el último paso! 🔑
¿Cómo usar el bot? 🎮:
- Escribe
$poke <nombre_del_pokemon>
: Por ejemplo, si escribes$poke Pikachu
, el bot buscará información sobre Pikachu en la API y te enviará su imagen. - Errores:
- Si no escribes ningún nombre, el bot te recordará que necesitas escribir un Pokémon (
Tienes que pasarme un Pokemon
). - Si el Pokémon no existe, te dirá que no lo encontró (
Pokemon No Encontrado
).
- Si no escribes ningún nombre, el bot te recordará que necesitas escribir un Pokémon (
PULSA ABAJO PARA VER EL VIDEO
DESCARGAR CODIGO FUENTE
Bibliotecas
pip install requests
# También utiliza
pip install discord.py
- Dentro del Directorio del bot sin olvidar mencionar que requiere instalar python por ejemplo en termux.
pkg install python
Antes que las bibliotecas.
¡Listo! 🌟
Este bot es súper útil para consultar información rápida sobre Pokémon en Discord. Ahora ya tienes una idea clara de cómo funciona cada parte del código y cómo interactuar con él. ¡Buena suerte y atrapa todos los Pokémon! 🎉