繁体   English   中英

Pycord - 使用 Slash 命令编辑机器人消息

[英]Pycord - Edit bot messages using Slash Commands

我正在尝试使用消息 ID 发出命令来编辑机器人消息,我做了一个前缀并且效果很好,但我不确定如何使斜杠命令变得更容易,这是我尝试过的:

@bot.slash_command(name="edit", description="Edits the bot messages", guild=discord.Object(id=824342611774144543))
async def edit(self, id: Option(int, description="Message ID", required=True), message: Option(str, description="New Input Message", required=True)):
    msg = self.bot.get_message(id)
    await msg.edit(message)

当我尝试使用斜杠命令时,它没有显示任何选项

命令需要一个ctx参数作为命令的上下文。

Pycord 在 ** guild_ids ** 参数中使用实际的公会 ID,而不是 discord.py 中的guild discord.Object s。

由于您有self参数,我假设您处于困境。 您需要改用@discord.slash_command装饰器。

此外, bot.get_message检查缓存,这意味着它不会一直找到消息。 您应该改为使用await ctx.channel.fetch_message(id)进行 API 调用,如果消息存在于当前频道中,则会找到该消息。

@discord.slash_command(name="edit", description="Edits the bot messages", guild_ids=[824342611774144543])  # use guild_ids instead
async def edit(
    self,
    ctx: discord.ApplicationContext,  # missing ctx parameter
    id: Option(int, description="Message ID", required=True),
    message: Option(str, description="New Input Message", required=True)
):
    msg = await ctx.channel.fetch_message(id)  # fetch instead
    await msg.edit(message)

如果你有其他关于pycord的问题,最好在支持服务器中询问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM