🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
此章节演示了一些api的用法 源码地址: https://gitee.com/lliioollcn/mirai-demo-java/blob/master/src/main/java/cn/lliiooll/demo/listener/DemoListener.java ## 发送消息 sendMessage()方法被用来发送消息。 括号内可以填一个String类型或者 net.mamoe.mirai.message.data.MessageChain 类型的参数。 如果你想异步发送一个消息,请使用sendMessageAsync()方法。 ## 一些例子 ~~~ sendMessage(new At(event.getSender()));// at发送者 sendMessage(event.getGroup().uploadImage(new File("图片文件")));// 发送图片 sendMessage(new Face(0));// 发送id为0的表情 sendMessage("这是一条消息");// 只发送一条文字消息 sendMessage(new PokeMessage("显示的名称", PokeMessage.Poke.getType(), PokeMessage.Poke.getId()));// 发送一个戳一戳 sendMessage(MessageUtils.flash(event.getGroup().uploadImage(new File("图片文件"))));// 发送一个闪照 sendMessage( MessageUtils.newChain("测试消息") .plus(event.getGroup().uploadImage(new File("图片文件"))) .plus(new Face(0)) );// 发送一个包含多个元素的消息 ~~~ ## 处理消息 ~~~ 注: 这里的MessageChain指MessageChain类型,他可以为event.getMessage()等。 // 转换为文字类型。例如表情等这样的特殊消息将会被转换为[表情]这样的文本 MessageChain.contentToString() // 处理一个At At at = MessageChain.firstOrNull(At.Key); // 处理一个Image同理 Image image =MessageChain.firstOrNull(Image.Key); // 处理多个特殊消息 MessageChain.forEach(message -> { // 遍历一个消息包含的所有消息类型 if (message instanceof At) { // 当类型为at一个人时 At _at = (At) message;// 因为已经判断过了,所以强转不会报错 // do something... } else if (message instanceof Image) { // 当类型为图片时 Image _image = (Image) message; // do something... } else if (message instanceof Face) { // 当类型为表情时 Face face = (Face) message; // do something... } else if (message instanceof PokeMessage) { // 当类型为戳一戳时 PokeMessage pokeMessage = (PokeMessage) message; // do something... } else if (message instanceof FlashImage) { // 当类型为闪照时 FlashImage flashImage = (FlashImage) message; // do something... } }); ~~~