From 922c3a1c78ac006b3af7200d4dd02f9035629323 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Sat, 18 Jan 2020 22:34:58 +0800
Subject: [PATCH] Add @Notnull annotations

---
 .../src/main/java/net/mamoe/mirai/japt/BlockingBot.java   | 2 ++
 .../main/java/net/mamoe/mirai/japt/BlockingContacts.java  | 5 +++++
 .../src/main/java/net/mamoe/mirai/japt/BlockingGroup.java | 8 ++++++++
 .../main/java/net/mamoe/mirai/japt/BlockingMember.java    | 5 ++++-
 .../main/kotlin/net/mamoe/mirai/japt/BlockingContacts.kt  | 4 +++-
 5 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java
index 428cbc0af..003dc0f1b 100644
--- a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java
+++ b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingBot.java
@@ -16,6 +16,7 @@ import org.jetbrains.annotations.Nullable;
 
 import java.util.List;
 
+@SuppressWarnings("unused")
 public interface BlockingBot {
     /**
      * 账号信息
@@ -46,6 +47,7 @@ public interface BlockingBot {
     /**
      * 获取缓存的 QQ 对象. 若没有对应的缓存, 则会线程安全地创建一个.
      */
+    @NotNull
     BlockingQQ getQQ(long id);
 
     /**
diff --git a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingContacts.java b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingContacts.java
index de7a3b9cf..e1441b93a 100644
--- a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingContacts.java
+++ b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingContacts.java
@@ -1,5 +1,6 @@
 package net.mamoe.mirai.japt;
 
+import net.mamoe.mirai.Bot;
 import net.mamoe.mirai.contact.Group;
 import net.mamoe.mirai.contact.Member;
 import net.mamoe.mirai.contact.QQ;
@@ -19,4 +20,8 @@ public final class BlockingContacts {
     public static BlockingMember createBlocking(Member member) {
         return new BlockingMemberImpl(member);
     }
+
+    public static BlockingBotImpl createBlocking(Bot bot) {
+        return new BlockingBotImpl(bot);
+    }
 }
diff --git a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java
index 2805ad9f7..1065cbbac 100644
--- a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java
+++ b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingGroup.java
@@ -1,6 +1,7 @@
 package net.mamoe.mirai.japt;
 
 import net.mamoe.mirai.data.GroupInfo;
+import org.jetbrains.annotations.NotNull;
 
 import java.util.Map;
 
@@ -15,18 +16,21 @@ public interface BlockingGroup extends BlockingContact {
      * 群主 (同步事件更新)
      * 进行 [updateGroupInfo] 时将会更新这个值.
      */
+    @NotNull
     BlockingMember getOwner();
 
     /**
      * 群名称 (同步事件更新)
      * 进行 [updateGroupInfo] 时将会更新这个值.
      */
+    @NotNull
     String getName();
 
     /**
      * 入群公告, 没有时为空字符串. (同步事件更新)
      * 进行 [updateGroupInfo] 时将会更新这个值.
      */
+    @NotNull
     String getAnnouncement();
 
     /**
@@ -34,11 +38,13 @@ public interface BlockingGroup extends BlockingContact {
      * <p>
      * **注意**: 获得的列表仅为这一时刻的成员列表的镜像. 它将不会被更新
      */
+    @NotNull
     Map<Long, BlockingMember> getMembers();
 
     /**
      * 获取群成员. 若此 ID 的成员不存在, 则会抛出 [kotlin.NoSuchElementException]
      */
+    @NotNull
     BlockingMember getMember(long id);
 
     /**
@@ -46,6 +52,7 @@ public interface BlockingGroup extends BlockingContact {
      *
      * @return 这一时刻的群资料
      */
+    @NotNull
     GroupInfo updateGroupInfo();
 
     /**
@@ -53,5 +60,6 @@ public interface BlockingGroup extends BlockingContact {
      */
     boolean quit();
 
+    @NotNull
     String toFullString();
 }
\ No newline at end of file
diff --git a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingMember.java b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingMember.java
index bea594a00..c8b543b86 100644
--- a/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingMember.java
+++ b/mirai-japt/src/main/java/net/mamoe/mirai/japt/BlockingMember.java
@@ -1,17 +1,20 @@
 package net.mamoe.mirai.japt;
 
 import net.mamoe.mirai.contact.MemberPermission;
+import org.jetbrains.annotations.NotNull;
 
 @SuppressWarnings("unused")
 public interface BlockingMember {
     /**
      * 所在的群
      */
+    @NotNull
     BlockingGroup getGroup();
 
     /**
      * 权限
      */
+    @NotNull
     MemberPermission getPermission();
 
     /**
@@ -20,7 +23,7 @@ public interface BlockingMember {
      * @param durationSeconds 持续时间. 精确到秒. 范围区间表示为 `(0s, 30days]`. 超过范围则会抛出异常.
      * @return 若机器人无权限禁言这个群成员, 返回 `false`
      */
-    Boolean mute(int durationSeconds);
+    boolean mute(int durationSeconds);
 
     /**
      * 解除禁言
diff --git a/mirai-japt/src/main/kotlin/net/mamoe/mirai/japt/BlockingContacts.kt b/mirai-japt/src/main/kotlin/net/mamoe/mirai/japt/BlockingContacts.kt
index e583d33b5..a3ea871ac 100644
--- a/mirai-japt/src/main/kotlin/net/mamoe/mirai/japt/BlockingContacts.kt
+++ b/mirai-japt/src/main/kotlin/net/mamoe/mirai/japt/BlockingContacts.kt
@@ -2,10 +2,12 @@
 
 package net.mamoe.mirai.japt
 
+import net.mamoe.mirai.Bot
 import net.mamoe.mirai.contact.Group
 import net.mamoe.mirai.contact.Member
 import net.mamoe.mirai.contact.QQ
 
 inline fun Group.blocking(): BlockingGroup = BlockingContacts.createBlocking(this)
 inline fun QQ.blocking(): BlockingQQ = BlockingContacts.createBlocking(this)
-inline fun Member.blocking(): BlockingMember = BlockingContacts.createBlocking(this)
\ No newline at end of file
+inline fun Member.blocking(): BlockingMember = BlockingContacts.createBlocking(this)
+inline fun Bot.blocking(): BlockingBot = BlockingContacts.createBlocking(this)
\ No newline at end of file