Bläddra i källkod

Improve nudge:
- Introduce common UserOrBot.nudge for User and Bot
- Update docs

Him188 5 år sedan
förälder
incheckning
8fa6189138

+ 1 - 1
mirai-core-api/src/commonMain/kotlin/Bot.kt

@@ -188,7 +188,7 @@ public abstract class Bot internal constructor(
      * @see MemberNudge.sendTo 发送这个戳一戳消息
      */
     @MiraiExperimentalApi
-    public fun nudge(): BotNudge = BotNudge(this)
+    public override fun nudge(): BotNudge = BotNudge(this)
 
     /**
      * 关闭这个 [Bot], 立即取消 [Bot] 的 [SupervisorJob].

+ 2 - 1
mirai-core-api/src/commonMain/kotlin/contact/Friend.kt

@@ -21,6 +21,7 @@ import net.mamoe.mirai.event.events.FriendMessagePreSendEvent
 import net.mamoe.mirai.message.MessageReceipt
 import net.mamoe.mirai.message.MessageReceipt.Companion.recall
 import net.mamoe.mirai.message.action.FriendNudge
+import net.mamoe.mirai.message.action.Nudge
 import net.mamoe.mirai.message.data.Message
 import net.mamoe.mirai.message.data.isContentEmpty
 import net.mamoe.mirai.message.data.toPlainText
@@ -86,7 +87,7 @@ public interface Friend : User, CoroutineScope {
     /**
      * 创建一个 "戳一戳" 消息
      *
-     * @see FriendNudge.sendTo 发送这个戳一戳消息
+     * @see Nudge.sendTo 发送这个戳一戳消息
      */
     @MiraiExperimentalApi
     public override fun nudge(): FriendNudge = FriendNudge(this)

+ 2 - 2
mirai-core-api/src/commonMain/kotlin/contact/Member.kt

@@ -170,10 +170,10 @@ public interface Member : User {
     /**
      * 创建一个 "戳一戳" 消息
      *
-     * @see MemberNudge.sendTo 发送这个戳一戳消息
+     * @see Nudge.sendTo 发送这个戳一戳消息
      */
     @MiraiExperimentalApi
-    public override fun nudge(): Nudge = MemberNudge(this)
+    public override fun nudge(): MemberNudge = MemberNudge(this)
 }
 
 /**

+ 3 - 3
mirai-core-api/src/commonMain/kotlin/contact/User.kt

@@ -17,8 +17,8 @@ import net.mamoe.mirai.Bot
 import net.mamoe.mirai.event.events.*
 import net.mamoe.mirai.message.MessageReceipt
 import net.mamoe.mirai.message.MessageReceipt.Companion.recall
-import net.mamoe.mirai.message.action.FriendNudge
 import net.mamoe.mirai.message.action.Nudge
+import net.mamoe.mirai.message.action.UserNudge
 import net.mamoe.mirai.message.data.Image
 import net.mamoe.mirai.message.data.Message
 import net.mamoe.mirai.message.data.isContentEmpty
@@ -94,10 +94,10 @@ public interface User : Contact, UserOrBot, CoroutineScope {
     /**
      * 创建一个 "戳一戳" 消息
      *
-     * @see FriendNudge.sendTo 发送这个戳一戳消息
+     * @see Nudge.sendTo 发送这个戳一戳消息
      */
     @MiraiExperimentalApi
-    public fun nudge(): Nudge
+    public override fun nudge(): UserNudge
 
     /**
      * 上传一个图片以备发送.

+ 11 - 1
mirai-core-api/src/commonMain/kotlin/contact/UserOrBot.kt

@@ -10,6 +10,8 @@
 package net.mamoe.mirai.contact
 
 import net.mamoe.mirai.Bot
+import net.mamoe.mirai.message.action.Nudge
+import net.mamoe.mirai.utils.MiraiExperimentalApi
 
 /**
  * @see User
@@ -17,4 +19,12 @@ import net.mamoe.mirai.Bot
  *
  * @see ContactOrBot
  */
-public interface UserOrBot : ContactOrBot
+public interface UserOrBot : ContactOrBot {
+    /**
+     * 创建一个 "戳一戳" 消息
+     *
+     * @see Nudge.sendTo 发送这个戳一戳消息
+     */
+    @MiraiExperimentalApi
+    public fun nudge(): Nudge
+}

+ 5 - 5
mirai-core-api/src/commonMain/kotlin/message/action/Nudge.kt

@@ -31,7 +31,7 @@ public sealed class Nudge {
     /**
      * 戳的对象. 即 "A 戳了 B" 中的 "B".
      */
-    public abstract val target: ContactOrBot // User or Bot
+    public abstract val target: UserOrBot // User or Bot
 
     /**
      * 发送戳一戳该成员的消息.
@@ -79,7 +79,7 @@ public sealed class Nudge {
  */
 @MiraiExperimentalApi
 public data class BotNudge(
-    public override val target: Bot
+    public override val target: UserOrBot
 ) : Nudge()
 
 /**
@@ -88,7 +88,7 @@ public data class BotNudge(
  */
 @MiraiExperimentalApi
 public sealed class UserNudge : Nudge() {
-    public abstract override val target: User
+    public abstract override val target: UserOrBot
 }
 
 /**
@@ -97,7 +97,7 @@ public sealed class UserNudge : Nudge() {
  */
 @MiraiExperimentalApi
 public data class MemberNudge(
-    public override val target: Member
+    public override val target: UserOrBot
 ) : UserNudge()
 
 /**
@@ -106,5 +106,5 @@ public data class MemberNudge(
  */
 @MiraiExperimentalApi
 public data class FriendNudge(
-    public override val target: Friend
+    public override val target: UserOrBot
 ) : UserNudge()