feat: add IRCv3 cap negotiation, channel management, state persistence
Implement CAP LS 302 flow with configurable ircv3_caps list, replacing the minimal SASL-only registration. Parse IRCv3 message tags (@key=value) with proper value unescaping. Add channel management plugin (kick, ban, unban, topic, mode) and bot API methods. Add SQLite key-value StateStore for plugin state persistence with !state inspection command. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -22,7 +22,7 @@ make down # Stop
|
||||
|
||||
## Features
|
||||
|
||||
- Async IRC over plain TCP or TLS (SASL PLAIN auth)
|
||||
- Async IRC over plain TCP or TLS (SASL PLAIN auth, IRCv3 CAP negotiation)
|
||||
- Plugin system with `@command` and `@event` decorators
|
||||
- Hot-reload: load, unload, reload plugins at runtime
|
||||
- Admin permission system (hostmask patterns + IRCOP detection)
|
||||
@@ -35,7 +35,7 @@ make down # Stop
|
||||
|
||||
| Plugin | Commands | Description |
|
||||
|--------|----------|-------------|
|
||||
| core | ping, help, version, uptime, whoami, admins, load, reload, unload, plugins | Bot management |
|
||||
| core | ping, help, version, uptime, whoami, admins, load, reload, unload, plugins, state | Bot management |
|
||||
| dns | dns | Raw UDP DNS resolver (A/AAAA/MX/NS/TXT/CNAME/PTR/SOA) |
|
||||
| encode | encode, decode | Base64, hex, URL, ROT13 |
|
||||
| hash | hash, hashid | Hash generation + type identification |
|
||||
@@ -61,6 +61,7 @@ make down # Stop
|
||||
| headers | headers | HTTP header fingerprinting |
|
||||
| exploitdb | exploitdb | Exploit-DB search (local CSV) |
|
||||
| payload | payload | SQLi/XSS/SSTI/LFI/CMDi/XXE templates |
|
||||
| chanmgmt | kick, ban, unban, topic, mode | Channel management (admin) |
|
||||
| example | echo | Demo plugin |
|
||||
|
||||
## Writing Plugins
|
||||
|
||||
Reference in New Issue
Block a user