Skip to content
On this page

合并转发消息 Beta

合并转发消息不是 Chain 对象的方法,需要使用适配器提供的工具类构建。

注意

QQ 频道机器人暂时不支持发送合并转发消息,目前仅支持 mirai-api-httpcq-http

python
from amiyabot.adapters.mirai import MiraiForwardMessage
# from amiyabot.adapters.cqhttp import CQHTTPForwardMessage

...

@bot.on_message(keywords='hello')
async def _(data: Message):
    forward = MiraiForwardMessage(data)
    # forward = CQHTTPForwardMessage(data)

    chain = Chain().text(f'hello, {data.nickname}')

    await forward.add_message(chain, user_id=..., nickname='...')
    await forward.send()

添加自定义消息

add_message

参数名类型释义默认值
chainChain, listChain 对象,可为空 Chain
user_idint用户 ID
nicknamestr用户昵称(可自定义)
timeint发送时间0
  • user_id 为实际 QQ 用户的 QQ 号,可以是任意人,在合并消息内显示其头像。
  • nickname 为自定义的昵称。

如果 chain 参数传入了空 Chain,则 user_idnickname 为必须参数。

python
await forward.add_message(Chain(data).text(...))
await forward.add_message(Chain().text(...), user_id=..., nickname='...')

添加指定 ID 的消息

add_message_by_id

参数名类型释义默认值
message_idint消息 ID
python
await forward.add_message_by_id(5128)

添加嵌套的合并转发消息

add_messagechain 参数传入 ForwardMessage 类的 node 属性,即可完成合并消息嵌套。

python
@bot.on_message(keywords='hello')
async def _(data: Message):
    forward = MiraiForwardMessage(data)

    await forward.add_message(...)
    await forward.add_message(...)

    forward2 = MiraiForwardMessage(data)

    await forward2.add_message(forward.node, user_id=..., nickname='...')
    await forward2.send()

发送 & 撤回

python
callback = await forward.send()  # 发送
if callback:
    await callback.recall()  # 撤回