From c69f2ab31e628b4628434cd35d1e279b53fb17e3 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Wed, 9 Oct 2019 16:42:37 +0800
Subject: [PATCH] Group events into mixed files

---
 .../events/{bot/BotEvent.kt => BotEvents.kt}  |  2 +-
 .../FriendMessageEvent.kt => FriendEvents.kt} |  9 +++-
 .../GroupMessageEvent.kt => GroupEvents.kt}   |  9 +++-
 .../mamoe/mirai/event/events/PacketEvents.kt  | 43 +++++++++++++++++++
 .../mirai/event/events/group/GroupEvent.kt    | 10 -----
 .../events/network/ClientPacketEvents.kt      | 22 ----------
 .../mirai/event/events/network/PacketEvent.kt | 10 -----
 .../events/network/ServerPacketEvents.kt      | 12 ------
 .../mirai/event/events/qq/FriendEvent.kt      | 10 -----
 .../protocol/tim/TIMBotNetworkHandler.kt      |  8 ++--
 .../protocol/tim/handler/DataPacketSocket.kt  |  4 +-
 .../tim/handler/MessagePacketHandler.kt       |  4 +-
 .../protocol/tim/packet/ClientPacket.kt       |  2 +-
 .../protocol/tim/packet/ServerPacket.kt       |  2 +-
 mirai-debug/src/main/java/PacketDebuger.kt    |  2 +-
 .../mirai-demo-1/src/main/java/demo1/Main.kt  |  4 +-
 16 files changed, 71 insertions(+), 82 deletions(-)
 rename mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/{bot/BotEvent.kt => BotEvents.kt} (88%)
 rename mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/{qq/FriendMessageEvent.kt => FriendEvents.kt} (85%)
 rename mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/{group/GroupMessageEvent.kt => GroupEvents.kt} (85%)
 create mode 100644 mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/PacketEvents.kt
 delete mode 100644 mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupEvent.kt
 delete mode 100644 mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt
 delete mode 100644 mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/PacketEvent.kt
 delete mode 100644 mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt
 delete mode 100644 mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendEvent.kt

diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/bot/BotEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/BotEvents.kt
similarity index 88%
rename from mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/bot/BotEvent.kt
rename to mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/BotEvents.kt
index 74d75255a..c88ee1584 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/bot/BotEvent.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/BotEvents.kt
@@ -1,4 +1,4 @@
-package net.mamoe.mirai.event.events.bot
+package net.mamoe.mirai.event.events
 
 import net.mamoe.mirai.Bot
 import net.mamoe.mirai.event.Event
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendMessageEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/FriendEvents.kt
similarity index 85%
rename from mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendMessageEvent.kt
rename to mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/FriendEvents.kt
index c17d87f8a..e604aed08 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendMessageEvent.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/FriendEvents.kt
@@ -1,4 +1,4 @@
-package net.mamoe.mirai.event.events.qq
+package net.mamoe.mirai.event.events
 
 import net.mamoe.mirai.Bot
 import net.mamoe.mirai.contact.QQ
@@ -6,6 +6,11 @@ import net.mamoe.mirai.message.Message
 import net.mamoe.mirai.message.defaults.MessageChain
 import kotlin.reflect.KClass
 
+/**
+ * @author Him188moe
+ */
+abstract class FriendEvent(bot: Bot, val sender: QQ) : BotEvent(bot)
+
 /**
  * 接受好友消息事件
  *
@@ -25,4 +30,4 @@ class FriendMessageEvent(bot: Bot, sender: QQ, val message: MessageChain) : Frie
 
     @JvmSynthetic
     suspend inline fun reply(message: MessageChain) = sender.sendMessage(message)//shortcut
-}
+}
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupMessageEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/GroupEvents.kt
similarity index 85%
rename from mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupMessageEvent.kt
rename to mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/GroupEvents.kt
index bcd0e65b9..0140706dc 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupMessageEvent.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/GroupEvents.kt
@@ -1,4 +1,4 @@
-package net.mamoe.mirai.event.events.group
+package net.mamoe.mirai.event.events
 
 import net.mamoe.mirai.Bot
 import net.mamoe.mirai.contact.Group
@@ -7,6 +7,11 @@ import net.mamoe.mirai.message.Message
 import net.mamoe.mirai.message.defaults.MessageChain
 import kotlin.reflect.KClass
 
+/**
+ * @author Him188moe
+ */
+abstract class GroupEvent(bot: Bot, val group: Group) : BotEvent(bot)
+
 /**
  * @author Him188moe
  */
