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(bot: Bot, open val packet: P) : BotEvent(bot) + + +/* Client to Server */ + +sealed class ClientPacketEvent(bot: Bot, packet: P) : PacketEvent

(bot, packet) + +/** + * 包已发送. 不可被取消 + */ +class PacketSentEvent

(bot: Bot, packet: P) : ClientPacketEvent

(bot, packet) { + companion object : KClass> by PacketSentEvent::class +} + +/** + * 包发送前. 可被取消 + */ +class BeforePacketSendEvent

(bot: Bot, packet: P) : ClientPacketEvent

(bot, packet), Cancellable { + companion object : KClass> by BeforePacketSendEvent::class +} + + +/* Server to Client */ + +sealed class ServerPacketEvent(bot: Bot, packet: P) : PacketEvent

(bot, packet) + +class ServerPacketReceivedEvent(bot: Bot, packet: ServerPacket) : ServerPacketEvent(bot, packet) { + companion object : KClass 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(bot: Bot, packet: P) : PacketEvent

(bot, packet) - -/** - * 包已发送. 不可被取消 - */ -class PacketSentEvent

(bot: Bot, packet: P) : ClientPacketEvent

(bot, packet) { - companion object : KClass> by PacketSentEvent::class -} - -/** - * 包发送前. 可被取消 - */ -class BeforePacketSendEvent

(bot: Bot, packet: P) : ClientPacketEvent

(bot, packet), Cancellable { - companion object : KClass> 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(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(bot: Bot, packet: P) : PacketEvent

(bot, packet) - -class ServerPacketReceivedEvent(bot: Bot, packet: ServerPacket) : ServerPacketEvent(bot, packet) { - companion object : KClass 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