合并转发消息 Beta
合并转发消息不是 Chain 对象的方法,需要使用适配器提供的工具类构建。
注意
QQ 频道机器人暂时不支持发送合并转发消息,目前仅支持 mirai-api-http 和 cq-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
| 参数名 | 类型 | 释义 | 默认值 |
|---|---|---|---|
| chain | Chain, list | Chain 对象,可为空 Chain | |
| user_id | int | 用户 ID | |
| nickname | str | 用户昵称(可自定义) | |
| time | int | 发送时间 | 0 |
user_id为实际 QQ 用户的 QQ 号,可以是任意人,在合并消息内显示其头像。nickname为自定义的昵称。
如果 chain 参数传入了空 Chain,则 user_id 和 nickname 为必须参数。
python
await forward.add_message(Chain(data).text(...))
await forward.add_message(Chain().text(...), user_id=..., nickname='...')添加指定 ID 的消息
add_message_by_id
| 参数名 | 类型 | 释义 | 默认值 |
|---|---|---|---|
| message_id | int | 消息 ID |
python
await forward.add_message_by_id(5128)添加嵌套的合并转发消息
为 add_message 的 chain 参数传入 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() # 撤回