Current 对象封装了事件和 Matcher 数据,并根据事件类型的不同,提供不同的便捷函数。更一般地说,Current 对象封装了「当前这次触发事件处理程序所涉及的数据和操作」。
所有 Current 类的基类。
- 类型:
const E &
- 生命期:事件处理程序运行时有效
- 示例:
auto &message = current.event.message;
- 类型:
dolores::StrAnyMap &
- 生命期:事件处理程序运行时有效
- 说明:用于在 Matcher 中保存匹配时产生的数据,之后在事件处理程序中取出
- 示例:
auto command_name = current.matcher_data.get<std::string_view>(command::NAME, "");
- 返回值:
const std::decay_t<T> &
,动态类型转换后的对象 - 示例:
const auto &event = current.event_as<cq::GroupMessageEvent>();
- 参数:
message
:消息内容at_user
:是否在消息开头@触发事件的用户
- 返回值:
int64_t
,消息 ID - 示例:
current.send("你好");
- 说明:等价于
current.send(message, true)
- 示例:
current.reply("你好");
Current 模板类,原样继承 CurrentBase<E>
的所有成员。
Current 模板类对 cq::MessageEvent
的特化。
- 返回值:
std::message
,用户在消息中使用的命令起始符,若该消息没有满足command
Matcher,则返回空字符串 - 示例:
dolores_on_message("echo", command("echo", {"/", "!", "."})) { current.command_starter(); // 可能取值为 / ! . }
- 返回值:
std::message
,用户在消息中使用的命令名,若该消息没有满足command
Matcher,则返回空字符串 - 示例:
dolores_on_message("echo", command("echo")) { current.command_name(); // "echo" }
- 返回值:
std::message
,用户在消息中传入的命令参数,若该消息没有满足command
Matcher,则返回空字符串 - 示例:
dolores_on_message("echo", command("echo")) { current.send(current.command_argument()); }
Current 模板类对 cq::RequestEvent
的特化。