|
|
@@ -91,17 +91,13 @@ internal class QQAndroidBot constructor(
|
|
|
"the request $event is outdated: You had already responded it on another device."
|
|
|
}
|
|
|
|
|
|
- network.run {
|
|
|
- NewContact.SystemMsgNewFriend.Action(
|
|
|
- bot.client,
|
|
|
- event,
|
|
|
- accept = true
|
|
|
- ).sendWithoutExpect()
|
|
|
- bot.friends.delegate.addLast(bot._lowLevelNewFriend(object : FriendInfo {
|
|
|
- override val uin: Long get() = event.fromId
|
|
|
- override val nick: String get() = event.fromNick
|
|
|
- }))
|
|
|
- }
|
|
|
+ _lowLevelSolveNewFriendRequestEvent(
|
|
|
+ eventId = event.eventId,
|
|
|
+ fromId = event.fromId,
|
|
|
+ fromNick = event.fromNick,
|
|
|
+ accept = true,
|
|
|
+ blackList = false
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
override suspend fun rejectNewFriendRequest(event: NewFriendRequestEvent, blackList: Boolean) {
|
|
|
@@ -117,14 +113,13 @@ internal class QQAndroidBot constructor(
|
|
|
"the request $event is outdated: You had already responded it on another device."
|
|
|
}
|
|
|
|
|
|
- network.run {
|
|
|
- NewContact.SystemMsgNewFriend.Action(
|
|
|
- bot.client,
|
|
|
- event,
|
|
|
- accept = false,
|
|
|
- blackList = blackList
|
|
|
- ).sendWithoutExpect()
|
|
|
- }
|
|
|
+ _lowLevelSolveNewFriendRequestEvent(
|
|
|
+ eventId = event.eventId,
|
|
|
+ fromId = event.fromId,
|
|
|
+ fromNick = event.fromNick,
|
|
|
+ accept = false,
|
|
|
+ blackList = blackList
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
@OptIn(LowLevelAPI::class)
|
|
|
@@ -139,21 +134,14 @@ internal class QQAndroidBot constructor(
|
|
|
"the request $this is outdated: Another operator has already responded it."
|
|
|
}
|
|
|
|
|
|
- network.run {
|
|
|
- NewContact.SystemMsgNewGroup.Action(
|
|
|
- bot.client,
|
|
|
- event,
|
|
|
- accept = true
|
|
|
- ).sendWithoutExpect()
|
|
|
- event.group.members.delegate.addLast(event.group.newMember(object : MemberInfo {
|
|
|
- override val nameCard: String get() = ""
|
|
|
- override val permission: MemberPermission get() = MemberPermission.MEMBER
|
|
|
- override val specialTitle: String get() = ""
|
|
|
- override val muteTimestamp: Int get() = 0
|
|
|
- override val uin: Long get() = event.fromId
|
|
|
- override val nick: String get() = event.fromNick
|
|
|
- }))
|
|
|
- }
|
|
|
+ _lowLevelSolveMemberJoinRequestEvent(
|
|
|
+ eventId = event.eventId,
|
|
|
+ fromId = event.fromId,
|
|
|
+ fromNick = event.fromNick,
|
|
|
+ groupId = event.groupId,
|
|
|
+ accept = true,
|
|
|
+ blackList = false
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
@Suppress("DuplicatedCode")
|
|
|
@@ -167,14 +155,15 @@ internal class QQAndroidBot constructor(
|
|
|
check(!event.group.members.contains(event.fromId)) {
|
|
|
"the request $this is outdated: Another operator has already responded it."
|
|
|
}
|
|
|
- network.run {
|
|
|
- NewContact.SystemMsgNewGroup.Action(
|
|
|
- bot.client,
|
|
|
- event,
|
|
|
- accept = false,
|
|
|
- blackList = blackList
|
|
|
- ).sendWithoutExpect()
|
|
|
- }
|
|
|
+
|
|
|
+ _lowLevelSolveMemberJoinRequestEvent(
|
|
|
+ eventId = event.eventId,
|
|
|
+ fromId = event.fromId,
|
|
|
+ fromNick = event.fromNick,
|
|
|
+ groupId = event.groupId,
|
|
|
+ accept = false,
|
|
|
+ blackList = blackList
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
private inline fun checkGroupPermission(eventBot: Bot, eventGroup: Group, eventName: () -> String) {
|
|
|
@@ -198,14 +187,15 @@ internal class QQAndroidBot constructor(
|
|
|
check(event.responded.compareAndSet(false, true)) {
|
|
|
"the request $this has already been responded"
|
|
|
}
|
|
|
- network.run {
|
|
|
- NewContact.SystemMsgNewGroup.Action(
|
|
|
- bot.client,
|
|
|
- event,
|
|
|
- accept = null,
|
|
|
- blackList = blackList
|
|
|
- ).sendWithoutExpect()
|
|
|
- }
|
|
|
+
|
|
|
+ _lowLevelSolveMemberJoinRequestEvent(
|
|
|
+ eventId = event.eventId,
|
|
|
+ fromId = event.fromId,
|
|
|
+ fromNick = event.fromNick,
|
|
|
+ groupId = event.groupId,
|
|
|
+ accept = null,
|
|
|
+ blackList = blackList
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
override suspend fun acceptInvitedJoinGroupRequest(event: BotInvitedJoinGroupRequestEvent) =
|
|
|
@@ -224,13 +214,12 @@ internal class QQAndroidBot constructor(
|
|
|
"the request $this is outdated: Bot has been already in the group."
|
|
|
}
|
|
|
|
|
|
- network.run {
|
|
|
- NewContact.SystemMsgNewGroup.Action(
|
|
|
- bot.client,
|
|
|
- event,
|
|
|
- accept = accept
|
|
|
- ).sendWithoutExpect()
|
|
|
- }
|
|
|
+ _lowLevelSolveBotInvitedJoinGroupRequestEvent(
|
|
|
+ eventId = event.eventId,
|
|
|
+ invitorId = event.invitorId,
|
|
|
+ groupId = event.groupId,
|
|
|
+ accept = accept
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -719,6 +708,78 @@ internal abstract class QQAndroidBotBase constructor(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @LowLevelAPI
|
|
|
+ @MiraiExperimentalAPI
|
|
|
+ override suspend fun _lowLevelSolveNewFriendRequestEvent(eventId: Long, fromId: Long, fromNick: String, accept: Boolean, blackList: Boolean) {
|
|
|
+ network.apply {
|
|
|
+ NewContact.SystemMsgNewFriend.Action(
|
|
|
+ bot.client,
|
|
|
+ eventId = eventId,
|
|
|
+ fromId = fromId,
|
|
|
+ accept = accept,
|
|
|
+ blackList = blackList
|
|
|
+ ).sendWithoutExpect()
|
|
|
+ bot.friends.delegate.addLast(bot._lowLevelNewFriend(object : FriendInfo {
|
|
|
+ override val uin: Long get() = fromId
|
|
|
+ override val nick: String get() = fromNick
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @LowLevelAPI
|
|
|
+ @MiraiExperimentalAPI
|
|
|
+ override suspend fun _lowLevelSolveBotInvitedJoinGroupRequestEvent(
|
|
|
+ eventId: Long,
|
|
|
+ invitorId: Long,
|
|
|
+ groupId: Long,
|
|
|
+ accept: Boolean
|
|
|
+ ) {
|
|
|
+ network.run {
|
|
|
+ NewContact.SystemMsgNewGroup.Action(
|
|
|
+ bot.client,
|
|
|
+ eventId = eventId,
|
|
|
+ fromId = invitorId,
|
|
|
+ groupId = groupId,
|
|
|
+ isInvited = true,
|
|
|
+ accept = accept
|
|
|
+ ).sendWithoutExpect()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @LowLevelAPI
|
|
|
+ @MiraiExperimentalAPI
|
|
|
+ override suspend fun _lowLevelSolveMemberJoinRequestEvent(
|
|
|
+ eventId: Long,
|
|
|
+ fromId: Long,
|
|
|
+ fromNick: String,
|
|
|
+ groupId: Long,
|
|
|
+ accept: Boolean?,
|
|
|
+ blackList: Boolean
|
|
|
+ ) {
|
|
|
+ network.apply {
|
|
|
+ NewContact.SystemMsgNewGroup.Action(
|
|
|
+ bot.client,
|
|
|
+ eventId = eventId,
|
|
|
+ fromId = fromId,
|
|
|
+ groupId = groupId,
|
|
|
+ isInvited = false,
|
|
|
+ accept = accept,
|
|
|
+ blackList = blackList
|
|
|
+ ).sendWithoutExpect()
|
|
|
+ groups[groupId].apply {
|
|
|
+ members.delegate.addLast(newMember(object : MemberInfo {
|
|
|
+ override val nameCard: String get() = ""
|
|
|
+ override val permission: MemberPermission get() = MemberPermission.MEMBER
|
|
|
+ override val specialTitle: String get() = ""
|
|
|
+ override val muteTimestamp: Int get() = 0
|
|
|
+ override val uin: Long get() = fromId
|
|
|
+ override val nick: String get() = fromNick
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Suppress("DEPRECATION", "OverridingDeprecatedMember")
|
|
|
override suspend fun queryImageUrl(image: Image): String = when (image) {
|
|
|
is OnlineFriendImageImpl -> image.originUrl
|