@@ -24,4 +29,4 @@ class GroupMessageEvent(bot: Bot, group: Group, val sender: QQ, val message: Mes
 
     @JvmSynthetic
     suspend inline fun reply(message: MessageChain) = group.sendMessage(message)
-}
+}
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/PacketEvents.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/PacketEvents.kt
new file mode 100644
index 000000000..29eb1d1a8
--- /dev/null
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/PacketEvents.kt
@@ -0,0 +1,43 @@
+package net.mamoe.mirai.event.events
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.event.Cancellable
+import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket
+import net.mamoe.mirai.network.protocol.tim.packet.Packet
+import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket
+import kotlin.reflect.KClass
+
+/* Abstract */
+
+/**
+ * @author Him188moe
+ */
+sealed class PacketEvent<out P : Packet>(bot: Bot, open val packet: P) : BotEvent(bot)
+
+
+/* Client to Server */
+
+sealed class ClientPacketEvent<out P : ClientPacket>(bot: Bot, packet: P) : PacketEvent<P>(bot, packet)
+
+/**
+ * 包已发送. 不可被取消
+ */
+class PacketSentEvent<P : ClientPacket>(bot: Bot, packet: P) : ClientPacketEvent<P>(bot, packet) {
+    companion object : KClass<PacketSentEvent<*>> by PacketSentEvent::class
+}
+
+/**
+ * 包发送前. 可被取消
+ */
+class BeforePacketSendEvent<P : ClientPacket>(bot: Bot, packet: P) : ClientPacketEvent<P>(bot, packet), Cancellable {
+    companion object : KClass<BeforePacketSendEvent<*>> by BeforePacketSendEvent::class
+}
+
+
+/* Server to Client */
+
+sealed class ServerPacketEvent<out P : ServerPacket>(bot: Bot, packet: P) : PacketEvent<P>(bot, packet)
+
+class ServerPacketReceivedEvent(bot: Bot, packet: ServerPacket) : ServerPacketEvent<ServerPacket>(bot, packet) {
+    companion object : KClass<ServerPacketReceivedEvent> by ServerPacketReceivedEvent::class
+}
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupEvent.kt
deleted file mode 100644
index 885441d95..000000000
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/group/GroupEvent.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.mamoe.mirai.event.events.group
-
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.contact.Group
-import net.mamoe.mirai.event.events.bot.BotEvent
-
-/**
- * @author Him188moe
- */
-abstract class GroupEvent(bot: Bot, val group: Group) : BotEvent(bot)
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt
deleted file mode 100644
index 760fb647b..000000000
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.mamoe.mirai.event.events.network
-
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.event.Cancellable
-import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket
-import kotlin.reflect.KClass
-
-abstract class ClientPacketEvent<out P : ClientPacket>(bot: Bot, packet: P) : PacketEvent<P>(bot, packet)
-
-/**
- * 包已发送. 不可被取消
- */
-class PacketSentEvent<P : ClientPacket>(bot: Bot, packet: P) : ClientPacketEvent<P>(bot, packet) {
-    companion object : KClass<PacketSentEvent<*>> by PacketSentEvent::class
-}
-
-/**
- * 包发送前. 可被取消
- */
-class BeforePacketSendEvent<P : ClientPacket>(bot: Bot, packet: P) : ClientPacketEvent<P>(bot, packet), Cancellable {
-    companion object : KClass<BeforePacketSendEvent<*>> by BeforePacketSendEvent::class
-}
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/PacketEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/PacketEvent.kt
deleted file mode 100644
index e573c72da..000000000
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/PacketEvent.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.mamoe.mirai.event.events.network
-
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.event.events.bot.BotEvent
-import net.mamoe.mirai.network.protocol.tim.packet.Packet
-
-/**
- * @author Him188moe
- */
-abstract class PacketEvent<out P : Packet>(bot: Bot, open val packet: P) : BotEvent(bot)
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt
deleted file mode 100644
index 0c017f41c..000000000
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package net.mamoe.mirai.event.events.network
-
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket
-import kotlin.reflect.KClass
-
-
-abstract class ServerPacketEvent<out P : ServerPacket>(bot: Bot, packet: P) : PacketEvent<P>(bot, packet)
-
-class ServerPacketReceivedEvent(bot: Bot, packet: ServerPacket) : ServerPacketEvent<ServerPacket>(bot, packet) {
-    companion object : KClass<ServerPacketReceivedEvent> by ServerPacketReceivedEvent::class
-}
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendEvent.kt
deleted file mode 100644
index 2721166c5..000000000
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/events/qq/FriendEvent.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.mamoe.mirai.event.events.qq
-
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.contact.QQ
-import net.mamoe.mirai.event.events.bot.BotEvent
-
-/**
- * @author Him188moe
- */
-abstract class FriendEvent(bot: Bot, val sender: QQ) : BotEvent(bot)
\ No newline at end of file
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt
index 3ed4a64e4..dc8603332 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt
@@ -6,10 +6,10 @@ import kotlinx.coroutines.sync.withLock
 import net.mamoe.mirai.Bot
 import net.mamoe.mirai.event.ListeningStatus
 import net.mamoe.mirai.event.broadcast
