diff --git a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api index f2dfdc70f..d84f6e447 100644 --- a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api +++ b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api @@ -1345,6 +1345,121 @@ public final class net/mamoe/mirai/data/OnlineStatus$Companion { public final fun ofIdOrNull (I)Lnet/mamoe/mirai/data/OnlineStatus; } +public abstract class net/mamoe/mirai/data/RequestEventData { + public static final field Factory Lnet/mamoe/mirai/data/RequestEventData$Factory; + public synthetic fun <init> (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;)V + public abstract fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun from (Lnet/mamoe/mirai/event/events/BotInvitedJoinGroupRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest; + public static final fun from (Lnet/mamoe/mirai/event/events/MemberJoinRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest; + public static final fun from (Lnet/mamoe/mirai/event/events/NewFriendRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest; + public abstract fun getEventId ()J + public fun reject (Lnet/mamoe/mirai/Bot;)V + public abstract fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest : net/mamoe/mirai/data/RequestEventData { + public static final field Companion Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$Companion; + public synthetic fun <init> (IJJLjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getEventId ()J + public final fun getGroupId ()J + public final fun getGroupName ()Ljava/lang/String; + public final fun getInvitor ()J + public final fun getInvitorNick ()Ljava/lang/String; + public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + +public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$$serializer; + public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$Factory { + public final fun from (Lnet/mamoe/mirai/event/events/BotInvitedJoinGroupRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest; + public final fun from (Lnet/mamoe/mirai/event/events/MemberJoinRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest; + public final fun from (Lnet/mamoe/mirai/event/events/NewFriendRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest : net/mamoe/mirai/data/RequestEventData { + public static final field Companion Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest$Companion; + public synthetic fun <init> (IJJLjava/lang/String;JLjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public synthetic fun <init> (JJLjava/lang/String;JLjava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getEventId ()J + public final fun getGroupId ()J + public final fun getGroupName ()Ljava/lang/String; + public final fun getInvitor ()J + public final fun getMessage ()Ljava/lang/String; + public final fun getRequester ()J + public final fun getRequesterNick ()Ljava/lang/String; + public final fun reject (Lnet/mamoe/mirai/Bot;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lnet/mamoe/mirai/Bot;ZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reject$default (Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;Lnet/mamoe/mirai/Bot;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + +public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest$$serializer; + public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest : net/mamoe/mirai/data/RequestEventData { + public static final field Companion Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest$Companion; + public synthetic fun <init> (IJJLjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getEventId ()J + public final fun getFromGroupId ()J + public final fun getMessage ()Ljava/lang/String; + public final fun getRequester ()J + public final fun getRequesterNick ()Ljava/lang/String; + public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + +public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest$$serializer; + public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public abstract interface class net/mamoe/mirai/data/StrangerInfo : net/mamoe/mirai/data/UserInfo { public abstract fun getFromGroup ()J public abstract fun getNick ()Ljava/lang/String; diff --git a/binary-compatibility-validator/api/binary-compatibility-validator.api b/binary-compatibility-validator/api/binary-compatibility-validator.api index c03f9e2f1..6c1484329 100644 --- a/binary-compatibility-validator/api/binary-compatibility-validator.api +++ b/binary-compatibility-validator/api/binary-compatibility-validator.api @@ -1345,6 +1345,121 @@ public final class net/mamoe/mirai/data/OnlineStatus$Companion { public final fun ofIdOrNull (I)Lnet/mamoe/mirai/data/OnlineStatus; } +public abstract class net/mamoe/mirai/data/RequestEventData { + public static final field Factory Lnet/mamoe/mirai/data/RequestEventData$Factory; + public synthetic fun <init> (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;)V + public abstract fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun from (Lnet/mamoe/mirai/event/events/BotInvitedJoinGroupRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest; + public static final fun from (Lnet/mamoe/mirai/event/events/MemberJoinRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest; + public static final fun from (Lnet/mamoe/mirai/event/events/NewFriendRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest; + public abstract fun getEventId ()J + public fun reject (Lnet/mamoe/mirai/Bot;)V + public abstract fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest : net/mamoe/mirai/data/RequestEventData { + public static final field Companion Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$Companion; + public synthetic fun <init> (IJJLjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getEventId ()J + public final fun getGroupId ()J + public final fun getGroupName ()Ljava/lang/String; + public final fun getInvitor ()J + public final fun getInvitorNick ()Ljava/lang/String; + public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + +public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$$serializer; + public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$Factory { + public final fun from (Lnet/mamoe/mirai/event/events/BotInvitedJoinGroupRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest; + public final fun from (Lnet/mamoe/mirai/event/events/MemberJoinRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest; + public final fun from (Lnet/mamoe/mirai/event/events/NewFriendRequestEvent;)Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest : net/mamoe/mirai/data/RequestEventData { + public static final field Companion Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest$Companion; + public synthetic fun <init> (IJJLjava/lang/String;JLjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public synthetic fun <init> (JJLjava/lang/String;JLjava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getEventId ()J + public final fun getGroupId ()J + public final fun getGroupName ()Ljava/lang/String; + public final fun getInvitor ()J + public final fun getMessage ()Ljava/lang/String; + public final fun getRequester ()J + public final fun getRequesterNick ()Ljava/lang/String; + public final fun reject (Lnet/mamoe/mirai/Bot;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lnet/mamoe/mirai/Bot;ZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reject$default (Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;Lnet/mamoe/mirai/Bot;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + +public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest$$serializer; + public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest : net/mamoe/mirai/data/RequestEventData { + public static final field Companion Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest$Companion; + public synthetic fun <init> (IJJLjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun accept (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun getEventId ()J + public final fun getFromGroupId ()J + public final fun getMessage ()Ljava/lang/String; + public final fun getRequester ()J + public final fun getRequesterNick ()Ljava/lang/String; + public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + +public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest$$serializer; + public static final synthetic field descriptor Lkotlinx/serialization/descriptors/SerialDescriptor; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public abstract interface class net/mamoe/mirai/data/StrangerInfo : net/mamoe/mirai/data/UserInfo { public abstract fun getFromGroup ()J public abstract fun getNick ()Ljava/lang/String; diff --git a/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt b/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt new file mode 100644 index 000000000..517ef364f --- /dev/null +++ b/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt @@ -0,0 +1,216 @@ +/* + * Copyright 2019-2021 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/dev/LICENSE + */ + +@file:Suppress("unused") + +package net.mamoe.mirai.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import net.mamoe.kjbb.JvmBlockingBridge +import net.mamoe.mirai.Bot +import net.mamoe.mirai.Mirai +import net.mamoe.mirai.event.events.BotInvitedJoinGroupRequestEvent +import net.mamoe.mirai.event.events.MemberJoinRequestEvent +import net.mamoe.mirai.event.events.NewFriendRequestEvent +import net.mamoe.mirai.utils.MiraiExperimentalApi + +@Serializable +@SerialName("RequestEventData") +public sealed class RequestEventData { + public abstract val eventId: Long + + @JvmBlockingBridge + public abstract suspend fun accept(bot: Bot) + + @JvmBlockingBridge + public abstract suspend fun reject(bot: Bot) + + @Serializable + @SerialName("NewFriendRequest") + public class NewFriendRequest + @MiraiExperimentalApi public constructor( + override val eventId: Long, + + public val requester: Long, + public val requesterNick: String, + + public val fromGroupId: Long, + + public val message: String, + ) : RequestEventData() { + override suspend fun accept(bot: Bot) { + Mirai.solveNewFriendRequestEvent( + bot, + eventId = eventId, + fromId = requester, + fromNick = requesterNick, + accept = true, + blackList = false, + ) + } + + override suspend fun reject(bot: Bot) { + reject(bot, false) + } + + @JvmBlockingBridge + public suspend fun reject(bot: Bot, blackList: Boolean) { + Mirai.solveNewFriendRequestEvent( + bot, + eventId = eventId, + fromId = requester, + fromNick = requesterNick, + accept = false, + blackList = blackList, + ) + } + + override fun toString(): String { + return "NewFriendRequest(eventId=$eventId, fromGroupId=$fromGroupId, message=$message, requester=$requester, requesterNick=$requesterNick)" + } + } + + @Serializable + @SerialName("BotInvitedJoinGroupRequest") + public class BotInvitedJoinGroupRequest + @MiraiExperimentalApi public constructor( + override val eventId: Long, + + public val invitor: Long, + public val invitorNick: String, + + public val groupId: Long, + public val groupName: String, + ) : RequestEventData() { + override suspend fun accept(bot: Bot) { + Mirai.solveBotInvitedJoinGroupRequestEvent( + bot, + eventId = eventId, + invitorId = invitor, + groupId = groupId, + accept = true, + ) + } + + override suspend fun reject(bot: Bot) { + Mirai.solveBotInvitedJoinGroupRequestEvent( + bot, + eventId = eventId, + invitorId = invitor, + groupId = groupId, + accept = false, + ) + } + + override fun toString(): String { + return "BotInvitedJoinGroupRequest(eventId=$eventId, invitor=$invitor, invitorNick='$invitorNick', groupId=$groupId, groupName='$groupName')" + } + + } + + @Serializable + @SerialName("MemberJoinRequest") + public class MemberJoinRequest + @MiraiExperimentalApi public constructor( + override val eventId: Long, + + public val requester: Long, + public val requesterNick: String, + + public val groupId: Long, + public val groupName: String, + public val invitor: Long = 0L, // 如果不为 0 则为邀请入群 + + public val message: String, + ) : RequestEventData() { + override suspend fun accept(bot: Bot) { + Mirai.solveMemberJoinRequestEvent( + bot, + eventId = eventId, + fromId = requester, + fromNick = requesterNick, + groupId = groupId, + accept = true, + blackList = false, + message = "", + ) + } + + override suspend fun reject(bot: Bot) { + reject(bot, false) + } + + @JvmBlockingBridge + public suspend fun reject(bot: Bot, message: String) { + reject(bot, false, message) + } + + @JvmBlockingBridge + @JvmOverloads + public suspend fun reject(bot: Bot, blackList: Boolean, message: String = "") { + Mirai.solveMemberJoinRequestEvent( + bot, + eventId = eventId, + fromId = requester, + fromNick = requesterNick, + groupId = groupId, + accept = false, + blackList = blackList, + message = message, + ) + } + + override fun toString(): String { + return "MemberJoinRequest(eventId=$eventId, groupId=$groupId, groupName=$groupName, invitor=$invitor, message=$message, requester=$requester, requesterNick=$requesterNick)" + } + + } + + + public companion object Factory { + @JvmStatic + @JvmName("from") + public fun NewFriendRequestEvent.toRequestEventData(): NewFriendRequest { + return NewFriendRequest( + eventId = eventId, + message = message, + requester = fromId, + requesterNick = fromNick, + fromGroupId = fromGroupId, + ) + } + + @JvmStatic + @JvmName("from") + public fun BotInvitedJoinGroupRequestEvent.toRequestEventData(): BotInvitedJoinGroupRequest { + return BotInvitedJoinGroupRequest( + eventId = eventId, + invitor = invitorId, + invitorNick = invitorNick, + groupId = groupId, + groupName = groupName, + ) + } + + @JvmStatic + @JvmName("from") + public fun MemberJoinRequestEvent.toRequestEventData(): MemberJoinRequest { + return MemberJoinRequest( + eventId = eventId, + requester = fromId, + requesterNick = fromNick, + groupId = groupId, + groupName = groupName, + invitor = invitorId ?: 0L, + message = message, + ) + } + } +}