🚀
高性能
基于 TypeScript 构建,编译为原生 JavaScript,性能优异
import { Commander } from 'onebot-commander';
// 创建命令解析器
const commander = new Commander('hello <name:text>');
// 添加处理逻辑
commander
.action((params) => {
console.log(`Hello, ${params.name}!`);
return params.name.toUpperCase();
})
.action((upperName) => {
console.log(`Uppercase: ${upperName}`);
});
// 匹配消息段
const segments = [
{ type: 'text', data: { text: 'hello Alice' } }
];
const result = commander.match(segments);
// 输出: Hello, Alice!
// 输出: Uppercase: ALICE
支持复杂的消息段模式匹配:
// 基础文本匹配
"hello <name:text>"
// 可选参数
"ping [message:text]"
// 复杂模式
"test<arg1:text>[arg2:face]"
// 类型化字面量
"{text:test}<arg1:text>[arg2:face]"
// 剩余参数
"test[...rest:face]"
const asyncCommander = new Commander('echo <message:text>');
asyncCommander
.action(async (params) => {
// 模拟异步操作
await new Promise(resolve => setTimeout(resolve, 100));
return params.message.toUpperCase();
})
.action(async (upperMessage) => {
// 继续异步处理
await new Promise(resolve => setTimeout(resolve, 100));
return upperMessage.length;
});
const result = await asyncCommander.matchAsync(segments);
const customCommander = new Commander('{image:avatar.png}<name:text>', {
image: 'src' // 匹配 data.src 而不是默认的 data.file/url
});
npm install onebot-commander
💡 提示
OneBot Commander 专为 OneBot12 消息段设计,提供类型安全、高性能的消息解析能力。