-import net.mamoe.mirai.event.events.bot.BotLoginSucceedEvent
-import net.mamoe.mirai.event.events.network.BeforePacketSendEvent
-import net.mamoe.mirai.event.events.network.PacketSentEvent
-import net.mamoe.mirai.event.events.network.ServerPacketReceivedEvent
+import net.mamoe.mirai.event.events.BeforePacketSendEvent
+import net.mamoe.mirai.event.events.BotLoginSucceedEvent
+import net.mamoe.mirai.event.events.PacketSentEvent
+import net.mamoe.mirai.event.events.ServerPacketReceivedEvent
 import net.mamoe.mirai.event.subscribe
 import net.mamoe.mirai.network.BotNetworkHandler
 import net.mamoe.mirai.network.LoginSession
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt
index 8a0cad828..5af37e42c 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt
@@ -1,9 +1,9 @@
 package net.mamoe.mirai.network.protocol.tim.handler
 
 import net.mamoe.mirai.Bot
-import net.mamoe.mirai.event.events.network.ServerPacketReceivedEvent
-import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
+import net.mamoe.mirai.event.events.ServerPacketReceivedEvent
 import net.mamoe.mirai.network.LoginSession
+import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
 import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket
 import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket
 
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt
index 3c56e10fb..12e5242cb 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt
@@ -3,8 +3,8 @@ package net.mamoe.mirai.network.protocol.tim.handler
 import net.mamoe.mirai.contact.Group
 import net.mamoe.mirai.contact.QQ
 import net.mamoe.mirai.event.broadcast
-import net.mamoe.mirai.event.events.group.GroupMessageEvent
-import net.mamoe.mirai.event.events.qq.FriendMessageEvent
+import net.mamoe.mirai.event.events.FriendMessageEvent
+import net.mamoe.mirai.event.events.GroupMessageEvent
 import net.mamoe.mirai.getGroupByNumber
 import net.mamoe.mirai.getQQ
 import net.mamoe.mirai.message.defaults.MessageChain
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt
index 764a68b63..d90748552 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt
@@ -41,7 +41,7 @@ abstract class ClientPacket : ByteArrayDataOutputStream(), Packet {
      * Encode this packet.
      *
      *
-     * Before sending the packet, a [tail][TIMProtocol.tail] will be added.
+     * Before sending the packet, a [tail][TIMProtocol.tail] is added.
      */
     @Throws(IOException::class)
     protected abstract fun encode()
diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt
index 686efa4e2..e83ff40bc 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt
@@ -7,7 +7,7 @@ import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
 import net.mamoe.mirai.Bot
-import net.mamoe.mirai.event.events.network.ServerPacketReceivedEvent
+import net.mamoe.mirai.event.events.ServerPacketReceivedEvent
 import net.mamoe.mirai.event.subscribeWhileTrue
 import net.mamoe.mirai.network.protocol.tim.packet.PacketNameFormatter.adjustName
 import net.mamoe.mirai.network.protocol.tim.packet.action.ServerCanAddFriendResponsePacket
diff --git a/mirai-debug/src/main/java/PacketDebuger.kt b/mirai-debug/src/main/java/PacketDebuger.kt
index e631947d2..e4f36a5e5 100644
--- a/mirai-debug/src/main/java/PacketDebuger.kt
+++ b/mirai-debug/src/main/java/PacketDebuger.kt
@@ -85,7 +85,7 @@ object Main {
      * 4. 双击跳转
      * 5. 断点并在TIM发送消息以触发
      * 6. 运行到 `mov eax,dword ptr ss:[ebp+10]`
-     * 7. 从 eax 开始的 16个 bytes 便是 `sessionKey`
+     * 7. 查看内存, 从 `eax` 开始的 16 bytes 便是 `sessionKey`
      */
     val sessionKey: ByteArray = "48 C0 11 42 2D FD 8F 36 6E BA BF FD D3 AA B7 AE".hexToBytes()
 
diff --git a/mirai-demos/mirai-demo-1/src/main/java/demo1/Main.kt b/mirai-demos/mirai-demo-1/src/main/java/demo1/Main.kt
index 14cb7a314..812433fe6 100644
--- a/mirai-demos/mirai-demo-1/src/main/java/demo1/Main.kt
+++ b/mirai-demos/mirai-demo-1/src/main/java/demo1/Main.kt
@@ -2,8 +2,8 @@ package demo1
 
 import net.mamoe.mirai.Bot
 import net.mamoe.mirai.contact.Group
-import net.mamoe.mirai.event.events.group.GroupMessageEvent
-import net.mamoe.mirai.event.events.qq.FriendMessageEvent
+import net.mamoe.mirai.event.events.FriendMessageEvent
+import net.mamoe.mirai.event.events.GroupMessageEvent
 import net.mamoe.mirai.event.subscribeAll
 import net.mamoe.mirai.event.subscribeAlways
 import net.mamoe.mirai.event.subscribeUntilFalse