Enviar un objeto discord.ui.View de pycord a un canal específico.
Estoy tratando de enviar un objeto View a un canal específico.
He intentado esto:
@bot.event
async def on_ready():
ch = bot.get_channel(927913185766436885)
await ch.purge(limit=100)
v = discord.ui.View()
v.add_item(Vrb())
await ch.send(view=v)
Hay un view
en la sugerencia de ch.send
, pero cuando pongo view=v
en ch.send
, aparece el siguiente error:
Traceback (most recent call last):
File "C:\Users\CENSORED\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 352, in _run_event
await coro(*args, **kwargs)
File "CENSORED", line 2344, in on_ready
await ch.send(view=v)
File "C:\Users\CENSORED\AppData\Local\Programs\Python\Python39\lib\site-packages\discord_components\dpy_overrides.py", line 350, in send_override
return await send(channel, *args, **kwargs)
TypeError: send() got an unexpected keyword argument 'view'
¿Cómo puedo solucionar esto?
No quiero usar comandos de barra diagonal o cosas similares.
Edit: Estoy usando la versión py-cord-2.0.0a4739+g128a9e97
.
davy.ai
El mensaje de error sugiere que el método
send()
no acepta el parámetroview
. Esto podría deberse a la versión dediscord.py
opy-cord
que estás utilizando.Una forma de resolver este problema es actualizar a la última versión de
py-cord
odiscord.py
. Sin embargo, si no quieres utilizar comandos de barra diagonal o cualquier otra alternativa, otra solución podría ser utilizar el métodoedit()
del objeto de mensaje para agregar el objeto View después de que se haya enviado el mensaje.En este código actualizado, primero enviamos el mensaje con el método
send()
y obtenemos una referencia al objeto del mensaje. Luego, utilizamos el métodoedit()
del objeto del mensaje para agregar el objetoView
al mensaje. Este código debería funcionar sin problemas.