You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Hikari(lightbulb)实现Discord机器人编辑自身消息

Hikari(Lightbulb) 编辑自身已发送消息实现

你要的/ping指令流程可以直接通过框架上下文的响应方法实现,核心要点是第一次发送消息时必须保存返回的消息对象,后续直接调用该对象的编辑方法即可修改内容,无需额外查询消息ID。

完整实现代码

首先确保你已经安装了依赖:
pip install hikari hikari-lightbulb

import asyncio
import hikari
import lightbulb

# 初始化机器人实例,替换为你自己的机器人Token
bot = lightbulb.BotApp(
    token="YOUR_BOT_TOKEN",
    slash_commands=True,
)

@bot.command
@lightbulb.command("ping", "消息编辑测试指令")
@lightbulb.implements(lightbulb.SlashCommand)
async def ping(ctx: lightbulb.SlashContext) -> None:
    # 发送初始回复,保存返回的消息对象供后续编辑
    sent_msg = await ctx.respond("Pong!")
    # 等待1秒
    await asyncio.sleep(1)
    # 编辑此前发送的消息,替换为最终内容
    await sent_msg.edit("Ping?")

if __name__ == "__main__":
    bot.run()

注意事项

  • 调用ctx.respond()后一定要接收返回值,没有这个消息对象就无法定位你要编辑的那条消息
  • 如果你用了延迟响应(先调用await ctx.defer())的场景,编辑初始响应可以直接用await ctx.edit_last_response("新内容"),不需要额外存消息对象
  • 机器人默认拥有编辑自身发送消息的权限,不需要额外申请特殊权限,也无法编辑其他用户、其他主体发送的消息

内容的提问来源于stack exchange,提问作者PrivateSelensky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:57:22