es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quiero escribir un comando que muestre información sobre el servidor. Me encontré con el error.

Quiero escribir un comando que muestre información sobre el servidor. Me encontré con el siguiente error:

Mi código:

@client.command( pass_context = True )
async def server( ctx ): #server
    emb = discord.Embed( title = '<:rightgrey:927573354863542292> Kuromi | Информация', description = f'<:ccrown:928503495361982605> **Propietario:** {ctx.guild.owner.mention} | `{ctx.guild.owner.name}`', colour = 0x2f3136, url = '' )
    emb.add_field(name=f'Usuarios: {ctx.guild.member_count}', value='Miembros:\nBots:')
    await ctx.send( embed = emb )
#{ctx.guild.member_count}
client.run('') #tu token de bot

Específicamente, la parte con {ctx.guild.members} se niega a funcionar y muestra el siguiente error:

Traceback (most recent call last):
  File "C:\Users\vlad\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\vlad\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\vlad\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Se produjo un error en el comando: HTTPException: 400 Bad Request (código de error: 50035): Cuerpo de formulario inválido
En el embed: El tamaño del embed supera el tamaño máximo de 6000

y realmente no entiendo cómo mostrar la cantidad de bots.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el embed que estás intentando enviar excede el límite máximo de tamaño de 6000. Esto probablemente se debe al hecho de que estás intentando mostrar la lista completa de miembros, incluyendo bots, en el campo del embed.

    En lugar de intentar mostrar la lista completa de miembros, simplemente puedes contar el número de bots y mostrar ese número en el campo del embed. Puedes usar una comprensión de lista para filtrar todos los miembros que no son bots y luego contar la longitud de la lista resultante:

        @client.command( pass_context = True )
        async def server( ctx ):
            bots = [member for member in ctx.guild.members if member.bot]
            emb = discord.Embed( title = '<:rightgrey:927573354863542292> Kuromi | Информация', description = f'<:ccrown:928503495361982605> **Владелец:** {ctx.guild.owner.mention} | `{ctx.guild.owner.name}`', colour = 0x2f3136, url = '' )
            emb.add_field(name=f'Пользователей: {ctx.guild.member_count}', value=f'Участников: {ctx.guild.member_count - len(bots)}\nБотов: {len(bots)}')
            await ctx.send( embed = emb ) 
    

    Este código debería mostrar el número de miembros y el número de bots en el servidor, sin exceder el límite máximo de tamaño.

Comments are closed.