#─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#─██████████████─██████─────────██████████████─██████████████─████████████████──────────██████████████─████████──████████─
#─██░░░░░░░░░░██─██░░██─────────██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░░░██──────────██░░░░░░░░░░██─██░░░░██──██░░░░██─
#─██░░██████████─██░░██─────────██░░██████████─██░░██████░░██─██░░████████░░██──────────██░░██████░░██─████░░██──██░░████─
#─██░░██─────────██░░██─────────██░░██─────────██░░██──██░░██─██░░██────██░░██──────────██░░██──██░░██───██░░░░██░░░░██───
#─██░░██─────────██░░██─────────██░░██████████─██░░██████░░██─██░░████████░░██──────────██░░██████░░██───████░░░░░░████───
#─██░░██─────────██░░██─────────██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░░░██──────────██░░░░░░░░░░██─────████░░████─────
#─██░░██─────────██░░██─────────██░░██████████─██░░██████░░██─██░░██████░░████──────────██░░██████████───────██░░██───────
#─██░░██─────────██░░██─────────██░░██─────────██░░██──██░░██─██░░██──██░░██────────────██░░██───────────────██░░██───────
#─██░░██████████─██░░██████████─██░░██████████─██░░██──██░░██─██░░██──██░░██████─██████─██░░██───────────────██░░██───────
#─██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░██─██░░██──██░░██─██░░██──██░░░░░░██─██░░██─██░░██───────────────██░░██───────
#─██████████████─██████████████─██████████████─██████──██████─██████──██████████─██████─██████───────────────██████───────
#─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
import discord
from discord import app_commands
from discord.ext import commands
intents = discord.Intents.default()
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.event
async def on_ready():
print(f"✅ Bot conectado como {bot.user}")
try:
synced = await bot.tree.sync()
print(f"🌐 {len(synced)} comandos slash sincronizados")
except Exception as e:
print(f"❌ Error al sincronizar comandos: {e}")
@bot.tree.command(name="limpiar", description="Elimina una cantidad específica de mensajes en el canal.")
@app_commands.describe(
cantidad="El número de mensajes a eliminar.",
tipo_usuario="Elige si quieres borrar mensajes de usuarios, bots o de todos.",
usuario="Elige un usuario específico del cual borrar mensajes."
)
@app_commands.choices(tipo_usuario=[
app_commands.Choice(name="Todos", value="todos"),
app_commands.Choice(name="Bots", value="bots"),
app_commands.Choice(name="Usuarios", value="usuarios"),
])
@app_commands.checks.has_permissions(manage_messages=True)
async def limpiar(
interaction: discord.Interaction,
cantidad: int,
tipo_usuario: str,
usuario: discord.Member = None
):
await interaction.response.defer(ephemeral=True)
if cantidad <= 0:
error_embed = discord.Embed(
title="❌ Error de Entrada",
description="La cantidad de mensajes a eliminar debe ser un número positivo.",
color=discord.Color.red()
)
return await interaction.followup.send(embed=error_embed, ephemeral=True)
if cantidad > 100:
error_embed = discord.Embed(
title="⚠️ Límite Excedido",
description="No puedes eliminar más de 100 mensajes a la vez.",
color=discord.Color.orange()
)
return await interaction.followup.send(embed=error_embed, ephemeral=True)
def check_message(message):
if usuario:
return message.author == usuario
if tipo_usuario == "bots":
return message.author.bot
if tipo_usuario == "usuarios":
return not message.author.bot
return True
try:
deleted_messages = await interaction.channel.purge(limit=cantidad, check=check_message)
contador_eliminados = len(deleted_messages)
embed = discord.Embed(
title="🗑️ Mensajes Eliminados",
description=f"Se han eliminado **{contador_eliminados}** mensajes del canal.",
color=discord.Color.green()
)
embed.add_field(name="Cantidad Solicitada", value=cantidad, inline=True)
embed.add_field(name="Tipo de Usuario", value=tipo_usuario.capitalize(), inline=True)
if usuario:
embed.add_field(name="Usuario Específico", value=usuario.mention, inline=False)
embed.set_footer(
text=f"Comando ejecutado por {interaction.user.display_name}",
icon_url=interaction.user.avatar.url if interaction.user.avatar else interaction.user.default_avatar.url
)
embed.set_author(
name=bot.user.display_name,
icon_url=bot.user.avatar.url if bot.user.avatar else bot.user.default_avatar.url
)
await interaction.followup.send(embed=embed, ephemeral=True)
except discord.Forbidden:
error_embed = discord.Embed(
title="❌ Error de Permisos",
description="No tengo los permisos necesarios (`Gestionar Mensajes`) para eliminar mensajes en este canal.",
color=discord.Color.red()
)
await interaction.followup.send(embed=error_embed, ephemeral=True)
except discord.HTTPException as e:
error_embed = discord.Embed(
title="❌ Error de Discord",
description=f"Ocurrió un error al intentar eliminar los mensajes: `{e}`",
color=discord.Color.red()
)
await interaction.followup.send(embed=error_embed, ephemeral=True)
@limpiar.error
async def limpiar_error(interaction: discord.Interaction, error: app_commands.AppCommandError):
if isinstance(error, app_commands.MissingPermissions):
error_embed = discord.Embed(
title="🚨 Permiso Denegado",
description="No tienes los permisos necesarios (`Gestionar Mensajes`) para usar este comando.",
color=discord.Color.red()
)
await interaction.followup.send(embed=error_embed, ephemeral=True)
else:
error_embed = discord.Embed(
title="⚠️ Error Inesperado",
description=f"Ocurrió un error inesperado al ejecutar el comando: `{error}`",
color=discord.Color.red()
)
await interaction.followup.send(embed=error_embed, ephemeral=True)
bot.run("EL_TOKEN_PRO_LOCURA_EPICA")
Comentarios (4)
Inicia sesión para comentar
Bro Tiene Simbolo Invalidos Actualiza
Actualizado
Hay algúnos errores bro
Corregidos