diff --git a/mirai-console/src/main/java/net/mamoe/mirai/MiraiServer.java b/mirai-console/src/main/java/net/mamoe/mirai/MiraiServer.java index aaec628a5..ee2600ff0 100644 --- a/mirai-console/src/main/java/net/mamoe/mirai/MiraiServer.java +++ b/mirai-console/src/main/java/net/mamoe/mirai/MiraiServer.java @@ -4,7 +4,7 @@ import lombok.Getter; import net.mamoe.mirai.event.MiraiEventManager; import net.mamoe.mirai.event.events.server.ServerDisabledEvent; import net.mamoe.mirai.event.events.server.ServerEnabledEvent; -import net.mamoe.mirai.network.packet.login.LoginState; +import net.mamoe.mirai.network.protocol.tim.packet.login.LoginState; import net.mamoe.mirai.task.MiraiTaskManager; import net.mamoe.mirai.utils.*; import net.mamoe.mirai.utils.config.MiraiConfig; @@ -172,7 +172,7 @@ public final class MiraiServer { getLogger().info("Initializing [Bot] " + section.getString("account")); try { Bot bot = new Bot(section); - var state = bot.network.tryLogin$mirai_core().get(); + var state = bot.network.tryLogin$mirai_core().of(); //bot.network.tryLogin$mirai_core().whenComplete((state, e) -> { if (state == LoginState.SUCCESS) { Bot.instances.add(bot); @@ -181,7 +181,7 @@ public final class MiraiServer { getLogger().error(" Login Failed with error " + state); bot.close(); } - // }).get(); + // }).of(); } catch (Throwable e) { e.printStackTrace(); diff --git a/mirai-core/src/main/java/net/mamoe/mirai/Bot.java b/mirai-core/src/main/java/net/mamoe/mirai/Bot.java index 93b77a74e..05dfe8ddd 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/Bot.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/Bot.java @@ -3,7 +3,7 @@ package net.mamoe.mirai; import net.mamoe.mirai.contact.Group; import net.mamoe.mirai.contact.QQ; import net.mamoe.mirai.network.BotNetworkHandler; -import net.mamoe.mirai.network.BotNetworkHandlerImpl; +import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler; import net.mamoe.mirai.utils.BotAccount; import net.mamoe.mirai.utils.ContactList; import net.mamoe.mirai.utils.MiraiLogger; @@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger; *
* {@link Bot} 由 3 个模块组成. * {@linkplain ContactSystem 联系人管理}: 可通过 {@link Bot#contacts} 访问 - * {@linkplain BotNetworkHandlerImpl 网络处理器}: 可通过 {@link Bot#network} 访问 + * {@linkplain TIMBotNetworkHandler 网络处理器}: 可通过 {@link Bot#network} 访问 * {@linkplain BotAccount 机器人账号信息}: 可通过 {@link Bot#account} 访问 *
* 若你需要得到机器人的 QQ 账号, 请访问 {@link Bot#account} @@ -32,11 +32,11 @@ import java.util.concurrent.atomic.AtomicInteger; * Bot that is the base of the whole program. * It consists of * a {@link ContactSystem}, which manage contacts such as {@link QQ} and {@link Group}; - * a {@link BotNetworkHandlerImpl}, which manages the connection to the server; + * a {@link TIMBotNetworkHandler}, which manages the connection to the server; * a {@link BotAccount}, which stores the account information(e.g. qq number the bot) *
- * To get all the QQ contacts, access {@link Bot#account} - * To get all the Robot instance, access {@link Bot#instances} + * To of all the QQ contacts, access {@link Bot#account} + * To of all the Robot instance, access {@link Bot#instances} *

* * @author Him188moe @@ -105,7 +105,7 @@ public final class Bot implements Closeable { this.logger = Objects.requireNonNull(logger); this.logger.setIdentity("Bot" + this.id + "(" + this.account.getQqNumber() + ")"); - this.network = new BotNetworkHandlerImpl(this); + this.network = new TIMBotNetworkHandler(this); } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/BotKt.kt b/mirai-core/src/main/java/net/mamoe/mirai/BotKt.kt index 098c38b12..f9f35b066 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/BotKt.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/BotKt.kt @@ -2,7 +2,7 @@ package net.mamoe.mirai import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.QQ -import net.mamoe.mirai.network.packet.ClientPacket +import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket /** * The mirror of functions in inner classes of [Bot] diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt index 5e3d46fa4..4414ccec7 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt @@ -1,7 +1,7 @@ package net.mamoe.mirai.event.events.network import net.mamoe.mirai.Bot -import net.mamoe.mirai.network.packet.ClientPacket +import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket abstract class ClientPacketEvent(bot: Bot, packet: P) : PacketEvent

(bot, packet) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt index 1d8b5fa94..e573c72da 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt @@ -2,7 +2,7 @@ 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.packet.Packet +import net.mamoe.mirai.network.protocol.tim.packet.Packet /** * @author Him188moe diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt index fbd8eb0b4..e8e62a2b2 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt @@ -1,7 +1,7 @@ package net.mamoe.mirai.event.events.network import net.mamoe.mirai.Bot -import net.mamoe.mirai.network.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket abstract class ServerPacketEvent(bot: Bot, packet: P) : PacketEvent

(bot, packet) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Face.kt b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Face.kt index 227f9111f..72d0622bb 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Face.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Face.kt @@ -3,9 +3,9 @@ package net.mamoe.mirai.message.defaults import net.mamoe.mirai.message.FaceID import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.MessageKey -import net.mamoe.mirai.network.packet.readLVNumber -import net.mamoe.mirai.network.packet.writeHex -import net.mamoe.mirai.network.packet.writeLVByteArray +import net.mamoe.mirai.network.protocol.tim.packet.readLVNumber +import net.mamoe.mirai.network.protocol.tim.packet.writeHex +import net.mamoe.mirai.network.protocol.tim.packet.writeLVByteArray import net.mamoe.mirai.utils.lazyDecode import net.mamoe.mirai.utils.lazyEncode diff --git a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Image.kt b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Image.kt index 5b4e3be87..00e686820 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Image.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Image.kt @@ -3,7 +3,7 @@ package net.mamoe.mirai.message.defaults import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.MessageId import net.mamoe.mirai.message.MessageKey -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.lazyDecode import net.mamoe.mirai.utils.lazyEncode import net.mamoe.mirai.utils.skip diff --git a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/PlainText.kt b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/PlainText.kt index 927a771c5..50dd280f5 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/PlainText.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/PlainText.kt @@ -2,9 +2,9 @@ package net.mamoe.mirai.message.defaults import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.MessageKey -import net.mamoe.mirai.network.packet.readLVString -import net.mamoe.mirai.network.packet.writeLVByteArray -import net.mamoe.mirai.network.packet.writeLVString +import net.mamoe.mirai.network.protocol.tim.packet.readLVString +import net.mamoe.mirai.network.protocol.tim.packet.writeLVByteArray +import net.mamoe.mirai.network.protocol.tim.packet.writeLVString import net.mamoe.mirai.utils.lazyDecode import net.mamoe.mirai.utils.lazyEncode diff --git a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/UnsolvedImage.kt b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/UnsolvedImage.kt index 731caa314..c2caaa6df 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/UnsolvedImage.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/message/defaults/UnsolvedImage.kt @@ -2,11 +2,11 @@ package net.mamoe.mirai.message.defaults import net.mamoe.mirai.contact.Contact import net.mamoe.mirai.network.LoginSession -import net.mamoe.mirai.network.packet.image.ClientTryGetImageIDPacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDFailedPacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDResponsePacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDSuccessPacket -import net.mamoe.mirai.network.packet.md5 +import net.mamoe.mirai.network.protocol.tim.packet.image.ClientTryGetImageIDPacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDFailedPacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDSuccessPacket +import net.mamoe.mirai.network.protocol.tim.packet.md5 import net.mamoe.mirai.utils.ImageNetworkUtils import net.mamoe.mirai.utils.toByteArray import net.mamoe.mirai.utils.toUHexString diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandler.kt index cbadca15e..4c7d69207 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandler.kt @@ -1,13 +1,17 @@ package net.mamoe.mirai.network -import net.mamoe.mirai.network.BotNetworkHandlerImpl.BotSocket -import net.mamoe.mirai.network.BotNetworkHandlerImpl.Login -import net.mamoe.mirai.network.handler.* -import net.mamoe.mirai.network.packet.ClientPacket -import net.mamoe.mirai.network.packet.Packet -import net.mamoe.mirai.network.packet.ServerEventPacket -import net.mamoe.mirai.network.packet.ServerPacket -import net.mamoe.mirai.network.packet.login.LoginState +import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler.BotSocket +import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler.Login +import net.mamoe.mirai.network.protocol.tim.handler.ActionPacketHandler +import net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocket +import net.mamoe.mirai.network.protocol.tim.handler.MessagePacketHandler +import net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler +import net.mamoe.mirai.network.protocol.tim.internal.handler.* +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.ServerEventPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.login.LoginState import java.io.Closeable import java.util.concurrent.CompletableFuture diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/LoginSession.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/LoginSession.kt index 6958e3bac..0bde28064 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/LoginSession.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/LoginSession.kt @@ -1,10 +1,10 @@ package net.mamoe.mirai.network import net.mamoe.mirai.Bot -import net.mamoe.mirai.network.handler.DataPacketSocket -import net.mamoe.mirai.network.handler.TemporaryPacketHandler -import net.mamoe.mirai.network.packet.ClientPacket -import net.mamoe.mirai.network.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocket +import net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler +import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket import net.mamoe.mirai.utils.getGTK import java.util.concurrent.CompletableFuture diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginSuccessPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginSuccessPacket.kt deleted file mode 100644 index e7c916e5c..000000000 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginSuccessPacket.kt +++ /dev/null @@ -1,13 +0,0 @@ -package net.mamoe.mirai.network.packet.login - -import net.mamoe.mirai.network.packet.PacketId -import net.mamoe.mirai.network.packet.ServerPacket -import java.io.DataInputStream - -/** - * Congratulations! - * - * @author Him188moe - */ -@PacketId("00 EC") -class ServerLoginSuccessPacket(input: DataInputStream) : ServerPacket(input) \ No newline at end of file diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandlerImpl.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt similarity index 95% rename from mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandlerImpl.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt index 68e226dc6..6938c1afb 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/BotNetworkHandlerImpl.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network +package net.mamoe.mirai.network.protocol.tim import kotlinx.coroutines.* import net.mamoe.mirai.Bot @@ -6,9 +6,13 @@ 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.network.handler.* -import net.mamoe.mirai.network.packet.* -import net.mamoe.mirai.network.packet.login.* +import net.mamoe.mirai.network.BotNetworkHandler +import net.mamoe.mirai.network.LoginSession +import net.mamoe.mirai.network.NetworkScope +import net.mamoe.mirai.network.protocol.tim.handler.* +import net.mamoe.mirai.network.protocol.tim.internal.handler.* +import net.mamoe.mirai.network.protocol.tim.packet.* +import net.mamoe.mirai.network.protocol.tim.packet.login.* import net.mamoe.mirai.task.MiraiThreadPool import net.mamoe.mirai.utils.* import java.io.Closeable @@ -29,7 +33,7 @@ import javax.imageio.ImageIO * @author Him188moe */ @Suppress("EXPERIMENTAL_API_USAGE")//to simplify code -internal class BotNetworkHandlerImpl(private val bot: Bot) : BotNetworkHandler { +internal class TIMBotNetworkHandler(private val bot: Bot) : BotNetworkHandler { override val socket: BotSocket = BotSocket() lateinit var login: Login @@ -56,7 +60,7 @@ internal class BotNetworkHandlerImpl(private val bot: Bot) : BotNetworkHandler { * @param touchingTimeoutMillis 连接每个服务器的 timeout */ override fun tryLogin(touchingTimeoutMillis: Long): CompletableFuture { - val ipQueue: LinkedList = LinkedList(Protocol.SERVER_IP) + val ipQueue: LinkedList = LinkedList(TIMProtocol.SERVER_IP) val future = CompletableFuture() fun login() { @@ -185,7 +189,7 @@ internal class BotNetworkHandlerImpl(private val bot: Bot) : BotNetworkHandler { */ fun touch(serverAddress: String, timeoutMillis: Long): CompletableFuture { bot.info("Connecting server: $serverAddress") - if (this@BotNetworkHandlerImpl::login.isInitialized) { + if (this@TIMBotNetworkHandler::login.isInitialized) { login.close() } login = Login() @@ -231,7 +235,7 @@ internal class BotNetworkHandlerImpl(private val bot: Bot) : BotNetworkHandler { } } - override fun getOwner(): Bot = this@BotNetworkHandlerImpl.bot + override fun getOwner(): Bot = this@TIMBotNetworkHandler.bot override fun close() { this.socket?.close() diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/Protocol.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/TIMProtocol.kt similarity index 97% rename from mirai-core/src/main/java/net/mamoe/mirai/network/Protocol.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/TIMProtocol.kt index 9e6b32e1b..65e75179f 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/Protocol.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/TIMProtocol.kt @@ -1,6 +1,6 @@ @file:Suppress("EXPERIMENTAL_API_USAGE") -package net.mamoe.mirai.network +package net.mamoe.mirai.network.protocol.tim import net.mamoe.mirai.utils.hexToBytes import net.mamoe.mirai.utils.lazyDecode @@ -9,10 +9,13 @@ import java.net.InetAddress import java.util.* import java.util.stream.Collectors + +typealias TIM = TIMProtocol + /** * @author Him188moe */ -object Protocol { +object TIMProtocol { val SERVER_IP: List = object : ArrayList() { init { //add("183.60.56.29") diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/ActionPacketHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/ActionPacketHandler.kt similarity index 91% rename from mirai-core/src/main/java/net/mamoe/mirai/network/handler/ActionPacketHandler.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/ActionPacketHandler.kt index 45be2e2d8..a010cf8b5 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/ActionPacketHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/ActionPacketHandler.kt @@ -1,15 +1,15 @@ -package net.mamoe.mirai.network.handler +package net.mamoe.mirai.network.protocol.tim.handler import kotlinx.coroutines.runBlocking import net.mamoe.mirai.network.LoginSession -import net.mamoe.mirai.network.packet.* -import net.mamoe.mirai.network.packet.action.AddFriendResult -import net.mamoe.mirai.network.packet.action.ClientAddFriendPacket -import net.mamoe.mirai.network.packet.action.ClientCanAddFriendPacket -import net.mamoe.mirai.network.packet.action.ServerCanAddFriendResponsePacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDFailedPacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDResponsePacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDSuccessPacket +import net.mamoe.mirai.network.protocol.tim.packet.* +import net.mamoe.mirai.network.protocol.tim.packet.action.AddFriendResult +import net.mamoe.mirai.network.protocol.tim.packet.action.ClientAddFriendPacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ClientCanAddFriendPacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ServerCanAddFriendResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDFailedPacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDSuccessPacket import net.mamoe.mirai.task.MiraiThreadPool import net.mamoe.mirai.utils.getGTK import java.awt.image.BufferedImage diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/DataPacketSocket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt similarity index 70% rename from mirai-core/src/main/java/net/mamoe/mirai/network/handler/DataPacketSocket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt index 870373299..6f1de8fd9 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/DataPacketSocket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/DataPacketSocket.kt @@ -1,17 +1,17 @@ -package net.mamoe.mirai.network.handler +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.BotNetworkHandlerImpl +import net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler import net.mamoe.mirai.network.LoginSession -import net.mamoe.mirai.network.packet.ClientPacket -import net.mamoe.mirai.network.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket import java.io.Closeable /** * 网络接口. * 发包 / 处理包. - * 仅可通过 [BotNetworkHandlerImpl.socket] 得到实例. + * 仅可通过 [TIMBotNetworkHandler.socket] 得到实例. * * @author Him188moe */ diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/MessagePacketHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt similarity index 73% rename from mirai-core/src/main/java/net/mamoe/mirai/network/handler/MessagePacketHandler.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt index 3fa8f0cab..3076d2f30 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/MessagePacketHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/MessagePacketHandler.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network.handler +package net.mamoe.mirai.network.protocol.tim.handler import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.QQ @@ -8,14 +8,14 @@ import net.mamoe.mirai.getGroupByNumber import net.mamoe.mirai.getQQ import net.mamoe.mirai.message.defaults.MessageChain import net.mamoe.mirai.network.LoginSession -import net.mamoe.mirai.network.packet.ServerFriendMessageEventPacket -import net.mamoe.mirai.network.packet.ServerGroupMessageEventPacket -import net.mamoe.mirai.network.packet.ServerGroupUploadFileEventPacket -import net.mamoe.mirai.network.packet.ServerPacket -import net.mamoe.mirai.network.packet.action.ClientSendFriendMessagePacket -import net.mamoe.mirai.network.packet.action.ClientSendGroupMessagePacket -import net.mamoe.mirai.network.packet.action.ServerSendFriendMessageResponsePacket -import net.mamoe.mirai.network.packet.action.ServerSendGroupMessageResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerFriendMessageEventPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerGroupMessageEventPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerGroupUploadFileEventPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ClientSendFriendMessagePacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ClientSendGroupMessagePacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ServerSendFriendMessageResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ServerSendGroupMessageResponsePacket /** * 处理消息事件, 承担消息发送任务. diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/PacketHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/PacketHandler.kt similarity index 88% rename from mirai-core/src/main/java/net/mamoe/mirai/network/handler/PacketHandler.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/PacketHandler.kt index 86c6bc21d..8c3db56d5 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/PacketHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/PacketHandler.kt @@ -1,7 +1,7 @@ -package net.mamoe.mirai.network.handler +package net.mamoe.mirai.network.protocol.tim.handler import net.mamoe.mirai.network.LoginSession -import net.mamoe.mirai.network.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket import net.mamoe.mirai.utils.MiraiSynchronizedLinkedList import java.io.Closeable diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/TemporaryPacketHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/TemporaryPacketHandler.kt similarity index 86% rename from mirai-core/src/main/java/net/mamoe/mirai/network/handler/TemporaryPacketHandler.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/TemporaryPacketHandler.kt index 566028bff..8e4f918f2 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/handler/TemporaryPacketHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/handler/TemporaryPacketHandler.kt @@ -1,8 +1,8 @@ -package net.mamoe.mirai.network.handler +package net.mamoe.mirai.network.protocol.tim.handler import net.mamoe.mirai.network.LoginSession -import net.mamoe.mirai.network.packet.ClientPacket -import net.mamoe.mirai.network.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.ClientPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket import java.util.concurrent.CompletableFuture import kotlin.reflect.KClass diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ClientPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt similarity index 93% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/ClientPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt index d492e3c17..3b7155ede 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ClientPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ClientPacket.kt @@ -1,10 +1,10 @@ @file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS") -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet import lombok.Getter -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.PacketNameFormatter.adjustName +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.PacketNameFormatter.adjustName import net.mamoe.mirai.utils.* import java.io.DataOutputStream import java.io.IOException @@ -26,8 +26,8 @@ abstract class ClientPacket : ByteArrayDataOutputStream(), Packet { idHex = annotation.value.trim() try { - this.writeHex(Protocol.head) - this.writeHex(Protocol.ver) + this.writeHex(TIMProtocol.head) + this.writeHex(TIMProtocol.ver) this.writePacketId() } catch (e: IOException) { throw RuntimeException(e) @@ -43,7 +43,7 @@ abstract class ClientPacket : ByteArrayDataOutputStream(), Packet { * Encode this packet. * * - * Before sending the packet, a [tail][Protocol.tail] will be added. + * Before sending the packet, a [tail][TIMProtocol.tail] will be added. */ @Throws(IOException::class) protected abstract fun encode() @@ -53,7 +53,7 @@ abstract class ClientPacket : ByteArrayDataOutputStream(), Packet { return } encode() - writeHex(Protocol.tail) + writeHex(TIMProtocol.tail) } @Throws(IOException::class) @@ -129,7 +129,7 @@ fun DataOutputStream.writeTLV0006(qq: Long, password: String, loginTime: Int, lo it.writeRandom(4) it.writeHex("00 02") it.writeQQ(qq) - it.writeHex(Protocol.constantData2) + it.writeHex(TIMProtocol.constantData2) it.writeHex("00 00 01") it.write(firstMD5) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/GradeInfo.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/GradeInfo.kt similarity index 88% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/GradeInfo.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/GradeInfo.kt index d431672f9..7d451fc0f 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/GradeInfo.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/GradeInfo.kt @@ -1,6 +1,6 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet -import net.mamoe.mirai.network.Protocol +import net.mamoe.mirai.network.protocol.tim.TIMProtocol import net.mamoe.mirai.utils.TEA import java.io.DataInputStream @@ -19,7 +19,7 @@ class ClientAccountInfoRequestPacket( this.writeRandom(2)//part of packet id this.writeQQ(qq) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeByte(0x88) it.writeQQ(qq) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Heartbeat.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Heartbeat.kt similarity index 77% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/Heartbeat.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Heartbeat.kt index 8a1192842..40e06591b 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Heartbeat.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Heartbeat.kt @@ -1,6 +1,6 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet -import net.mamoe.mirai.network.Protocol +import net.mamoe.mirai.network.protocol.tim.TIMProtocol import java.io.DataInputStream import java.io.IOException @@ -17,7 +17,7 @@ class ClientHeartbeatPacket( override fun encode() { this.writeRandom(2) this.writeQQ(qq) - this.writeHex(Protocol.fixVer) + this.writeHex(TIMProtocol.fixVer) this.encryptAndWrite(sessionKey) { it.writeHex("00 01 00 01") } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Packet.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Packet.kt similarity index 90% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/Packet.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Packet.kt index 309d313f6..67d62c971 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Packet.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Packet.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet /** * @author Him188moe diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/PacketId.java b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/PacketId.java similarity index 87% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/PacketId.java rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/PacketId.java index a9e48582b..c53cad733 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/PacketId.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/PacketId.java @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network.packet; +package net.mamoe.mirai.network.protocol.tim.packet; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/SKey.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/SKey.kt similarity index 92% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/SKey.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/SKey.kt index a9e61c8ab..e883afad3 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/SKey.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/SKey.kt @@ -1,6 +1,6 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet -import net.mamoe.mirai.network.Protocol +import net.mamoe.mirai.network.protocol.tim.TIMProtocol import net.mamoe.mirai.utils.TEA import java.io.DataInputStream @@ -20,7 +20,7 @@ class ClientSKeyRequestPacket( this.writeRandom(2)//part of packet id this.writeQQ(qq) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeHex("33 00 05 00 08 74 2E 71 71 2E 63 6F 6D 00 0A 71 75 6E 2E 71 71 2E 63 6F 6D 00 0C 71 7A 6F 6E 65 2E 71 71 2E 63 6F 6D 00 0C 6A 75 62 61 6F 2E 71 71 2E 63 6F 6D 00 09 6B 65 2E 71 71 2E 63 6F 6D") } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt similarity index 99% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerEvent.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt index 3579bd131..fc880816d 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerEvent.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt @@ -1,13 +1,13 @@ @file:Suppress("EXPERIMENTAL_API_USAGE") -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.defaults.Face import net.mamoe.mirai.message.defaults.Image import net.mamoe.mirai.message.defaults.MessageChain import net.mamoe.mirai.message.defaults.PlainText -import net.mamoe.mirai.network.Protocol +import net.mamoe.mirai.network.protocol.tim.TIMProtocol import net.mamoe.mirai.utils.hexToBytes import net.mamoe.mirai.utils.lazyDecode import net.mamoe.mirai.utils.toUHexString @@ -362,7 +362,7 @@ class ClientEventResponsePacket( this.write(packetIdFromServer)//packet id 4bytes this.writeQQ(qq) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.write(eventIdentity) } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt similarity index 95% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt index 97852e236..479df3d02 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/ServerPacket.kt @@ -1,16 +1,16 @@ @file:Suppress("EXPERIMENTAL_API_USAGE") -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet import net.mamoe.mirai.Bot import net.mamoe.mirai.event.events.network.ServerPacketReceivedEvent import net.mamoe.mirai.event.hookWhile -import net.mamoe.mirai.network.packet.PacketNameFormatter.adjustName -import net.mamoe.mirai.network.packet.action.ServerCanAddFriendResponsePacket -import net.mamoe.mirai.network.packet.action.ServerSendFriendMessageResponsePacket -import net.mamoe.mirai.network.packet.action.ServerSendGroupMessageResponsePacket -import net.mamoe.mirai.network.packet.image.ServerTryGetImageIDResponsePacket -import net.mamoe.mirai.network.packet.login.* +import net.mamoe.mirai.network.protocol.tim.packet.PacketNameFormatter.adjustName +import net.mamoe.mirai.network.protocol.tim.packet.action.ServerCanAddFriendResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ServerSendFriendMessageResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.action.ServerSendGroupMessageResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.image.ServerTryGetImageIDResponsePacket +import net.mamoe.mirai.network.protocol.tim.packet.login.* import net.mamoe.mirai.task.MiraiThreadPool import net.mamoe.mirai.utils.* import java.io.DataInputStream diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Session.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Session.kt similarity index 94% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/Session.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Session.kt index f51c2d824..f596b7b11 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Session.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Session.kt @@ -1,6 +1,6 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet -import net.mamoe.mirai.network.Protocol +import net.mamoe.mirai.network.protocol.tim.TIMProtocol import net.mamoe.mirai.utils.TEA import net.mamoe.mirai.utils.lazyEncode import java.io.DataInputStream @@ -30,10 +30,10 @@ class ClientSessionRequestPacket( it.writeIP(serverIp) it.writeHex("1F 40 00 00 00 00 00 15 00 30 00 01")//fix1 it.writeHex("01 92 A5 D2 59 00 10 54 2D CF 9B 60 BF BB EC 0D D4 81 CE 36 87 DE 35 02 AE 6D ED DC 00 10 ") - it.writeHex(Protocol.fix0836) + it.writeHex(TIMProtocol.fix0836) it.writeHex("00 36 00 12 00 02 00 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00") - it.writeHex(Protocol.constantData1) - it.writeHex(Protocol.constantData2) + it.writeHex(TIMProtocol.constantData1) + it.writeHex(TIMProtocol.constantData2) it.writeQQ(qq) it.writeHex("00 00 00 00 00 1F 00 22 00 01") it.writeHex("1A 68 73 66 E4 BA 79 92 CC C2 D4 EC 14 7C 8B AF 43 B0 62 FB 65 58 A9 EB 37 55 1D 26 13 A8 E5 3D")//device ID diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Touch.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Touch.kt similarity index 75% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/Touch.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Touch.kt index f02c0a1b1..1f828288c 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/Touch.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/Touch.kt @@ -1,7 +1,7 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.login.ClientPasswordSubmissionPacket +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.login.ClientPasswordSubmissionPacket import net.mamoe.mirai.utils.ByteArrayDataOutputStream import net.mamoe.mirai.utils.TEA import net.mamoe.mirai.utils.hexToBytes @@ -56,8 +56,8 @@ class ServerTouchResponsePacket(inputStream: DataInputStream) : ServerPacket(inp class Encrypted(private val type: Type, inputStream: DataInputStream) : ServerPacket(inputStream) { fun decrypt(): ServerTouchResponsePacket = ServerTouchResponsePacket(decryptBy(when (type) { - Type.TYPE_08_25_31_02 -> Protocol.redirectionKey.hexToBytes() - Type.TYPE_08_25_31_01 -> Protocol.touchKey.hexToBytes() + Type.TYPE_08_25_31_02 -> TIMProtocol.redirectionKey.hexToBytes() + Type.TYPE_08_25_31_01 -> TIMProtocol.touchKey.hexToBytes() })).setId(this.idHex) } } @@ -74,17 +74,17 @@ class ClientTouchPacket(private val qq: Long, private val serverIp: String) : Cl @Throws(IOException::class) override fun encode() { this.writeQQ(qq) - this.writeHex(Protocol.fixVer) - this.writeHex(Protocol.touchKey) + this.writeHex(TIMProtocol.fixVer) + this.writeHex(TIMProtocol.touchKey) - this.encryptAndWrite(Protocol.touchKey) { - it.writeHex(Protocol.constantData1) - it.writeHex(Protocol.constantData2) + this.encryptAndWrite(TIMProtocol.touchKey) { + it.writeHex(TIMProtocol.constantData1) + it.writeHex(TIMProtocol.constantData2) it.writeQQ(qq) it.writeHex("00 00 00 00 03 09 00 08 00 01") it.writeIP(serverIp) it.writeHex("00 02 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 02 00 19") - it.writeHex(Protocol.publicKey) + it.writeHex(TIMProtocol.publicKey) } } } @@ -99,22 +99,22 @@ class ClientServerRedirectionPacket(private val serverIP: String, private val qq override fun encode() { this.writeQQ(qq) - this.writeHex(Protocol.fixVer) - this.writeHex(Protocol.redirectionKey) + this.writeHex(TIMProtocol.fixVer) + this.writeHex(TIMProtocol.redirectionKey) this.write(TEA.encrypt(object : ByteArrayDataOutputStream() { @Throws(IOException::class) override fun toByteArray(): ByteArray { - this.writeHex(Protocol.constantData1) - this.writeHex(Protocol.constantData2) + this.writeHex(TIMProtocol.constantData1) + this.writeHex(TIMProtocol.constantData2) this.writeQQ(qq) this.writeHex("00 01 00 00 03 09 00 0C 00 01") this.writeIP(serverIP) this.writeHex("01 6F A1 58 22 01 00 36 00 12 00 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 14 00 1D 01 03 00 19") - this.writeHex(Protocol.publicKey) + this.writeHex(TIMProtocol.publicKey) return super.toByteArray() } - }.toByteArray(), Protocol.redirectionKey.hexToBytes())) + }.toByteArray(), TIMProtocol.redirectionKey.hexToBytes())) } } \ No newline at end of file diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/UnknownServerPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/UnknownServerPacket.kt similarity index 90% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/UnknownServerPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/UnknownServerPacket.kt index 37ec68e16..ac516d684 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/UnknownServerPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/UnknownServerPacket.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet import net.mamoe.mirai.utils.LoggerTextFormat import net.mamoe.mirai.utils.toUHexString diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/VerificationCode.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/VerificationCode.kt similarity index 86% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/VerificationCode.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/VerificationCode.kt index fdba242dd..c55e91bfd 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/VerificationCode.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/VerificationCode.kt @@ -1,6 +1,6 @@ -package net.mamoe.mirai.network.packet +package net.mamoe.mirai.network.protocol.tim.packet -import net.mamoe.mirai.network.Protocol +import net.mamoe.mirai.network.protocol.tim.TIMProtocol import net.mamoe.mirai.utils.TEA import net.mamoe.mirai.utils.Tested import net.mamoe.mirai.utils.hexToBytes @@ -23,21 +23,21 @@ class ClientVerificationCodeTransmissionRequestPacket( this.writeByte(packetId)//part of packet id this.writeQQ(qq) - this.writeHex(Protocol.fixVer) - this.writeHex(Protocol.key00BA) - this.encryptAndWrite(Protocol.key00BA) { + this.writeHex(TIMProtocol.fixVer) + this.writeHex(TIMProtocol.key00BA) + this.encryptAndWrite(TIMProtocol.key00BA) { it.writeHex("00 02 00 00 08 04 01 E0") - it.writeHex(Protocol.constantData2) + it.writeHex(TIMProtocol.constantData2) it.writeHex("00 00 38") it.write(token0825) it.writeHex("01 03 00 19") - it.writeHex(Protocol.publicKey) + it.writeHex(TIMProtocol.publicKey) it.writeHex("13 00 05 00 00 00 00") it.writeByte(verificationSequence) it.writeHex("00 28") it.write(token00BA) it.writeHex("00 10") - it.writeHex(Protocol.key00BAFix) + it.writeHex(TIMProtocol.key00BAFix) } } } @@ -62,17 +62,17 @@ class ClientVerificationCodeSubmitPacket( this.writeByte(packetIdLast)//part of packet id this.writeQQ(qq) - this.writeHex(Protocol.fixVer) - this.writeHex(Protocol.key00BA) - this.encryptAndWrite(Protocol.key00BA) { + this.writeHex(TIMProtocol.fixVer) + this.writeHex(TIMProtocol.key00BA) + this.encryptAndWrite(TIMProtocol.key00BA) { it.writeHex("00 02 00 00 08 04 01 E0") - it.writeHex(Protocol.constantData2) + it.writeHex(TIMProtocol.constantData2) it.writeHex("01 00 38") it.write(token0825) it.writeHex("01 03") it.writeShort(25) - it.writeHex(Protocol.publicKey)//25 + it.writeHex(TIMProtocol.publicKey)//25 it.writeHex("14 00 05 00 00 00 00 00 04") it.write(verificationCode.toUpperCase().toByteArray()) @@ -80,7 +80,7 @@ class ClientVerificationCodeSubmitPacket( it.write(verificationToken) it.writeShort(16) - it.writeHex(Protocol.key00BAFix)//16 + it.writeHex(TIMProtocol.key00BAFix)//16 } } @@ -103,17 +103,17 @@ class ClientVerificationCodeRefreshPacket( this.writeByte(packetIdLast)//part of packet id this.writeQQ(qq) - this.writeHex(Protocol.fixVer) - this.writeHex(Protocol.key00BA) - this.encryptAndWrite(Protocol.key00BA) { + this.writeHex(TIMProtocol.fixVer) + this.writeHex(TIMProtocol.key00BA) + this.encryptAndWrite(TIMProtocol.key00BA) { it.writeHex("00 02 00 00 08 04 01 E0") - it.writeHex(Protocol.constantData2) + it.writeHex(TIMProtocol.constantData2) it.writeHex("00 00 38") it.write(token0825) it.writeHex("01 03 00 19") - it.writeHex(Protocol.publicKey) + it.writeHex(TIMProtocol.publicKey) it.writeHex("13 00 05 00 00 00 00 00 00 00 00 10") - it.writeHex(Protocol.key00BAFix) + it.writeHex(TIMProtocol.key00BAFix) } } @@ -194,7 +194,7 @@ abstract class ServerCatchaPacket(input: DataInputStream) : ServerPacket(input) fun decrypt(): ServerCatchaPacket { this.input goto 14 - val data = TEA.decrypt(this.input.readAllBytes().cutTail(1), Protocol.key00BA.hexToBytes()) + val data = TEA.decrypt(this.input.readAllBytes().cutTail(1), TIMProtocol.key00BA.hexToBytes()) if (id.startsWith("00 BA 32")) { return when (data.size) { 66, diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/AddContact.kt similarity index 92% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/AddContact.kt index c19724dba..4f3a455db 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/AddContact.kt @@ -1,9 +1,9 @@ @file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS") -package net.mamoe.mirai.network.packet.action +package net.mamoe.mirai.network.protocol.tim.packet.action -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.getRandomByteArray import net.mamoe.mirai.utils.toUHexString import java.io.DataInputStream @@ -31,7 +31,7 @@ class ClientCanAddFriendPacket( this.write(packetIdLast)//id, 2bytes this.writeQQ(bot) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeQQ(qq) } @@ -96,7 +96,7 @@ class ClientAddFriendPacket( this.write(packetIdLast)//id, 2bytes this.writeQQ(bot) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeHex("01 00 01") it.writeQQ(qq) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddFriendResult.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/AddFriendResult.kt similarity index 83% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddFriendResult.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/AddFriendResult.kt index 29c26dfbc..8a541c15d 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddFriendResult.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/AddFriendResult.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network.packet.action +package net.mamoe.mirai.network.protocol.tim.packet.action /** * 添加好友结果 diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/ClientSendFriendMessagePacket.kt similarity index 85% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/ClientSendFriendMessagePacket.kt index 10a7ecc08..84fb6c87c 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/ClientSendFriendMessagePacket.kt @@ -1,8 +1,8 @@ -package net.mamoe.mirai.network.packet.action +package net.mamoe.mirai.network.protocol.tim.packet.action import net.mamoe.mirai.message.defaults.MessageChain -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.lazyEncode import java.io.DataInputStream @@ -21,7 +21,7 @@ class ClientSendFriendMessagePacket( this.writeRandom(2)//part of packet id this.writeQQ(botQQ) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeQQ(botQQ) @@ -38,7 +38,7 @@ class ClientSendFriendMessagePacket( it.writeTime() it.writeRandom(4) it.writeHex("00 00 00 00 09 00 86") - it.writeHex(Protocol.messageConst1)//... 85 E9 BB 91 + it.writeHex(TIMProtocol.messageConst1)//... 85 E9 BB 91 it.writeZero(2) it.write(message.toByteArray()) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/ClientSendGroupMessagePacket.kt similarity index 84% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/ClientSendGroupMessagePacket.kt index 42479a511..ca0d90da0 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/action/ClientSendGroupMessagePacket.kt @@ -1,8 +1,8 @@ -package net.mamoe.mirai.network.packet.action +package net.mamoe.mirai.network.protocol.tim.packet.action import net.mamoe.mirai.message.defaults.MessageChain -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.lazyEncode import net.mamoe.mirai.utils.toUHexString import java.io.DataInputStream @@ -20,7 +20,7 @@ class ClientSendGroupMessagePacket( override fun encode() { this.writeRandom(2)//part of packet id this.writeQQ(botQQ) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { val bytes = message.toByteArray() @@ -34,7 +34,7 @@ class ClientSendGroupMessagePacket( child.writeTime() child.writeRandom(4) child.writeHex("00 00 00 00 09 00 86") - child.writeHex(Protocol.messageConst1) + child.writeHex(TIMProtocol.messageConst1) child.writeZero(2) //messages diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/image/UploadGroupImage.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/image/UploadGroupImage.kt similarity index 96% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/image/UploadGroupImage.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/image/UploadGroupImage.kt index f72a59020..05cf98802 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/image/UploadGroupImage.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/image/UploadGroupImage.kt @@ -1,8 +1,8 @@ @file:Suppress("EXPERIMENTAL_API_USAGE", "EXPERIMENTAL_UNSIGNED_LITERALS") -package net.mamoe.mirai.network.packet.image +package net.mamoe.mirai.network.protocol.tim.packet.image -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.toByteArray import net.mamoe.mirai.utils.writeUVarInt import java.awt.image.BufferedImage diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientChangeOnlineStatusPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ClientChangeOnlineStatusPacket.kt similarity index 75% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientChangeOnlineStatusPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ClientChangeOnlineStatusPacket.kt index 3d48d48e6..0572aa7b5 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientChangeOnlineStatusPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ClientChangeOnlineStatusPacket.kt @@ -1,7 +1,7 @@ -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.ClientLoginStatus /** @@ -22,7 +22,7 @@ class ClientChangeOnlineStatusPacket( this.writeRandom(2)//part of packet id this.writeQQ(qq) - this.writeHex(Protocol.fixVer2) + this.writeHex(TIMProtocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeHex("01 00") it.writeByte(loginStatus.id) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLogin.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ClientLogin.kt similarity index 84% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLogin.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ClientLogin.kt index d6ab27eb2..d70183abe 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLogin.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ClientLogin.kt @@ -1,7 +1,7 @@ -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.* +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.* import net.mamoe.mirai.utils.TEA import net.mamoe.mirai.utils.Tested import net.mamoe.mirai.utils.hexToBytes @@ -25,15 +25,15 @@ class ClientPasswordSubmissionPacket( override fun encode() { this.writeQQ(qq) - this.writeHex(Protocol.passwordSubmissionTLV1) + this.writeHex(TIMProtocol.passwordSubmissionTLV1) this.writeShort(25) - this.writeHex(Protocol.publicKey)//25 + this.writeHex(TIMProtocol.publicKey)//25 this.writeHex("00 00 00 10") - this.writeHex(Protocol.key0836) + this.writeHex(TIMProtocol.key0836) - this.encryptAndWrite(Protocol.shareKey.hexToBytes()) { + this.encryptAndWrite(TIMProtocol.shareKey.hexToBytes()) { it.writePart1(qq, password, loginTime, loginIP, tgtgtKey, token0825) it.writePart2() } @@ -68,15 +68,15 @@ open class ClientLoginResendPacket internal constructor( ) : ClientPacket() { override fun encode() { this.writeQQ(qq) - this.writeHex(Protocol.passwordSubmissionTLV1) + this.writeHex(TIMProtocol.passwordSubmissionTLV1) this.writeShort(25) - this.writeHex(Protocol.publicKey)//25 + this.writeHex(TIMProtocol.publicKey)//25 this.writeHex("00 00 00 10")//=16 - this.writeHex(Protocol.key0836)//16 + this.writeHex(TIMProtocol.key0836)//16 - this.encryptAndWrite(Protocol.shareKey.hexToBytes()) { + this.encryptAndWrite(TIMProtocol.shareKey.hexToBytes()) { it.writePart1(qq, password, loginTime, loginIP, tgtgtKey, token0825, tlv0006) it.writeHex("01 10") //tag @@ -114,12 +114,12 @@ private fun DataOutputStream.writePart1(qq: Long, password: String, loginTime: I this.writeTLV0006(qq, password, loginTime, loginIP, tgtgtKey) } //fix - this.writeHex(Protocol.passwordSubmissionTLV2) + this.writeHex(TIMProtocol.passwordSubmissionTLV2) this.writeHex("00 1A")//tag this.writeHex("00 40")//length - this.write(TEA.encrypt(Protocol.passwordSubmissionTLV2.hexToBytes(), tgtgtKey)) - this.writeHex(Protocol.constantData1) - this.writeHex(Protocol.constantData2) + this.write(TEA.encrypt(TIMProtocol.passwordSubmissionTLV2.hexToBytes(), tgtgtKey)) + this.writeHex(TIMProtocol.constantData1) + this.writeHex(TIMProtocol.constantData2) this.writeQQ(qq) this.writeZero(4) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/LoginState.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/LoginState.kt similarity index 90% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/LoginState.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/LoginState.kt index f5ccba7d6..ec36612df 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/LoginState.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/LoginState.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login /** * @author Him188moe diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseFailedPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseFailedPacket.kt similarity index 63% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseFailedPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseFailedPacket.kt index 6c1915094..e5f38203e 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseFailedPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseFailedPacket.kt @@ -1,6 +1,6 @@ -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login -import net.mamoe.mirai.network.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket import java.io.DataInputStream /** diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseKeyExchangePacket.kt similarity index 79% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseKeyExchangePacket.kt index e92a3828e..9c7256375 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseKeyExchangePacket.kt @@ -1,9 +1,9 @@ -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.PacketId -import net.mamoe.mirai.network.packet.ServerPacket -import net.mamoe.mirai.network.packet.goto +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.PacketId +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.goto import net.mamoe.mirai.utils.Tested import java.io.DataInputStream @@ -49,7 +49,7 @@ class ServerLoginResponseKeyExchangePacket(input: DataInputStream, val flag: Fla @Tested fun decrypt(tgtgtKey: ByteArray): ServerLoginResponseKeyExchangePacket { - return ServerLoginResponseKeyExchangePacket(this.decryptBy(Protocol.shareKey, tgtgtKey), flag).setId(this.idHex) + return ServerLoginResponseKeyExchangePacket(this.decryptBy(TIMProtocol.shareKey, tgtgtKey), flag).setId(this.idHex) } } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt similarity index 80% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt index 8bcbe894f..c57dc3545 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt @@ -1,12 +1,12 @@ @file:Suppress("EXPERIMENTAL_API_USAGE") -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.ServerPacket -import net.mamoe.mirai.network.packet.goto -import net.mamoe.mirai.network.packet.readNBytesAt -import net.mamoe.mirai.network.packet.readString +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.goto +import net.mamoe.mirai.network.protocol.tim.packet.readNBytesAt +import net.mamoe.mirai.network.protocol.tim.packet.readString import net.mamoe.mirai.utils.Tested import net.mamoe.mirai.utils.toUHexString import java.io.DataInputStream @@ -57,7 +57,7 @@ class ServerLoginResponseSuccessPacket(input: DataInputStream) : ServerPacket(in fun decrypt(tgtgtKey: ByteArray): ServerLoginResponseSuccessPacket { input goto 14 - return ServerLoginResponseSuccessPacket(this.decryptBy(Protocol.shareKey, tgtgtKey)).setId(this.idHex) + return ServerLoginResponseSuccessPacket(this.decryptBy(TIMProtocol.shareKey, tgtgtKey)).setId(this.idHex) } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseVerificationCodeInitPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseVerificationCodeInitPacket.kt similarity index 95% rename from mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseVerificationCodeInitPacket.kt rename to mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseVerificationCodeInitPacket.kt index 314391011..762ef96aa 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseVerificationCodeInitPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginResponseVerificationCodeInitPacket.kt @@ -1,11 +1,11 @@ @file:Suppress("EXPERIMENTAL_API_USAGE") -package net.mamoe.mirai.network.packet.login +package net.mamoe.mirai.network.protocol.tim.packet.login -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.ServerPacket -import net.mamoe.mirai.network.packet.dataInputStream -import net.mamoe.mirai.network.packet.goto +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.dataInputStream +import net.mamoe.mirai.network.protocol.tim.packet.goto import net.mamoe.mirai.utils.Tested import net.mamoe.mirai.utils.hexToUBytes import java.io.DataInputStream @@ -44,7 +44,7 @@ class ServerLoginResponseVerificationCodeInitPacket(input: DataInputStream, priv fun decrypt(): ServerLoginResponseVerificationCodeInitPacket { this.input goto 14 - val data = this.decryptBy(Protocol.shareKey).goto(0).readAllBytes() + val data = this.decryptBy(TIMProtocol.shareKey).goto(0).readAllBytes() return ServerLoginResponseVerificationCodeInitPacket(data.dataInputStream(), data.size).setId(this.idHex) } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginSuccessPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginSuccessPacket.kt new file mode 100644 index 000000000..fd6d055e4 --- /dev/null +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/protocol/tim/packet/login/ServerLoginSuccessPacket.kt @@ -0,0 +1,13 @@ +package net.mamoe.mirai.network.protocol.tim.packet.login + +import net.mamoe.mirai.network.protocol.tim.packet.PacketId +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import java.io.DataInputStream + +/** + * Congratulations! + * + * @author Him188moe + */ +@PacketId("00 EC") +class ServerLoginSuccessPacket(input: DataInputStream) : ServerPacket(input) \ No newline at end of file diff --git a/mirai-core/src/main/java/net/mamoe/mirai/utils/ClientLoginStatus.java b/mirai-core/src/main/java/net/mamoe/mirai/utils/ClientLoginStatus.java index 88d35da0c..8ef6e638d 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/utils/ClientLoginStatus.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/utils/ClientLoginStatus.java @@ -4,7 +4,7 @@ package net.mamoe.mirai.utils; * QQ 在线状态 * * @author Him188moe - * @see net.mamoe.mirai.network.packet.login.ClientChangeOnlineStatusPacket + * @see net.mamoe.mirai.network.protocol.tim.packet.login.ClientChangeOnlineStatusPacket */ public enum ClientLoginStatus { /** diff --git a/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt b/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt index 2de2b3325..38f273a89 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt @@ -1,8 +1,8 @@ package net.mamoe.mirai.utils import net.mamoe.mirai.Bot -import net.mamoe.mirai.network.packet.ServerPacket -import net.mamoe.mirai.network.packet.goto +import net.mamoe.mirai.network.protocol.tim.packet.ServerPacket +import net.mamoe.mirai.network.protocol.tim.packet.goto import java.text.SimpleDateFormat import java.util.* diff --git a/mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.kt b/mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.kt index 07402be7c..5d69ccd17 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.kt @@ -2,8 +2,8 @@ package net.mamoe.mirai.utils -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.dataInputStream +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.dataInputStream import java.awt.image.BufferedImage import java.io.ByteArrayOutputStream import java.io.DataInputStream @@ -60,10 +60,10 @@ fun UByteArray.toUHexString(): String = this.toUHexString(" ") fun Byte.toUHexString(): String = this.toUByte().toString(16) -fun String.hexToBytes(): ByteArray = Protocol.hexToBytes(this) +fun String.hexToBytes(): ByteArray = TIMProtocol.hexToBytes(this) -fun String.hexToUBytes(): UByteArray = Protocol.hexToUBytes(this) +fun String.hexToUBytes(): UByteArray = TIMProtocol.hexToUBytes(this) fun String.hexToInt(): Int = hexToBytes().toUInt().toInt() diff --git a/mirai-core/src/test/java/BadQQFilter.kt b/mirai-core/src/test/java/BadQQFilter.kt index ba6b3c08f..818249eff 100644 --- a/mirai-core/src/test/java/BadQQFilter.kt +++ b/mirai-core/src/test/java/BadQQFilter.kt @@ -2,7 +2,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import net.mamoe.mirai.Bot -import net.mamoe.mirai.network.packet.login.LoginState +import net.mamoe.mirai.network.protocol.tim.packet.login.LoginState import net.mamoe.mirai.utils.BotAccount import net.mamoe.mirai.utils.Console import java.util.* diff --git a/mirai-core/src/test/java/HexComparator.java b/mirai-core/src/test/java/HexComparator.java index 674b274ff..57be940df 100644 --- a/mirai-core/src/test/java/HexComparator.java +++ b/mirai-core/src/test/java/HexComparator.java @@ -2,8 +2,8 @@ import kotlin.ranges.IntRange; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.ToString; -import net.mamoe.mirai.network.Protocol; -import net.mamoe.mirai.network.packet.ClientPacketKt; +import net.mamoe.mirai.network.protocol.tim.TIMProtocol; +import net.mamoe.mirai.network.protocol.tim.packet.ClientPacketKt; import net.mamoe.mirai.utils.UtilsKt; import java.awt.*; @@ -44,7 +44,7 @@ public class HexComparator { private static class ConstMatcher { private static final List CONST_FIELDS = new LinkedList<>() {{ - List.of(Protocol.class).forEach(aClass -> Arrays.stream(aClass.getDeclaredFields()).peek(this::add).forEach(Field::trySetAccessible)); + List.of(TIMProtocol.class).forEach(aClass -> Arrays.stream(aClass.getDeclaredFields()).peek(this::add).forEach(Field::trySetAccessible)); List.of(TestConsts.class).forEach(aClass -> Arrays.stream(aClass.getDeclaredFields()).peek(this::add).forEach(Field::trySetAccessible)); }}; diff --git a/mirai-core/src/test/java/PacketDebuger.kt b/mirai-core/src/test/java/PacketDebuger.kt index 7457f45f6..7c02f0a99 100644 --- a/mirai-core/src/test/java/PacketDebuger.kt +++ b/mirai-core/src/test/java/PacketDebuger.kt @@ -3,12 +3,12 @@ import jpcap.JpcapCaptor import jpcap.packet.IPPacket import jpcap.packet.UDPPacket -import net.mamoe.mirai.network.Protocol -import net.mamoe.mirai.network.packet.* -import net.mamoe.mirai.network.packet.login.ServerLoginResponseFailedPacket -import net.mamoe.mirai.network.packet.login.ServerLoginResponseKeyExchangePacket -import net.mamoe.mirai.network.packet.login.ServerLoginResponseSuccessPacket -import net.mamoe.mirai.network.packet.login.ServerLoginResponseVerificationCodeInitPacket +import net.mamoe.mirai.network.protocol.tim.TIMProtocol +import net.mamoe.mirai.network.protocol.tim.packet.* +import net.mamoe.mirai.network.protocol.tim.packet.login.ServerLoginResponseFailedPacket +import net.mamoe.mirai.network.protocol.tim.packet.login.ServerLoginResponseKeyExchangePacket +import net.mamoe.mirai.network.protocol.tim.packet.login.ServerLoginResponseSuccessPacket +import net.mamoe.mirai.network.protocol.tim.packet.login.ServerLoginResponseVerificationCodeInitPacket import net.mamoe.mirai.utils.* import java.io.DataInputStream @@ -153,17 +153,17 @@ object Main { } "08 36" -> { - println("tim的 passwordSubmissionKey1 = " + it.readNBytes(Protocol.passwordSubmissionTLV1.hexToBytes().size).toUHexString()) + println("tim的 passwordSubmissionKey1 = " + it.readNBytes(TIMProtocol.passwordSubmissionTLV1.hexToBytes().size).toUHexString()) //it.skipHex(Protocol.passwordSubmissionKey1) println(it.readNBytes(2).toUHexString()) - println("tim的 publicKey = " + it.readNBytes(Protocol.publicKey.hexToBytes().size).toUHexString()) + println("tim的 publicKey = " + it.readNBytes(TIMProtocol.publicKey.hexToBytes().size).toUHexString()) println(it.readNBytes(2).toUHexString()) println("tim的 key0836=" + it.readLVByteArray().toUHexString()) //it.skipHex(Protocol.key0836) val encrypted = it.readAllBytes() println(encrypted.size) println(encrypted.toUHexString()) - val tlv0006data = lazyDecode(encrypted.decryptBy(Protocol.shareKey)) { section -> + val tlv0006data = lazyDecode(encrypted.decryptBy(TIMProtocol.shareKey)) { section -> section.skip(2 + 2 + 56 + 2) section.skip(section.readShort())//device name section.skip(6 + 4 + 2 + 2) @@ -173,7 +173,7 @@ object Main { } lazyDecode(tlv0006data) { tlv0006 -> tlv0006.skip(4 + 2 + 4) - tlv0006.skipHex(Protocol.constantData2) + tlv0006.skipHex(TIMProtocol.constantData2) tlv0006.skip(3) tlv0006.skip(16 + 4 + 1 + 4 * 3 + 4 + 8 + 2) tlv0006.skipHex("15 74 C4 89 85 7A 19 F5 5E A9 C9 A3 5E 8A 5A 9B") 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 ecb3d5202..2de8210d6 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 @@ -7,7 +7,7 @@ import net.mamoe.mirai.event.events.qq.FriendMessageEvent import net.mamoe.mirai.event.hookAlways import net.mamoe.mirai.message.defaults.Image import net.mamoe.mirai.message.defaults.PlainText -import net.mamoe.mirai.network.packet.login.LoginState +import net.mamoe.mirai.network.protocol.tim.packet.login.LoginState import net.mamoe.mirai.utils.BotAccount import net.mamoe.mirai.utils.Console @@ -45,13 +45,13 @@ fun main() { } /*it.message eq "发图片群" -> sendGroupMessage(Group(session.bot, 580266363), PlainText("test") + UnsolvedImage(File("C:\\Users\\Him18\\Desktop\\faceImage_1559564477775.jpg")).also { image -> - image.upload(session, Group(session.bot, 580266363)).get() + image.upload(session, Group(session.bot, 580266363)).of() })*/ it.message eq "发图片群2" -> Group(bot, 580266363).sendMessage(Image("{7AA4B3AA-8C3C-0F45-2D9B-7F302A0ACEAA}.jpg")) /* it.message eq "发图片" -> sendFriendMessage(it.sender, PlainText("test") + UnsolvedImage(File("C:\\Users\\Him18\\Desktop\\faceImage_1559564477775.jpg")).also { image -> - image.upload(session, it.sender).get() + image.upload(session, it.sender).of() })*/ it.message eq "发图片2" -> it.reply(PlainText("test") + Image("{7AA4B3AA-8C3C-0F45-2D9B-7F302A0ACEAA}.jpg")) }