Avalon is a scalable multi-function group robot for QQ and Discord.
The support for QQ is based on CoolQ-HTTP-API, and the support for Discord is based on JDA. The connection with Microsoft XiaoIce is based on Mojo-Weixin (may not works except in China).
Note: Because Avalon is designed for QQ (an IM most of which users are Chinese) initially, and therefore some commands and functions are only available in nations and areas using Chinese.
- Natural language question answering: Avalon has been docked to Wolfram Alpha in order to provide natural language question answering service. You could use it by command
avalon tell me
. - Message record and quote: If configured correctly, Avalon will record every message in group(s) into a database. You can also quote message into database annually by command
avalon quote
. - Build status notification: When the build status for specified project(s) update, Avalon will send notification. (AppVeyor and TravisCI supported.)
- Execute code online: Avalon allows you to execute a piece of code by command
avalon execute
. 35+ programming languages supported, include Java, Rust, Ruby, JavaScript, Kotlin, C++, and so on. (served by glot.io) - Notification sent when RSS update: After enable RSS function and specified the URL(s), Avalon will send notification when these RSS update.
- Scalable: Avalon allows you to add new function or feature by MessageHook or Plugin.
- (Unavailable except in Chinese nations or areas) Smart reply: Avalon has been docked to Microsoft XiaoIce to privide smart reply service (just like chat bot), you could use it by command
avalon answer me
. - Unavailable except in Chinese nations or areas) Hitokoto: Avalon has been docked to 一言 to provide "hitokoto". You could config Avalon to send one when started or use command
avalon hitokoto
to get one. - ...
All commands listed below can be triggered by some particular command as long as has required permission.
❕: Admin command. Only users specficed as admin in group.json
and owner could execute these commands.
❗: Owner command. Only user specified as owner in group.json
could execute these commands.
⚪: Unmanagerable command. These command can not be managed by avalon manager
, but can be disabled in config.json
.
🔴: Basic command. These command can neither be managed by avalon manager
nor disabled in config.json
.
Name | Trigger command | Description |
---|---|---|
Blacklist | avalon blacklist (list OR add OR remove) |
⚪ ❕ List all accounts in blacklist. Add account to blacklist or remove from it. |
Echo | avalon (ec OR echo) |
Avalon will repeat the given sentence. |
Execute | avalon (ex OR execute) <LANGUAGE>{ENTER}<CODE> |
Execute given code and echo the return or the error message. |
ExecuteInfo | avalon (exi OR execute info) |
For info about code executor. |
Flush | avalon flush |
⚪ ❕ Flush caches and delete temp files. |
Heartbeat | avalon (hb OR heartbeat) |
⚪ Test if Avalon still alives. |
Help | avalon (hp OR help) |
🔴 For help content. |
Manager | avalon manager (start OR stop) <TRIGGER COMMAND> |
⚪ ❕ To start or stop particular command responder. |
Quote | avalon quote <SPEAKER> <CONTENT> |
❕ To quote message into Avalon's database. |
Reboot | avalon reboot |
⚪ ❗ Reboot Avalon. |
ShowAdmin | avalon (wia OR whoisadmin) |
Show list of all admins. |
Shutdown | avalon (shutdown OR exit) |
⚪ ❗ Shutdown Avalon. |
Version | avalon (ver OR about) |
🔴 Show version and related info. |
Wolfram | avalon (tm OR tell me) <your question> |
(Only English) Send your question to Wolfram Alpha and echo the return. |
Some commands only available in particular version of Avalon. For more details, see RELEASE Notes for every RELEASE.
All following extension are push-type, they will sent message automatically when state change detected and therefore can not be triggered by command statements.
Name | Description |
---|---|
BuildStatus | Notification will be sent when configured CI build state of given project update. TravisCI and AppVeyor now supported. |
RSSFeeder | Message will sent when configured for RSS update. |
If you want Avalon to have some new functions, welcome new issue.
Commands and extensions not work except in Chinese nations or areas may not listed. For info about these commands and extensions, see Chinese (Simplified) version of README file.
// TODO
- Please make sure your editor support EditorConfig!
- All class under package
group
mustimplements GroupMessageResponder
. - Class or method that tagged as
@deprecated
will removed officially in the next release. - From
v0.0.1
, the version number will follow Semantic Versioning 2.0.0.
See Projects / Avalon.
See Avalon.wiki. (Only Chinese (Simplified) version provided yet ;-) )
This project is developed with IntelliJ IDEA Ultimate and the subscription is obtained freely from Jetbrains Open Source Support Program. Thanks to Jetbrains!