diff --git a/binary-compatibility-validator/api/binary-compatibility-validator.api b/binary-compatibility-validator/api/binary-compatibility-validator.api index 259978db9..c6342ef95 100644 --- a/binary-compatibility-validator/api/binary-compatibility-validator.api +++ b/binary-compatibility-validator/api/binary-compatibility-validator.api @@ -579,6 +579,11 @@ public abstract interface class net/mamoe/mirai/contact/Stranger : kotlinx/corou public fun uploadImage (Lnet/mamoe/mirai/utils/ExternalResource;)Lnet/mamoe/mirai/message/data/Image; } +public final class net/mamoe/mirai/contact/StrangerKt { + public static final fun asFriend (Lnet/mamoe/mirai/contact/Stranger;)Lnet/mamoe/mirai/contact/Friend; + public static final fun asFriendOrNull (Lnet/mamoe/mirai/contact/Stranger;)Lnet/mamoe/mirai/contact/Friend; +} + public abstract interface class net/mamoe/mirai/contact/TempUser : net/mamoe/mirai/contact/User { public fun queryProfile ()Lnet/mamoe/mirai/data/UserProfile; public fun sendMessage (Ljava/lang/String;)Lnet/mamoe/mirai/message/MessageReceipt; diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt b/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt index 1adc68253..cee50b1bb 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt @@ -91,4 +91,19 @@ public interface Stranger : User, CoroutineScope { * @see Nudge.sendTo 发送这个戳一戳消息 */ public override fun nudge(): StrangerNudge = StrangerNudge(this) -} \ No newline at end of file +} + + +/** + * 得到此陌生人作为好友的对象. + * + * @throws IllegalStateException 当此成员不是好友时抛出 + * @since 2.2 + */ +public fun Stranger.asFriend(): Friend = this.bot.getFriend(this.id) ?: error("$this is not a friend") + +/** + * 得到此陌生人作为好友的对象, 当此成员不是好友时返回 `null` + * @since 2.2 + */ +public fun Stranger.asFriendOrNull(): Friend? = this.bot.getFriend(this.id)