Commit 7efcdf5a authored by ryoii's avatar ryoii

Merge remote-tracking branch 'origin'

parents 830f7306 04da1800
...@@ -2,6 +2,14 @@ ...@@ -2,6 +2,14 @@
开发版本. 频繁更新, 不保证高稳定性 开发版本. 频繁更新, 不保证高稳定性
## `0.15.1` Unreleased
### mirai-core
- 统一异常处理: 所有群成员相关操作无权限时均抛出异常而不返回 `false`.
### mirai-core-qqandroid
- 初始化未完成时缓存接收的所有事件包 (#46)
## `0.15.0` 2020/2/14 ## `0.15.0` 2020/2/14
### mirai-core ### mirai-core
......
...@@ -438,14 +438,14 @@ class MessageSubscribersBuilder<T : MessagePacket<*, *>>( ...@@ -438,14 +438,14 @@ class MessageSubscribersBuilder<T : MessagePacket<*, *>>(
*/ */
@MessageDsl @MessageDsl
inline fun <reified M : Message> has(): ListeningFilter = inline fun <reified M : Message> has(): ListeningFilter =
content { message.any { it::class == M::class } } content { message.any { it is M } }
/** /**
* 如果消息内容包含 [M] 类型的 [Message], 就执行 [onEvent] * 如果消息内容包含 [M] 类型的 [Message], 就执行 [onEvent]
*/ */
@MessageDsl @MessageDsl
inline fun <reified M : Message> has(crossinline onEvent: MessageListener<T>): Listener<T> = inline fun <reified M : Message> has(crossinline onEvent: MessageListener<T>): Listener<T> =
content({ message.any { it::class == M::class } }, onEvent) content({ message.any { it is M } }, onEvent)
/** /**
* 如果 [filter] 返回 `true` * 如果 [filter] 返回 `true`
......
...@@ -3,7 +3,47 @@ ...@@ -3,7 +3,47 @@
Mirai Java Apt Mirai Java Apt
提供一些阻塞/异步/RxJava API 来让 Java 调用 Mirai 的挂起函数 API 更容易 提供阻塞API 来让 Java 调用 Mirai 的 API 更容易
提供 Utils 类来让 Java 调用 Mirai 的内联方法更容易
该模块暂未完成. ## 开始
\ No newline at end of file
```java
class Test{
public static void main(String[] args){
BlockingBot bot = BlockingBot.newInstance(123456, "");
bot.login();
bot.getFriendList().forEach(friend -> {
System.out.println(friend.getNick());
});
Events.subscribeAlways(GroupMessage.class, (GroupMessage message) -> {
final BlockingQQ sender = BlockingContacts.createBlocking(message.getSender());
sender.sendMessage("Hello");
});
Thread.sleep(999999999);
}
}
```
## 便捷开发
在 IntelliJ IDEA 或 Android Studio 中找到设置 `Editor -> General -> Postfix Completion`, 添加一个设置到 `Java` 分类中:
![](.README_images/ce3034e3.png)
Applicable expression types:
```
net.mamoe.mirai.contact.Contact
```
转换后表达式:
```
net.mamoe.mirai.japt.BlockingContacts.createBlocking($EXPR$)
```
效果:
![4SY8BC@J4ZKQM7OZ_~BC1I_1](.README_images/4SY8BC%40J4ZKQM%5D7OZ_~BC1I_1.png)
![722WEHTTXD6XFFH43](.README_images/722W%28E%24HTTX%7BD6XFFH%5D%5D%2443.png)
plugins { plugins {
kotlin("jvm") kotlin("jvm")
java java
`maven-publish`
id("com.jfrog.bintray") version "1.8.4-jetbrains-3" // DO NOT CHANGE THIS VERSION UNLESS YOU WANT TO WASTE YOUR TIME
} }
apply(from = rootProject.file("gradle/publish.gradle"))
val kotlinVersion: String by rootProject.ext val kotlinVersion: String by rootProject.ext
val atomicFuVersion: String by rootProject.ext val atomicFuVersion: String by rootProject.ext
val coroutinesVersion: String by rootProject.ext val coroutinesVersion: String by rootProject.ext
......
package net.mamoe.mirai.japt; package net.mamoe.mirai.japt;
import kotlin.text.StringsKt;
import net.mamoe.mirai.contact.MemberPermission; import net.mamoe.mirai.contact.MemberPermission;
import net.mamoe.mirai.contact.PermissionDeniedException; import net.mamoe.mirai.contact.PermissionDeniedException;
import net.mamoe.mirai.event.events.MemberCardChangeEvent; import net.mamoe.mirai.event.events.MemberCardChangeEvent;
...@@ -40,7 +41,7 @@ public interface BlockingMember extends BlockingQQ { ...@@ -40,7 +41,7 @@ public interface BlockingMember extends BlockingQQ {
@NotNull @NotNull
default String getGroupCardOrNick() { default String getGroupCardOrNick() {
String nameCard = this.getNameCard(); String nameCard = this.getNameCard();
if (!nameCard.isBlank()) { if (!StringsKt.isBlank(nameCard)) {
return nameCard; return nameCard;
} }
return this.getNick(); return this.getNick();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment