Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Mirai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Mirai
Commits
5bd96876
Commit
5bd96876
authored
Feb 11, 2020
by
Him188
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add event broadcast
parent
dfa3af56
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
172 additions
and
268 deletions
+172
-268
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt
...ommonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt
+11
-11
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
...moe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
+2
-2
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt
...ndroid/network/protocol/packet/chat/receive/OnlinePush.kt
+86
-70
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Member.kt
...e/src/commonMain/kotlin/net.mamoe.mirai/contact/Member.kt
+4
-5
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt
...mmonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt
+69
-180
No files found.
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt
View file @
5bd96876
...
@@ -162,7 +162,7 @@ internal class MemberImpl(
...
@@ -162,7 +162,7 @@ internal class MemberImpl(
var
_specialTitle
:
String
,
var
_specialTitle
:
String
,
group
:
GroupImpl
,
group
:
GroupImpl
,
override
val
coroutineContext
:
CoroutineContext
,
override
val
coroutineContext
:
CoroutineContext
,
override
va
l
permission
:
MemberPermission
override
va
r
permission
:
MemberPermission
)
:
ContactImpl
(),
Member
,
QQ
by
qq
{
)
:
ContactImpl
(),
Member
,
QQ
by
qq
{
override
val
group
:
GroupImpl
by
group
.
unsafeWeakRef
()
override
val
group
:
GroupImpl
by
group
.
unsafeWeakRef
()
val
qq
:
QQImpl
by
qq
.
unsafeWeakRef
()
val
qq
:
QQImpl
by
qq
.
unsafeWeakRef
()
...
@@ -182,7 +182,7 @@ internal class MemberImpl(
...
@@ -182,7 +182,7 @@ internal class MemberImpl(
newValue
newValue
).
sendWithoutExpect
()
).
sendWithoutExpect
()
}
}
MemberCardChangeEvent
.
ByBot
(
oldValue
,
newValue
,
this
@MemberImp
l
).
broadcast
()
MemberCardChangeEvent
(
oldValue
,
newValue
,
this
@MemberImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
@@ -190,7 +190,7 @@ internal class MemberImpl(
...
@@ -190,7 +190,7 @@ internal class MemberImpl(
override
var
specialTitle
:
String
override
var
specialTitle
:
String
get
()
=
_specialTitle
get
()
=
_specialTitle
set
(
newValue
)
{
set
(
newValue
)
{
group
.
checkBotPermission
Operator
(
)
group
.
checkBotPermission
(
MemberPermission
.
OWNER
)
if
(
_specialTitle
!=
newValue
)
{
if
(
_specialTitle
!=
newValue
)
{
val
oldValue
=
_specialTitle
val
oldValue
=
_specialTitle
_specialTitle
=
newValue
_specialTitle
=
newValue
...
@@ -223,7 +223,7 @@ internal class MemberImpl(
...
@@ -223,7 +223,7 @@ internal class MemberImpl(
).
sendAndExpect
<
TroopManagement
.
Mute
.
Response
>()
).
sendAndExpect
<
TroopManagement
.
Mute
.
Response
>()
}
}
MemberMuteEvent
.
ByBot
(
this
@MemberImpl
,
durationSeconds
).
broadcast
()
MemberMuteEvent
(
this
@MemberImpl
,
durationSeconds
,
null
).
broadcast
()
return
true
return
true
}
}
...
@@ -241,7 +241,7 @@ internal class MemberImpl(
...
@@ -241,7 +241,7 @@ internal class MemberImpl(
).
sendAndExpect
<
TroopManagement
.
Mute
.
Response
>()
).
sendAndExpect
<
TroopManagement
.
Mute
.
Response
>()
}
}
MemberUnmuteEvent
.
ByBot
(
this
@MemberImp
l
).
broadcast
()
MemberUnmuteEvent
(
this
@MemberImpl
,
nul
l
).
broadcast
()
return
true
return
true
}
}
...
@@ -256,7 +256,7 @@ internal class MemberImpl(
...
@@ -256,7 +256,7 @@ internal class MemberImpl(
member
=
this
@MemberImpl
,
member
=
this
@MemberImpl
,
message
=
message
message
=
message
).
sendAndExpect
<
TroopManagement
.
Kick
.
Response
>().
success
.
also
{
).
sendAndExpect
<
TroopManagement
.
Kick
.
Response
>().
success
.
also
{
MemberLeaveEvent
.
Kick
.
ByBot
(
this
@MemberImp
l
).
broadcast
()
MemberLeaveEvent
.
Kick
(
this
@MemberImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
@@ -304,7 +304,7 @@ internal class GroupImpl(
...
@@ -304,7 +304,7 @@ internal class GroupImpl(
newName
=
newValue
newName
=
newValue
).
sendWithoutExpect
()
).
sendWithoutExpect
()
}
}
GroupNameChangeEvent
.
ByBot
(
oldValue
,
newValue
,
this
@GroupImp
l
).
broadcast
()
GroupNameChangeEvent
(
oldValue
,
newValue
,
this
@GroupImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
@@ -324,7 +324,7 @@ internal class GroupImpl(
...
@@ -324,7 +324,7 @@ internal class GroupImpl(
newMemo
=
newValue
newMemo
=
newValue
).
sendWithoutExpect
()
).
sendWithoutExpect
()
}
}
GroupEntranceAnnouncementChangeEvent
.
ByBot
(
oldValue
,
newValue
,
this
@GroupImp
l
).
broadcast
()
GroupEntranceAnnouncementChangeEvent
(
oldValue
,
newValue
,
this
@GroupImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
@@ -345,7 +345,7 @@ internal class GroupImpl(
...
@@ -345,7 +345,7 @@ internal class GroupImpl(
switch
=
newValue
switch
=
newValue
).
sendWithoutExpect
()
).
sendWithoutExpect
()
}
}
GroupAllowMemberInviteEvent
.
ByBot
(
oldValue
,
newValue
,
this
@GroupImp
l
).
broadcast
()
GroupAllowMemberInviteEvent
(
oldValue
,
newValue
,
this
@GroupImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
@@ -377,7 +377,7 @@ internal class GroupImpl(
...
@@ -377,7 +377,7 @@ internal class GroupImpl(
switch
=
newValue
switch
=
newValue
).
sendWithoutExpect
()
).
sendWithoutExpect
()
}
}
GroupAllowConfessTalkEvent
.
ByBot
(
oldValue
,
newValue
,
this
@GroupImp
l
).
broadcast
()
GroupAllowConfessTalkEvent
(
oldValue
,
newValue
,
this
@GroupImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
@@ -398,7 +398,7 @@ internal class GroupImpl(
...
@@ -398,7 +398,7 @@ internal class GroupImpl(
switch
=
newValue
switch
=
newValue
).
sendWithoutExpect
()
).
sendWithoutExpect
()
}
}
GroupMuteAllEvent
.
ByBot
(
oldValue
,
newValue
,
this
@GroupImp
l
).
broadcast
()
GroupMuteAllEvent
(
oldValue
,
newValue
,
this
@GroupImpl
,
nul
l
).
broadcast
()
}
}
}
}
}
}
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt
View file @
5bd96876
...
@@ -24,7 +24,7 @@ import net.mamoe.mirai.contact.MemberPermission
...
@@ -24,7 +24,7 @@ import net.mamoe.mirai.contact.MemberPermission
import
net.mamoe.mirai.data.MultiPacket
import
net.mamoe.mirai.data.MultiPacket
import
net.mamoe.mirai.data.Packet
import
net.mamoe.mirai.data.Packet
import
net.mamoe.mirai.event.*
import
net.mamoe.mirai.event.*
import
net.mamoe.mirai.event.events.Bot
Force
OfflineEvent
import
net.mamoe.mirai.event.events.BotOfflineEvent
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.qqandroid.GroupImpl
import
net.mamoe.mirai.qqandroid.GroupImpl
import
net.mamoe.mirai.qqandroid.MemberImpl
import
net.mamoe.mirai.qqandroid.MemberImpl
...
@@ -119,7 +119,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
...
@@ -119,7 +119,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
@UseExperimental
(
MiraiExperimentalAPI
::
class
,
ExperimentalTime
::
class
)
@UseExperimental
(
MiraiExperimentalAPI
::
class
,
ExperimentalTime
::
class
)
override
suspend
fun
init
():
Unit
=
coroutineScope
{
override
suspend
fun
init
():
Unit
=
coroutineScope
{
this
@QQAndroidBotNetworkHandler
.
subscribeAlways
<
Bot
Force
OfflineEvent
>
{
this
@QQAndroidBotNetworkHandler
.
subscribeAlways
<
BotOfflineEvent
>
{
if
(
this
@QQAndroidBotNetworkHandler
.
bot
==
this
.
bot
)
{
if
(
this
@QQAndroidBotNetworkHandler
.
bot
==
this
.
bot
)
{
this
.
bot
.
logger
.
error
(
"被挤下线"
)
this
.
bot
.
logger
.
error
(
"被挤下线"
)
close
()
close
()
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt
View file @
5bd96876
This diff is collapsed.
Click to expand it.
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Member.kt
View file @
5bd96876
...
@@ -12,10 +12,7 @@
...
@@ -12,10 +12,7 @@
package
net.mamoe.mirai.contact
package
net.mamoe.mirai.contact
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.event.events.MemberCardChangeEvent
import
net.mamoe.mirai.event.events.*
import
net.mamoe.mirai.event.events.MemberLeaveEvent
import
net.mamoe.mirai.event.events.MemberMuteEvent
import
net.mamoe.mirai.event.events.MemberSpecialTitleChangeEvent
import
net.mamoe.mirai.utils.WeakRefProperty
import
net.mamoe.mirai.utils.WeakRefProperty
import
kotlin.time.Duration
import
kotlin.time.Duration
import
kotlin.time.ExperimentalTime
import
kotlin.time.ExperimentalTime
...
@@ -64,13 +61,15 @@ interface Member : QQ, Contact {
...
@@ -64,13 +61,15 @@ interface Member : QQ, Contact {
* @see Int.minutesToSeconds
* @see Int.minutesToSeconds
* @see Int.hoursToSeconds
* @see Int.hoursToSeconds
* @see Int.daysToSeconds
* @see Int.daysToSeconds
*
* @see MemberMuteEvent 成员被禁言事件
*/
*/
suspend
fun
mute
(
durationSeconds
:
Int
):
Boolean
suspend
fun
mute
(
durationSeconds
:
Int
):
Boolean
/**
/**
* 解除禁言. 机器人无权限时返回 `false`.
* 解除禁言. 机器人无权限时返回 `false`.
*
*
* @see Member
MuteEvent 成员被
禁言事件.
* @see Member
UnmuteEvent 成员被取消
禁言事件.
*/
*/
suspend
fun
unmute
():
Boolean
suspend
fun
unmute
():
Boolean
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt
View file @
5bd96876
...
@@ -135,135 +135,81 @@ interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent {
...
@@ -135,135 +135,81 @@ interface GroupSettingChangeEvent<T> : GroupEvent, BotPassiveEvent {
/**
/**
* 群名改变. 此事件广播前修改就已经完成.
* 群名改变. 此事件广播前修改就已经完成.
*/
*/
sealed
class
GroupNameChangeEvent
:
GroupSettingChangeEvent
<
String
>,
BotPassiveEvent
{
data class
GroupNameChangeEvent
(
override
val
origin
:
String
,
/**
override
val
new
:
String
,
* 由管理员操作
override
val
group
:
Group
,
*/
data class
ByOperator
(
override
val
origin
:
String
,
override
val
new
:
String
,
val
operator
:
Member
)
:
GroupNameChangeEvent
()
{
override
val
group
:
Group
get
()
=
operator
.
group
}
/**
/**
*
由
机器人操作
*
操作人. 为 null 时则是
机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
origin
:
String
,
)
:
GroupSettingChangeEvent
<
String
>,
Packet
override
val
new
:
String
,
override
val
group
:
Group
)
:
GroupNameChangeEvent
()
}
/**
/**
* 入群公告改变. 此事件广播前修改就已经完成.
* 入群公告改变. 此事件广播前修改就已经完成.
*/
*/
sealed
class
GroupEntranceAnnouncementChangeEvent
:
GroupSettingChangeEvent
<
String
>,
BotPassiveEvent
{
data class
GroupEntranceAnnouncementChangeEvent
(
override
val
origin
:
String
,
override
val
new
:
String
,
override
val
group
:
Group
,
/**
/**
*
由管理员
操作
*
操作人. 为 null 时则是机器人
操作
*/
*/
data class
ByOperator
(
val
operator
:
Member
?
override
val
origin
:
String
,
)
:
GroupSettingChangeEvent
<
String
>,
Packet
override
val
new
:
String
,
val
operator
:
Member
)
:
GroupEntranceAnnouncementChangeEvent
()
{
override
val
group
:
Group
get
()
=
operator
.
group
}
/**
* 由机器人操作
*/
data class
ByBot
(
override
val
origin
:
String
,
override
val
new
:
String
,
override
val
group
:
Group
)
:
GroupEntranceAnnouncementChangeEvent
()
}
/**
/**
* 群 "全员禁言" 功能状态改变. 此事件广播前修改就已经完成.
* 群 "全员禁言" 功能状态改变. 此事件广播前修改就已经完成.
*/
*/
sealed
class
GroupMuteAllEvent
:
GroupSettingChangeEvent
<
Boolean
>,
BotPassiveEvent
{
data class
GroupMuteAllEvent
(
override
val
origin
:
Boolean
,
override
val
new
:
Boolean
,
override
val
group
:
Group
,
/**
/**
*
由管理员
操作
*
操作人. 为 null 时则是机器人
操作
*/
*/
data class
ByOperator
(
val
operator
:
Member
?
override
val
origin
:
Boolean
,
)
:
GroupSettingChangeEvent
<
Boolean
>,
Packet
override
val
new
:
Boolean
,
val
operator
:
Member
)
:
GroupMuteAllEvent
()
{
override
val
group
:
Group
get
()
=
operator
.
group
}
/**
* 群 "匿名聊天" 功能状态改变. 此事件广播前修改就已经完成.
*/
data class
GroupAllowAnonymousChatEvent
(
override
val
origin
:
Boolean
,
override
val
new
:
Boolean
,
override
val
group
:
Group
,
/**
/**
*
由
机器人操作
*
操作人. 为 null 时则是
机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
origin
:
Boolean
,
)
:
GroupSettingChangeEvent
<
Boolean
>,
Packet
override
val
new
:
Boolean
,
override
val
group
:
Group
)
:
GroupMuteAllEvent
()
}
/**
/**
* 群 "坦白说" 功能状态改变. 此事件广播前修改就已经完成.
* 群 "坦白说" 功能状态改变. 此事件广播前修改就已经完成.
*/
*/
sealed
class
GroupAllowConfessTalkEvent
:
GroupSettingChangeEvent
<
Boolean
>,
BotPassiveEvent
{
data class
GroupAllowConfessTalkEvent
(
/**
override
val
origin
:
Boolean
,
* 由管理员操作
override
val
new
:
Boolean
,
*/
override
val
group
:
Group
,
data class
ByOperator
(
override
val
origin
:
Boolean
,
override
val
new
:
Boolean
,
val
operator
:
Member
)
:
GroupAllowConfessTalkEvent
()
{
override
val
group
:
Group
get
()
=
operator
.
group
}
/**
/**
*
由
机器人操作
*
操作人. 为 null 时则是
机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
origin
:
Boolean
,
)
:
GroupSettingChangeEvent
<
Boolean
>,
Packet
override
val
new
:
Boolean
,
override
val
group
:
Group
)
:
GroupAllowConfessTalkEvent
()
}
/**
/**
* 群 "允许群员邀请好友加群" 功能状态改变. 此事件广播前修改就已经完成.
* 群 "允许群员邀请好友加群" 功能状态改变. 此事件广播前修改就已经完成.
*/
*/
sealed
class
GroupAllowMemberInviteEvent
:
GroupSettingChangeEvent
<
Boolean
>,
BotPassiveEvent
{
data class
GroupAllowMemberInviteEvent
(
/**
override
val
origin
:
Boolean
,
* 由管理员操作
override
val
new
:
Boolean
,
*/
override
val
group
:
Group
,
data class
ByOperator
(
override
val
origin
:
Boolean
,
override
val
new
:
Boolean
,
val
operator
:
Member
)
:
GroupAllowMemberInviteEvent
()
{
override
val
group
:
Group
get
()
=
operator
.
group
}
/**
/**
*
由
机器人操作
*
操作人. 为 null 时则是
机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
origin
:
Boolean
,
)
:
GroupSettingChangeEvent
<
Boolean
>,
Packet
override
val
new
:
Boolean
,
override
val
group
:
Group
)
:
GroupAllowMemberInviteEvent
()
}
// endregion
// endregion
...
@@ -284,22 +230,13 @@ sealed class MemberLeaveEvent : GroupMemberEvent {
...
@@ -284,22 +230,13 @@ sealed class MemberLeaveEvent : GroupMemberEvent {
/**
/**
* 成员被踢出群. 成员不可能是机器人自己.
* 成员被踢出群. 成员不可能是机器人自己.
*/
*/
sealed
class
Kick
:
MemberLeaveEvent
()
{
data class
Kick
(
/**
override
val
member
:
Member
,
* 被管理员踢出
*/
data class
ByOperator
(
override
val
member
:
Member
,
val
operator
:
Member
)
:
Kick
(),
BotPassiveEvent
/**
/**
*
被机器人踢出
*
操作人. 为 null 则是机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
member
:
Member
)
:
MemberLeaveEvent
(),
Packet
)
:
Kick
(),
BotActiveEvent
}
/**
/**
* 成员主动离开
* 成员主动离开
...
@@ -314,47 +251,24 @@ sealed class MemberLeaveEvent : GroupMemberEvent {
...
@@ -314,47 +251,24 @@ sealed class MemberLeaveEvent : GroupMemberEvent {
/**
/**
* 群名片改动. 此事件广播前修改就已经完成.
* 群名片改动. 此事件广播前修改就已经完成.
*/
*/
sealed
class
MemberCardChangeEvent
:
GroupMemberEvent
{
data class
MemberCardChangeEvent
(
/**
/**
* 修改前
* 修改前
*/
*/
abstract
val
origin
:
String
val
origin
:
String
,
/**
/**
* 修改后
* 修改后
*/
*/
abstract
val
new
:
String
val
new
:
String
,
abstract
override
val
member
:
Member
/**
* 由管理员修改
*/
data class
ByOperator
(
override
val
origin
:
String
,
override
val
new
:
String
,
override
val
member
:
Member
,
val
operator
:
Member
)
:
MemberCardChangeEvent
(),
BotPassiveEvent
/**
override
val
member
:
Member
,
* 由 [Bot] 修改. 由 [Member.nameCard]
*/
data class
ByBot
(
override
val
origin
:
String
,
override
val
new
:
String
,
override
val
member
:
Member
)
:
MemberCardChangeEvent
(),
BotActiveEvent
/**
/**
*
该成员自己修改
*
操作人. 为 null 时则是机器人操作. 可能与 [member] 引用相同, 此时为群员自己修改.
*/
*/
data class
BySelf
(
val
operator
:
Member
?
override
val
origin
:
String
,
)
:
GroupMemberEvent
override
val
new
:
String
,
override
val
member
:
Member
)
:
MemberCardChangeEvent
(),
BotPassiveEvent
}
/**
/**
* 群头衔改动. 一定为群主操作
* 群头衔改动. 一定为群主操作
...
@@ -385,7 +299,7 @@ data class MemberPermissionChangeEvent(
...
@@ -385,7 +299,7 @@ data class MemberPermissionChangeEvent(
override
val
member
:
Member
,
override
val
member
:
Member
,
val
origin
:
MemberPermission
,
val
origin
:
MemberPermission
,
val
new
:
MemberPermission
val
new
:
MemberPermission
)
:
GroupMemberEvent
,
BotPassiveEvent
)
:
GroupMemberEvent
,
BotPassiveEvent
,
Packet
// endregion
// endregion
...
@@ -395,50 +309,25 @@ data class MemberPermissionChangeEvent(
...
@@ -395,50 +309,25 @@ data class MemberPermissionChangeEvent(
/**
/**
* 群成员被禁言事件. 操作人和被禁言的成员都不可能是机器人本人
* 群成员被禁言事件. 操作人和被禁言的成员都不可能是机器人本人
*/
*/
sealed
class
MemberMuteEvent
:
GroupMemberEvent
{
data class
MemberMuteEvent
(
abstract
override
val
member
:
Member
override
val
member
:
Member
,
val
durationSeconds
:
Int
,
abstract
val
durationSeconds
:
Int
/**
* 管理员禁言成员
*/
data class
ByOperator
(
override
val
member
:
Member
,
override
val
durationSeconds
:
Int
,
val
operator
:
Member
)
:
MemberMuteEvent
(),
BotPassiveEvent
/**
/**
*
机器人禁言成员. 通过 [Member.mute] 触发
*
操作人. 为 null 则为机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
member
:
Member
,
)
:
GroupMemberEvent
,
Packet
override
var
durationSeconds
:
Int
)
:
MemberMuteEvent
(),
BotActiveEvent
}
/**
/**
* 群成员被取消禁言事件. 操作人和被禁言的成员都不可能是机器人本人
* 群成员被取消禁言事件. 操作人和被禁言的成员都不可能是机器人本人
*/
*/
sealed
class
MemberUnmuteEvent
:
GroupMemberEvent
,
BotPassiveEvent
{
data class
MemberUnmuteEvent
(
abstract
override
val
member
:
Member
override
val
member
:
Member
,
/**
* 管理员禁言成员
*/
data class
ByOperator
(
override
val
member
:
Member
,
val
operator
:
Member
)
:
MemberUnmuteEvent
(),
BotPassiveEvent
/**
/**
*
机器人禁言成员. 通过 [Member.unmute] 触发
*
操作人. 为 null 则为机器人操作
*/
*/
data class
ByBot
(
val
operator
:
Member
?
override
val
member
:
Member
)
:
GroupMemberEvent
,
Packet
)
:
MemberUnmuteEvent
(),
BotActiveEvent
}
// endregion
// endregion
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment