Zhin Framework Helper
This skill provides comprehensive guidance for working with the Zhin chatbot framework.
What is Zhin?
Zhin is a powerful, flexible chatbot framework for Node.js that supports multiple chat platforms including:
- QQ and ICQQ
- Discord
- OneBot (versions 11 and 12)
- DingTalk
- And more
Core Concepts
1. Bot Creation
To create a new Zhin bot:
npm init zhin-bot my-bot
cd my-bot
npm install
npm start
2. Plugin Development
Zhin uses a plugin-based architecture. A basic plugin structure:
import { Plugin } from 'zhin';
export default class MyPlugin extends Plugin {
constructor(ctx) {
super(ctx);
}
async install() {
// Plugin initialization logic
}
async uninstall() {
// Cleanup logic
}
}
3. Message Handling
Handle messages using middleware pattern:
bot.middleware((session, next) => {
// Process message
if (session.content === 'hello') {
return session.reply('Hi there!');
}
return next();
});
4. Commands
Register commands for bot interaction:
bot.command('ping')
.action((session) => {
return session.reply('Pong!');
});
Platform Integration
Connecting to Platforms
Each platform requires specific configuration:
QQ/ICQQ
bot.adapter('icqq', {
uin: 'YOUR_QQ_NUMBER',
password: 'YOUR_PASSWORD'
});
Discord
bot.adapter('discord', {
token: 'YOUR_BOT_TOKEN'
});
Best Practices
- Modular Design: Keep plugins focused and single-purpose
- Error Handling: Always handle errors gracefully
- Async Operations: Use async/await for asynchronous operations
- Configuration: Use configuration files for sensitive data
- Testing: Write tests for your plugins
Common Tasks
Installing Dependencies
npm install [package-name]
Running in Development
npm run dev
Building for Production
npm run build
Troubleshooting
Bot Not Responding
- Check network connectivity
- Verify adapter configuration
- Review error logs
Plugin Not Loading
- Ensure plugin is properly installed
- Check plugin dependencies
- Verify plugin configuration
Resources
When to Use This Skill
Use this skill when:
- Creating a new Zhin chatbot
- Developing plugins for Zhin
- Integrating with chat platforms
- Troubleshooting Zhin-related issues
- Learning about the Zhin framework architecture