Comando Clear Avanzado | Bots de discord Public

Python Actualizado Aug 31, 2025

Archivos de Código

Clear .py

Clear 138 líneas
#─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#─██████████████─██████─────────██████████████─██████████████─████████████████──────────██████████████─████████──████████─
#─██░░░░░░░░░░██─██░░██─────────██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░░░██──────────██░░░░░░░░░░██─██░░░░██──██░░░░██─
#─██░░██████████─██░░██─────────██░░██████████─██░░██████░░██─██░░████████░░██──────────██░░██████░░██─████░░██──██░░████─
#─██░░██─────────██░░██─────────██░░██─────────██░░██──██░░██─██░░██────██░░██──────────██░░██──██░░██───██░░░░██░░░░██───
#─██░░██─────────██░░██─────────██░░██████████─██░░██████░░██─██░░████████░░██──────────██░░██████░░██───████░░░░░░████───
#─██░░██─────────██░░██─────────██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░░░██──────────██░░░░░░░░░░██─────████░░████─────
#─██░░██─────────██░░██─────────██░░██████████─██░░██████░░██─██░░██████░░████──────────██░░██████████───────██░░██───────
#─██░░██─────────██░░██─────────██░░██─────────██░░██──██░░██─██░░██──██░░██────────────██░░██───────────────██░░██───────
#─██░░██████████─██░░██████████─██░░██████████─██░░██──██░░██─██░░██──██░░██████─██████─██░░██───────────────██░░██───────
#─██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░██─██░░██──██░░██─██░░██──██░░░░░░██─██░░██─██░░██───────────────██░░██───────
#─██████████████─██████████████─██████████████─██████──██████─██████──██████████─██████─██████───────────────██████───────
#─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

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)

ikon_773737171

Bro Tiene Simbolo Invalidos Actualiza

edgajuman

Hay algúnos errores bro