洛玖SDK说明
写在前面
2026年4月13日
已完成基础的luo9_bot架构搭建 -> luoy-oss/luo9_bot
已完成基础的Rust sdk -> luo9-bot/luo9_sdk_rust
已完成基础的C++ sdk -> luo9-bot/luo9_sdk_cpp
已完成基础的rust插件样例-> luo9-bot/plugin-rust-example
已完成基础的c++插件样例-> luo9-bot/plugin-cpp-example
2026年3月28日
随着rust的学习推进,发现旧版本的rust实现较为劣质,现阶段正在进行重构
本项目不作为核心项目开发,项目的迭代时间并不确定
请不要使用以下sdk,当前页面仅作保留,后续将继续使用该页面进行sdk更新跟进
架构模式:
┌────────────────────────┐
│ 主程序 (Rust)
│ ├── 网络层 (WebSocket)
│ ├── API实现
│ └── 插件管理器
└────────────┬───────────┘
│ 启动时注入函数指针表
▼
┌────────────────────────┐
│ 插件DLL (C/ Rust/Python)
│ ├── 保存API表
│ ├── 业务逻辑
│ └── 导出事件处理函数
└────────────────────────┘
指令解析(Command)
luo9_sdk提供了Command 库,你可以使用它进行简单高效的指令前缀解析功能,支持自定义前缀字符和三种前缀模式。
| 模式 | 说明 | 示例 |
|---|---|---|
Required(char) |
必须有指定前缀才解析成功 | /echo hello → 解析成功 |
Optional(char) |
前缀可选,有或没有都能解析 | echo hello 或 /echo hello 都能解析 |
None |
不检查前缀,直接解析 | echo hello → 解析成功 |
基本用法
Rust
1 | |
C++
1 | |
常用方法速查
| 方法 | Rust | C++ | 说明 |
|---|---|---|---|
| 获取指令名 | cmd.name() |
cmd.name() |
返回匹配到的指令名称 |
| 获取原始参数 | cmd.args_raw() |
cmd.args_raw() |
返回去除指令名后的参数字符串 |
| 是否有参数 | cmd.has_args() |
cmd.has_args() |
返回 bool |
| 参数个数 | cmd.args_count() |
cmd.args_count() |
返回参数数量 |
| 获取指定参数 | cmd.arg_at(0) |
cmd.arg_at(0) |
返回第 n 个参数 |
解析规则说明
假设指令名为 echo,前缀为 /:
| 输入消息 | 必选前缀模式 | 可选前缀模式 | 无前缀模式 |
|---|---|---|---|
/echo hello |
✅ 成功 | ✅ 成功 | ❌ 失败 |
echo hello |
❌ 失败 | ✅ 成功 | ✅ 成功 |
/test hello |
❌ 失败(指令名不匹配) | ❌ 失败 | ❌ 失败 |
Rust 与 C++ 对比
| 操作 | Rust | C++ |
|---|---|---|
| 解析成功判断 | match / if let Some(cmd) |
if (!cmd.empty()) |
| 解析失败处理 | None => {} |
empty() == true |
| 获取参数 | cmd.args_raw() |
cmd.args_raw() |
| 前缀模式 | PrefixMode::Required('/') |
PrefixMode::Required('/') |
插件消息分发
你会收到如下的消息类型:
群消息
私聊消息
Rust模板
你可以从luo9-bot/plugin-rust-example找到 rust的插件开发样例
插件最终会向handle_private_msg和handle_group_msg推送私聊/群聊消息,你可以在其中进行处理
处理完成后,你可以调用Bot::send_private_msg或Bot::send_group_msg进行消息发送
1 | |
C++模板
你可以从luo9-bot/plugin-cpp-example找到 rust的插件开发样例
插件最终会向handle_private_msg和handle_group_msg推送私聊/群聊消息,你可以在其中进行处理
处理完成后,你可以调用Bot::send_private_msg或Bot::send_group_msg进行消息发送
1 | |
群聊事件
私聊事件
事件名称 事件含义 inputing 正在输入中 poke 收到戳一戳


