# 文本消息

纯文本回复在 BotRS 中覆盖四种目的地，每种都有自己的 `*Params` 结构体和 `post_*_with_params` API。对应 demo：

- 频道 @ 回复：[`demo_at_reply.rs`](https://github.com/YinMo19/botrs/blob/main/examples/demo_at_reply.rs)
- 带引用块的频道回复：[`demo_at_reply_reference.rs`](https://github.com/YinMo19/botrs/blob/main/examples/demo_at_reply_reference.rs)
- 群消息（QQ 群）：[`demo_group_reply_text.rs`](https://github.com/YinMo19/botrs/blob/main/examples/demo_group_reply_text.rs)
- C2C（单聊）消息：[`demo_c2c_reply_text.rs`](https://github.com/YinMo19/botrs/blob/main/examples/demo_c2c_reply_text.rs)
- 频道内私信：[`demo_dms_reply.rs`](https://github.com/YinMo19/botrs/blob/main/examples/demo_dms_reply.rs)

## 选用合适的调用

频道回复最短的写法是 `Message::reply`。其他场景（群、C2C、私信，或需要 `Reference`、`msg_id`、`event_id`、附件、embed 的回复）请构造对应的 `*Params` 并调用对应的 `BotApi` 方法：

| 目的地       | Params                | API 方法                              |
|--------------|-----------------------|---------------------------------------|
| 频道         | `MessageParams`       | `post_message_with_params`            |
| 私信         | `DirectMessageParams` | `post_dms_with_params`                |
| 群           | `GroupMessageParams`  | `post_group_message_with_params`      |
| C2C          | `C2CMessageParams`    | `post_c2c_message_with_params`        |

```rust
// 引用回复（频道）— 见 demo_at_reply_reference.rs
let params = MessageParams {
    content: Some("<emoji:4>这是一条引用消息".to_string()),
    message_reference: Some(Reference { message_id: Some(message_id.clone()), ignore_get_message_error: None }),
    ..Default::default()
};
ctx.api.post_message_with_params(&ctx.token, channel_id, params).await?;
```

群与 C2C 记得把 `msg_type` 设为 `0`（纯文本），并把 `msg_id: message.id.clone()` 一起传给平台，这样回复才能正确串起会话（见 `demo_group_reply_text.rs`、`demo_c2c_reply_text.rs`）。私信还需要从入站 `Message` 拿 `guild_id`（或先调用 `BotApi::create_dms`，见 `demo_dms_reply.rs`）。

## 参见

- 指南：[`docs/zh/guide/messages.md`](../guide/messages.md)
- Builder 辅助：`MessageParams::new_text(...).with_reply(...)`，`Group/C2C/DirectMessageParams` 上有同名方法
- 上面列出的 `examples/` 源文件
