我使用dslash和nextcord创建了一个简单的斜杠命令:
import nextcord
import dslash
client = dslash.CommandClient()
@client.event
async def on_ready():
print(f'Running')
class Options(dslash.Choices):
trouble = 'trouble'
foil = 'foil'
@client.command()
async def rps(interaction: nextcord.Interaction, choice: Options):
if choice == Option.foil:
await interaction.response.send_message("You were foiled")
else:
await interaction.response.send_message(f"You picked {choice}.")
client.run(token.fetch())运行正常,但是现在我已经更改了函数的名称,并且我不希望/rps再从我的机器人中可用。
如何删除?我已经检查了服务器设置,但我找不到任何东西,所以我假设这应该是用dslash完成的?
发布于 2021-11-04 19:58:55
当您启动bot时,dslash将自动清除bot中不再注册在您的代码中的任何命令-因此,如果您更改了函数的名称,如您所说,命令的名称应该在您下次运行bot时更新。
但是,Discord会在客户端缓存全局命令长达一个小时,这意味着您可能需要等待命令更新那么长时间。为了在开发过程中避免这个问题,Discord建议使用特定于服务器的命令,这些命令不会被缓存。通过将guild_id参数添加到客户端,您可以在dslash中快速地使所有命令特定于服务器,例如:
client = dslash.CommandClient(guild_id=640606716442050605)发布于 2021-11-04 17:48:10
一种解决方案(我使用的)是踢机器人,并邀请它回来,它被清除了。
应该有一个用于它的api方法(比如在Discord.js中,您可以只提供一个空列表),但是我没有找到一个。通过文档,github或其他方式,所以现在我相信这是唯一的解决方案。
https://stackoverflow.com/questions/69839585
复制相似问题