Răsfoiți Sursa

S0me events

jiahua.liu 6 ani în urmă
părinte
comite
79bf367013

+ 70 - 1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt

@@ -10,7 +10,12 @@
 package net.mamoe.mirai.event.events
 package net.mamoe.mirai.event.events
 
 
 import net.mamoe.mirai.Bot
 import net.mamoe.mirai.Bot
+import net.mamoe.mirai.contact.Group
+import net.mamoe.mirai.contact.Member
+import net.mamoe.mirai.contact.MemberPermission
 import net.mamoe.mirai.event.Event
 import net.mamoe.mirai.event.Event
+import net.mamoe.mirai.utils.WeakRef
+import kotlin.properties.Delegates
 
 
 
 
 abstract class BotEvent : Event {
 abstract class BotEvent : Event {
@@ -26,4 +31,68 @@ abstract class BotEvent : Event {
 
 
 class BotLoginSucceedEvent(bot: Bot) : BotEvent(bot)
 class BotLoginSucceedEvent(bot: Bot) : BotEvent(bot)
 
 
-class BotOfflineEvent(bot: Bot) : BotEvent(bot)
+class BotOfflineEvent(bot: Bot) : BotEvent(bot)
+
+class BotReadyEvent(bot: Bot) : BotEvent(bot)
+
+interface GroupEvent {
+    val group: Group
+}
+
+class AddGroupEvent(bot: Bot, override val group: Group) : BotEvent(bot), GroupEvent
+
+class RemoveGroupEvent(bot: Bot, override val group: Group) : BotEvent(bot), GroupEvent
+
+class BotGroupPermissionChangeEvent(
+    bot: Bot,
+    override val group: Group,
+    val origin: MemberPermission,
+    val new: MemberPermission
+) : BotEvent(bot), GroupEvent
+
+interface GroupSettingChangeEvent<T> : GroupEvent {
+    val origin: T
+    val new: T
+}
+
+class GroupNameChangeEvent(
+    bot: Bot,
+    override val group: Group,
+    override val origin: String,
+    override val new: String
+) : BotEvent(bot), GroupSettingChangeEvent<String>
+
+class GroupMuteAllEvent(
+    bot: Bot,
+    override val group: Group,
+    override val origin: Boolean,
+    override val new: Boolean
+) : BotEvent(bot), GroupSettingChangeEvent<Boolean>
+
+class GroupConfessTalkEvent(
+    bot: Bot,
+    override val group: Group,
+    override val origin: Boolean,
+    override val new: Boolean
+) : BotEvent(bot), GroupSettingChangeEvent<Boolean>
+
+interface GroupMemberEvent : GroupEvent {
+    val member: Member
+    override val group: Group
+        get() = member.group
+}
+
+class MemberJoinEvent(bot: Bot, override val member: Member) : BotEvent(bot), GroupMemberEvent
+
+class MemberLeftEvent(bot: Bot, override val member: Member) : BotEvent(bot), GroupMemberEvent
+
+class MemberMuteEvent(bot: Bot, override val member: Member) : BotEvent(bot), GroupMemberEvent
+
+class MemberPermissionChangeEvent(
+    bot: Bot,
+    override val member: Member,
+    val origin: MemberPermission,
+    val new: MemberPermission
+) : BotEvent(bot), GroupMemberEvent
+
+