# simbot3.x-Java-Demo **Repository Path**: mysqlutfko_admin/simbot3.x-Java-Demo ## Basic Information - **Project Name**: simbot3.x-Java-Demo - **Description**: 基于simbot-boot模块的基础示例项目,使用 mirai组件(qq bot) 作为示例组件 - **Primary Language**: Java - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-07-05 - **Last Updated**: 2022-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simbot3.x-Java-Demo 基于simbot-boot模块的基础示例项目,使用 mirai组件(qq bot) 作为示例组件. ## Bot 配置 在boot模块中,所有bot的配置都放在资源目录下的 `resources/simbot-bots/**.bot` 文件中。 在simbot3.x中的 `.bot` 文件等同于 `json` 格式的文件,因此如果你使用的IDE是idea, 你可以通过右键文件,选择 `Revert File Type Override`,选择 `Json` 来使用idea提供的文件高亮。 如果你使用其他的IDE,请自行查询是否有类型的功能。 ## 项目simbot3.x版本 ```java love.forte.simbot.boot simboot-core-spring-boot-starter 3.0.0.preview.16.0 love.forte.simbot.component simbot-component-mirai-boot 3.0.0.0.preview.10.0 love.forte.simbot.component simbot-component-mirai-extra-catcode 3.0.0.0.preview.10.0 ``` ## 话不多说 直接开始 ### 发送图片 ```java event.getFriend().sendBlocking(Image.Key.of(Resource.of(图片文件|流|url|path))); event.getFriend().sendBlocking(Image.Key.of(Resource.of(new File("C://1.png")))); ``` ### 发送文字消息 ```java event.getFriend().sendBlocking(Text.of("消息正文"))); ``` ### 发送表情 使用Face构建一个表情对象 里面传入表情ID Identifies.ID(表情编号) ```java event.getFriend().sendBlocking(new Face(Identifies.ID(12))); ``` ### 文字、表情、图片、AT一起发送 使用消息构建器 MessagesBuilder ```java event.getFriend().sendBlocking(new MessagesBuilder().face(Identifies.ID(12)).image(Resource.of(new File("C://1.png"))).at(event.getFriend().getId()).text("消息正文").build()); ``` ### 3.X使用Listener注解表示监听 具体监听的是群还是好友又或者是好友申请 由入参决定 并且使用Mirai组件则可以使用MiraiGroupMessageEvent等 #### FriendMessageEvent 好友消息 ```java /** * 监听好友消息,并且回复这个好友一句"是的"。 *

* 此处的好友消息类型 {@link FriendMessageEvent} 是simbot所提供的标准事件类型。 * * @param event 监听的事件对象 */ @Listener public void friendListen(FriendMessageEvent event) { final Friend friend = event.getFriend(); log.info("friend: {}({})", friend.getUsername(), friend.getId()); log.info("message: {}", event.getMessageContent().getPlainText()); // 回复消息你可以: // 1. 先判断 event 事件对象是否允许"回复",在允许的情况使用"reply(reply)", 不允许则通过获取好友来直接发送消息。 // 2. 直接获取好友发送消息,不通过事件回复。 // 下面的示例选择方案1 event.replyBlocking("是的"); friend.sendBlocking(event.getMessageContent()); } ``` #### GroupMessageEvent 群消息 ```java /** * 监听群消息包含[你是机器人么]的语句,并且回复发送消息的群员一句"是的"。 *

* 此处的群消息类型 {@link GroupMessageEvent} 是simbot所提供的标准事件类型。 * * @param event 监听的事件对象 */ @Listener @ContentTrim @Filter(value = "你是机器人么", matchType = MatchType.TEXT_CONTAINS) public void myGroupListen2(GroupMessageEvent event){ final Group group = event.getGroup(); log.info("friend: {}({})", group.getName(), group.getId()); log.info("message: {}", event.getMessageContent().getPlainText()); // 回复消息你可以: // 1. 先判断 event 事件对象是否允许"回复",在允许的情况使用"reply(reply)", 不允许则通过获取好友来直接发送消息。 // 2. 直接获取群发送消息,不通过事件回复。 // 下面的示例选择方案1 event.replyBlocking("是的"); group.sendBlocking(event.getMessageContent()); } ``` 另外还提供了一些特殊的注解 例如ContentTrim 注解指将传进来的文本进行trim处理 ## 注意 [wuyou大佬项目地址](https://github.com/wuyou-123/wuyou-robot) 本项目Game模块使用的是wuyou大佬[github](https://github.com)开源代码中斗地主模块(Simbot 2=>3) 尚未完善整体逻辑 使用时需谨慎 无需可直接删除 ## simbot文档/项目地址 [Simbot Robot3](https://github.com/ForteScarlet/simpler-robot) [Simbot Robot语雀文档](https://www.yuque.com/simpler-robot/simpler-robot-doc/mudleb) [Simbot Robot3官方文档](https://simbot.forte.love/) [Simple Robot 图书馆](https://github.com/simple-robot-library) [Simbot-Component-Mirai](https://github.com/simple-robot/simbot-component-mirai) ## 特别鸣谢 [法欧特斯卡雷特大佬](https://gitee.com/ForteScarlet) [wuyou大佬](https://github.com/wuyou-123)