Kerangka kerja pengembangan cepat robot QQ berdasarkan protokol OneBot
Dokumentasi · Unduh · Mulai Cepat · Kontribusi
Mulai dari versi
v2
hanyaJDK 17+
danSpringBoot 3.0.0+
yang didukung.Lihat panduan migrasi dokumentasi proyek v2 untuk detailnya.
Saat memperkenalkan dependensi, harap ganti versi
latest
dengan versi terbaru sebenarnya dariMaven Central
< dependency >
< groupId >com.mikuac</ groupId >
< artifactId >shiro</ artifactId >
< version >latest</ version >
</ dependency >
implementation( " com.mikuac:shiro:latest " )
implementation ' com.mikuac:shiro:latest '
Tulis file konfigurasi
application.yaml
atau lihat file konfigurasi lanjutan
server :
port : 5000
@ Shiro
@ Component
public class ExamplePlugin {
// 更多用法详见 @MessageHandlerFilter 注解源码
// 当机器人收到的私聊消息消息符合 cmd 值 "hi" 时,这个方法会被调用。
@ PrivateMessageHandler
@ MessageHandlerFilter ( cmd = "hi" )
public void fun1 ( Bot bot , PrivateMessageEvent event , Matcher matcher ) {
// 构建消息
String sendMsg = MsgUtils . builder (). face ( 66 ). text ( "Hello, this is shiro demo." ). build ();
// 发送私聊消息
bot . sendPrivateMsg ( event . getUserId (), sendMsg , false );
}
// 如果 at 参数设定为 AtEnum.NEED 则只有 at 了机器人的消息会被响应
@ GroupMessageHandler
@ MessageHandlerFilter ( at = AtEnum . NEED )
public void fun2 ( GroupMessageEvent event ) {
// 以注解方式调用可以根据自己的需要来为方法设定参数
// 例如群组消息可以传递 GroupMessageEvent, Bot, Matcher 多余的参数会被设定为 null
System . out . println ( event . getMessage ());
}
// 同时监听群组及私聊消息 并根据消息类型(私聊,群聊)回复
@ AnyMessageHandler
@ MessageHandlerFilter ( cmd = "say hello" )
public void fun3 ( Bot bot , AnyMessageEvent event ) {
bot . sendMsg ( event , "hello" , false );
}
}
plugin-list
resources/application.yaml
MESSAGE_BLOCK
plugin berikutnya tidak akan dijalankan.Tulis file konfigurasi
application.yaml
atau lihat file konfigurasi lanjutan
server :
port : 5000
shiro :
plugin-list :
- com.example.bot.plugins.ExamplePlugin
@ Component
public class ExamplePlugin extends BotPlugin {
@ Override
public int onPrivateMessage ( Bot bot , PrivateMessageEvent event ) {
if ( "hi" . equals ( event . getMessage ())) {
// 构建消息
String sendMsg = MsgUtils . builder ()
. face ( 66 )
. text ( "hello, this is shiro example plugin." )
. build ();
// 发送私聊消息
bot . sendPrivateMsg ( event . getUserId (), sendMsg , false );
}
// 返回 MESSAGE_IGNORE 执行 plugin-list 下一个插件,返回 MESSAGE_BLOCK 则不执行下一个插件
return MESSAGE_IGNORE ;
}
@ Override
public int onGroupMessage ( Bot bot , GroupMessageEvent event ) {
if ( "hi" . equals ( event . getMessage ())) {
// 构建消息
String sendMsg = MsgUtils . builder ()
. at ( event . getUserId ())
. face ( 66 )
. text ( "hello, this is shiro example plugin." )
. build ();
// 发送群消息
bot . sendGroupMsg ( event . getGroupId (), sendMsg , false );
}
// 返回 MESSAGE_IGNORE 执行 plugin-list 下一个插件,返回 MESSAGE_BLOCK 则不执行下一个插件
return MESSAGE_IGNORE ;
}
}
Shiro dikembangkan menggunakan protokol standar OneBot-v11 dan kompatibel dengan semua klien protokol OneBot yang mendukung WebSocket terbalik.
proyek | menggambarkan | Komentar |
---|---|---|
LLOneBot | Jadikan NTQQ Anda mendukung protokol OneBot11 untuk pengembangan robot QQ | |
Lagrange.Inti | Implementasi protokol NTQQ | |
go-cqhttp | Implementasi asli OneBot Golang berdasarkan Mirai dan MiraiGo | Hentikan pemeliharaan |
BukaShamrock | Menerapkan kerangka robot standar OneBot berdasarkan Xpose |
Lihat Berkontribusi untuk detailnya. Terima kasih kepada semua orang yang telah berkontribusi!
Produk ini dilisensikan di bawah Lisensi Publik Umum GNU versi 3. Lisensi ini diterbitkan oleh Free Software Foundation di https://www.gnu.org/licenses/gpl-3.0.html.
Alternatifnya, produk ini dilisensikan di bawah GNU Lesser General Public License versi 3 untuk penggunaan non-komersial. Lisensi ini diterbitkan oleh Free Software Foundation yang diterbitkan di https://www.gnu.org/licenses/lgpl-3.0.html. .
Jangan ragu untuk menghubungi kami jika Anda memiliki pertanyaan tentang perizinan atau ingin menggunakan perpustakaan dalam produk sumber tertutup komersial.
JetBrains menawarkan lisensi gratis untuk mendukung proyek sumber terbuka.