我遇到了一个问题。我创建了一个按钮,可以让用户跳到另一个文本通道中的另一条消息。
用户拥有Role1
,只要他按下按钮,他就应该获得角色Role2
,并跳转到仅为Role2
启用的文本通道。
很遗憾,由于出现以下错误,此操作无法正常工作discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'property' object has no attribute 'get_role'
如何使用户跳转到另一个消息并为其指定新角色?
第一个
1条答案
按热度按时间klr1opcd1#
正如我在注解中提到的,你传递给视图的是一个类对象,而不是交互对象。由于
add_roles
是一个协程,你不能在__init__
中传递它,所以你最好在命令本身中传递它。因此,你的视图甚至不需要交互对象。至于如何将其设置为斜杠命令而不是文本命令,需要在bot的命令树(
bot.tree.command()
)中将其设置为命令。要将slash命令注册为discord,你只需要owner一个sync命令。我的命令是这样的:
运行代码并使用
<prefix>sync
(不带参数sync as global)命令来同步斜杠命令,然后就可以使用它了。