Cuando intento ejecutar el comando siempre aparece este mensaje de error: "TypeError: '>' no es compatible entre instancias de 'Context' e 'int'"
from discord.ext import commands
class clear(commands.Cog):
def __init__(self, client):
self.client = client
# Events
@commands.Cog.listener()
async def on_ready(self):
print('Clear modul started')
# Command
@commands.command()
async def clear(ctx, amount=5, max=100, min=1):
if (amount > max):
await ctx.send(f"The value is too high! Enter a value `{min}-{max}` between.", delete_after=5)
elif (amount < min):
await ctx.send(f"The value is too small! Enter a value `{min}-{max}` between.", delete_after=5)
else:
await ctx.channel.purge(limit=amount+1)
await ctx.send(f"Törölve {amount}", delete_after=5)
def setup(client):
client.add_cog(clear(client))```
1
¿Cuál es la llamada que provocó este error? Puedo ver que sucede si pasaste un 'Contexto' objeto como cantidad.
- K.Cl
28/03/2021 a las 13:43
1
Te estás perdiendo a ti mismo
Łukasz Kwieciński
28/03/2021 a las 13:54
No lo sé. El comando funciona en main.py pero cuando lo transfiero a un archivo separado, aparece esto.
–
usuario15499621
28/03/2021 a las 14:05
------------------------------------
Como dije en los comentarios, te falta uno mismo en el comando
@commands.command()
async def clear(self, ctx, amount=5, max=100, min=1):
...
3
Eso es cierto. En cada función de una clase, debes pasar un "yo".
- electromeow
28/03/2021 a las 14:26
No todas las funciones de una clase aceptan argumentos propios @electromeow; los métodos de clase, los métodos estáticos y el método __new__ no los aceptan
Łukasz Kwiecesquío
28/03/2021 a las 16:17
Lo sé, pero me refiero a casi todos. ¡Pero gracias por comentar!
- electromeow
29 de marzo de 2021 a las 5:59
------------------------------------
Debes aprobar un examen "yo" param como dijo otra respuesta.
Pero también te recomiendo que definas las variables mínimas y máximas en el bloque de código de la función, no en los parámetros de la función.
Porque la gente cy cambie el valor mínimo a otro valor. Y en esta situación, el parámetro será una cadena. No los convertiste a números enteros, por lo que generará un error.
Nunca confíes en tus usuarios (;
0