Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Mirai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Mirai
Commits
0c6e0936
Commit
0c6e0936
authored
Dec 17, 2019
by
Him188
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename protocol.tim to protocol.timpc
parent
20f52987
Changes
86
Hide whitespace changes
Inline
Side-by-side
Showing
86 changed files
with
325 additions
and
227 deletions
+325
-227
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/BotSession.kt
.../androidMain/kotlin/net/mamoe/mirai/network/BotSession.kt
+1
-1
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/protocol/timpc/NetworkDispatcherAndroid.kt
.../mirai/network/protocol/timpc/NetworkDispatcherAndroid.kt
+1
-1
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/protocol/timpc/packet/event/MessagePacket.kt
...irai/network/protocol/timpc/packet/event/MessagePacket.kt
+1
-1
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsAndroid.kt
...Main/kotlin/net/mamoe/mirai/utils/PlatformUtilsAndroid.kt
+18
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/Bot.kt
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/Bot.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotAddFriend.kt
...ore/src/commonMain/kotlin/net.mamoe.mirai/BotAddFriend.kt
+4
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotHelper.kt
...i-core/src/commonMain/kotlin/net.mamoe.mirai/BotHelper.kt
+4
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotImpl.kt
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotImpl.kt
+7
-7
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
...re/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/QQ.kt
...-core/src/commonMain/kotlin/net.mamoe.mirai/contact/QQ.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/internal/ContactImpl.kt
...in/kotlin/net.mamoe.mirai/contact/internal/ContactImpl.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt
...onMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/PacketEvents.kt
...nMain/kotlin/net.mamoe.mirai/event/events/PacketEvents.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/Image.kt
...re/src/commonMain/kotlin/net.mamoe.mirai/message/Image.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessageType.kt
.../commonMain/kotlin/net.mamoe.mirai/message/MessageType.kt
+1
-0
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/internal/MessageDataInternal.kt
...n/net.mamoe.mirai/message/internal/MessageDataInternal.kt
+46
-19
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/BotNetworkHandler.kt
...nMain/kotlin/net.mamoe.mirai/network/BotNetworkHandler.kt
+7
-7
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/BotSession.kt
...c/commonMain/kotlin/net.mamoe.mirai/network/BotSession.kt
+10
-10
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MuteEvent.kt
...amoe.mirai/network/protocol/tim/packet/event/MuteEvent.kt
+0
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/TIMBotNetworkHandler.kt
...amoe.mirai/network/protocol/timpc/TIMBotNetworkHandler.kt
+5
-5
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/TIMProtocol.kt
...lin/net.mamoe.mirai/network/protocol/timpc/TIMProtocol.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/handler/DataPacketSocketAdapter.kt
...network/protocol/timpc/handler/DataPacketSocketAdapter.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/handler/TemporaryPacketHandler.kt
.../network/protocol/timpc/handler/TemporaryPacketHandler.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/Annotations.kt
....mamoe.mirai/network/protocol/timpc/packet/Annotations.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/Decrypters.kt
...t.mamoe.mirai/network/protocol/timpc/packet/Decrypters.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/OutgoingPacket.kt
...moe.mirai/network/protocol/timpc/packet/OutgoingPacket.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/Packet.kt
...n/net.mamoe.mirai/network/protocol/timpc/packet/Packet.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/PacketFactory.kt
...amoe.mirai/network/protocol/timpc/packet/PacketFactory.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/PacketId.kt
...net.mamoe.mirai/network/protocol/timpc/packet/PacketId.kt
+5
-5
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/AddContact.kt
....mirai/network/protocol/timpc/packet/action/AddContact.kt
+4
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/FriendImage.kt
...mirai/network/protocol/timpc/packet/action/FriendImage.kt
+4
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/FriendList.kt
....mirai/network/protocol/timpc/packet/action/FriendList.kt
+4
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/GradeInfo.kt
...e.mirai/network/protocol/timpc/packet/action/GradeInfo.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/GroupImage.kt
....mirai/network/protocol/timpc/packet/action/GroupImage.kt
+25
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/GroupPacket.kt
...mirai/network/protocol/timpc/packet/action/GroupPacket.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/HttpAPIAccessor.kt
...i/network/protocol/timpc/packet/action/HttpAPIAccessor.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/Image.kt
...mamoe.mirai/network/protocol/timpc/packet/action/Image.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/Profile.kt
...moe.mirai/network/protocol/timpc/packet/action/Profile.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/Remark.kt
...amoe.mirai/network/protocol/timpc/packet/action/Remark.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/RequestFriendListPacket.kt
...k/protocol/timpc/packet/action/RequestFriendListPacket.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/action/SendFriendMessagePacket.kt
...k/protocol/timpc/packet/action/SendFriendMessagePacket.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/AndroidOnlineStatusChange.kt
.../protocol/timpc/packet/event/AndroidOnlineStatusChange.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/ConnectionOccupiedEvent.kt
...rk/protocol/timpc/packet/event/ConnectionOccupiedEvent.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/EventPacket.kt
....mirai/network/protocol/timpc/packet/event/EventPacket.kt
+11
-0
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/EventPacketFactory.kt
...network/protocol/timpc/packet/event/EventPacketFactory.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/FriendAddRequestEventPacket.kt
...rotocol/timpc/packet/event/FriendAddRequestEventPacket.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/FriendConversationIniliaze.kt
...protocol/timpc/packet/event/FriendConversationIniliaze.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/FriendOnlineStatusChanged.kt
.../protocol/timpc/packet/event/FriendOnlineStatusChanged.kt
+4
-4
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/GroupFileUpload.kt
...ai/network/protocol/timpc/packet/event/GroupFileUpload.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/Ignored.kt
...amoe.mirai/network/protocol/timpc/packet/event/Ignored.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MemberJoin.kt
...e.mirai/network/protocol/timpc/packet/event/MemberJoin.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MemberKickEvent.kt
...ai/network/protocol/timpc/packet/event/MemberKickEvent.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MemberMute.kt
...e.mirai/network/protocol/timpc/packet/event/MemberMute.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MemberPermission.kt
...i/network/protocol/timpc/packet/event/MemberPermission.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MessageEvent.kt
...mirai/network/protocol/timpc/packet/event/MessageEvent.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MuteEvent.kt
...oe.mirai/network/protocol/timpc/packet/event/MuteEvent.kt
+4
-0
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/PhoneMessage.kt
...mirai/network/protocol/timpc/packet/event/PhoneMessage.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/QuitGroup.kt
...oe.mirai/network/protocol/timpc/packet/event/QuitGroup.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/Unknown.kt
...amoe.mirai/network/protocol/timpc/packet/event/Unknown.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/Captcha.kt
...amoe.mirai/network/protocol/timpc/packet/login/Captcha.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/ChangeOnlineStatusPacket.kt
...k/protocol/timpc/packet/login/ChangeOnlineStatusPacket.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/Heartbeat.kt
...oe.mirai/network/protocol/timpc/packet/login/Heartbeat.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/LoginResult.kt
....mirai/network/protocol/timpc/packet/login/LoginResult.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/PasswordSubmission.kt
...network/protocol/timpc/packet/login/PasswordSubmission.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/SKey.kt
...t.mamoe.mirai/network/protocol/timpc/packet/login/SKey.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/Session.kt
...amoe.mirai/network/protocol/timpc/packet/login/Session.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/login/Touch.kt
....mamoe.mirai/network/protocol/timpc/packet/login/Touch.kt
+3
-3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/BotConfiguration.kt
...mmonMain/kotlin/net.mamoe.mirai/utils/BotConfiguration.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/ExternalImage.kt
.../commonMain/kotlin/net.mamoe.mirai/utils/ExternalImage.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/OnlineStatus.kt
...c/commonMain/kotlin/net.mamoe.mirai/utils/OnlineStatus.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/PlatformUtils.kt
.../commonMain/kotlin/net.mamoe.mirai/utils/PlatformUtils.kt
+3
-0
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/TEA.kt
...i-core/src/commonMain/kotlin/net.mamoe.mirai/utils/TEA.kt
+2
-2
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/internal/HexComparator.kt
...in/kotlin/net.mamoe.mirai/utils/internal/HexComparator.kt
+1
-1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/io/OutputUtils.kt
...commonMain/kotlin/net.mamoe.mirai/utils/io/OutputUtils.kt
+3
-3
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/message/SendImageUtilsJvm.kt
...mMain/kotlin/net/mamoe/mirai/message/SendImageUtilsJvm.kt
+1
-1
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/BotSessionJvm.kt
...c/jvmMain/kotlin/net/mamoe/mirai/network/BotSessionJvm.kt
+1
-1
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/timpc/NetworkDispatcherJvm.kt
...amoe/mirai/network/protocol/timpc/NetworkDispatcherJvm.kt
+1
-1
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/timpc/packet/event/MessagePacket.kt
...irai/network/protocol/timpc/packet/event/MessagePacket.kt
+1
-1
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt
.../jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt
+19
-5
mirai-core/src/jvmTest/kotlin/mirai/test/BadQQFilter.kt
mirai-core/src/jvmTest/kotlin/mirai/test/BadQQFilter.kt
+1
-1
mirai-core/src/jvmTest/kotlin/mirai/test/packetdebugger/PacketDebugger.kt
...vmTest/kotlin/mirai/test/packetdebugger/PacketDebugger.kt
+8
-8
mirai-core/src/jvmTest/kotlin/mirai/test/packetdebugger/PacketDecoder.kt
...jvmTest/kotlin/mirai/test/packetdebugger/PacketDecoder.kt
+3
-3
mirai-debug/src/main/kotlin/test/JaptTest.kt
mirai-debug/src/main/kotlin/test/JaptTest.kt
+1
-1
mirai-demos/mirai-demo-1/src/main/java/demo/subscribe/SubscribeSamples.kt
...i-demo-1/src/main/java/demo/subscribe/SubscribeSamples.kt
+3
-3
mirai-demos/mirai-demo-android/src/main/kotlin/net/mamoe/mirai/demo/MiraiService.kt
...roid/src/main/kotlin/net/mamoe/mirai/demo/MiraiService.kt
+2
-2
mirai-demos/mirai-demo-gentleman/src/main/kotlin/demo/gentleman/Main.kt
...rai-demo-gentleman/src/main/kotlin/demo/gentleman/Main.kt
+10
-7
No files found.
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/BotSession.kt
View file @
0c6e0936
...
...
@@ -8,7 +8,7 @@ import kotlinx.io.core.use
import
kotlinx.io.streams.inputStream
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.message.Image
import
net.mamoe.mirai.network.protocol.tim.packet.SessionKey
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.SessionKey
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
java.io.InputStream
...
...
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/protocol/tim/NetworkDispatcherAndroid.kt
→
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/protocol/tim
pc
/NetworkDispatcherAndroid.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim
package
net.mamoe.mirai.network.protocol.tim
pc
import
kotlinx.coroutines.CoroutineDispatcher
import
kotlinx.coroutines.asCoroutineDispatcher
...
...
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/event/MessagePacket.kt
→
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/network/protocol/tim
pc
/packet/event/MessagePacket.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
net.mamoe.mirai.contact.Contact
import
net.mamoe.mirai.contact.QQ
...
...
mirai-core/src/androidMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsAndroid.kt
View file @
0c6e0936
...
...
@@ -3,12 +3,16 @@ package net.mamoe.mirai.utils
import
io.ktor.client.HttpClient
import
io.ktor.client.engine.cio.CIO
import
io.ktor.util.KtorExperimentalAPI
import
kotlinx.io.core.IoBuffer
import
kotlinx.io.core.readBytes
import
java.io.ByteArrayOutputStream
import
java.io.DataInput
import
java.io.EOFException
import
java.io.InputStream
import
java.net.InetAddress
import
java.security.MessageDigest
import
java.util.zip.CRC32
import
java.util.zip.Inflater
/**
...
...
@@ -74,4 +78,17 @@ actual fun crc32(key: ByteArray): Int = CRC32().apply { update(key) }.value.toIn
/**
* hostname 解析 ipv4
*/
actual
fun
solveIpAddress
(
hostname
:
String
):
String
=
InetAddress
.
getByName
(
hostname
).
hostAddress
\ No newline at end of file
actual
fun
solveIpAddress
(
hostname
:
String
):
String
=
InetAddress
.
getByName
(
hostname
).
hostAddress
actual
fun
ByteArray
.
unzip
():
ByteArray
{
val
inflater
=
Inflater
()
inflater
.
reset
()
val
output
=
ByteArrayOutputStream
()
inflater
.
setInput
(
this
)
val
buffer
=
ByteArray
(
128
)
while
(!
inflater
.
finished
())
{
output
.
write
(
buffer
,
0
,
inflater
.
inflate
(
buffer
))
}
inflater
.
end
()
return
output
.
toByteArray
()
}
\ No newline at end of file
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/Bot.kt
View file @
0c6e0936
...
...
@@ -7,7 +7,7 @@ import kotlinx.coroutines.Deferred
import
kotlinx.coroutines.Job
import
net.mamoe.mirai.contact.*
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
import
net.mamoe.mirai.utils.BotConfiguration
import
net.mamoe.mirai.utils.GroupNotFoundException
import
net.mamoe.mirai.utils.MiraiLogger
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotAddFriend.kt
View file @
0c6e0936
...
...
@@ -4,10 +4,10 @@
package
net.mamoe.mirai
import
net.mamoe.mirai.network.protocol.tim.packet.action.AddFriendPacket
import
net.mamoe.mirai.network.protocol.tim.packet.action.CanAddFriendPacket
import
net.mamoe.mirai.network.protocol.tim.packet.action.CanAddFriendResponse
import
net.mamoe.mirai.network.protocol.tim.packet.action.RequestFriendAdditionKeyPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.AddFriendPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.CanAddFriendPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.CanAddFriendResponse
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.RequestFriendAdditionKeyPacket
import
net.mamoe.mirai.network.sessionKey
import
kotlin.contracts.ExperimentalContracts
import
kotlin.jvm.JvmMultifileClass
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotHelper.kt
View file @
0c6e0936
...
...
@@ -7,10 +7,10 @@ package net.mamoe.mirai
import
net.mamoe.mirai.contact.*
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim.packet.login.requireSuccess
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.requireSuccess
import
net.mamoe.mirai.utils.BotConfiguration
import
net.mamoe.mirai.utils.internal.PositiveNumbers
import
net.mamoe.mirai.utils.internal.coerceAtLeastOrFail
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/BotImpl.kt
View file @
0c6e0936
...
...
@@ -7,13 +7,13 @@ import net.mamoe.mirai.contact.*
import
net.mamoe.mirai.contact.internal.Group
import
net.mamoe.mirai.contact.internal.QQ
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.KnownPacketId
import
net.mamoe.mirai.network.protocol.tim.packet.action.GroupNotFound
import
net.mamoe.mirai.network.protocol.tim.packet.action.GroupPacket
import
net.mamoe.mirai.network.protocol.tim.packet.action.RawGroupInfo
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim.packet.login.isSuccess
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.KnownPacketId
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.GroupNotFound
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.GroupPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.RawGroupInfo
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.isSuccess
import
net.mamoe.mirai.network.qqAccount
import
net.mamoe.mirai.utils.*
import
net.mamoe.mirai.utils.internal.PositiveNumbers
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt
View file @
0c6e0936
...
...
@@ -3,8 +3,8 @@
package
net.mamoe.mirai.contact
import
kotlinx.coroutines.CoroutineScope
import
net.mamoe.mirai.network.protocol.tim.packet.action.GroupInfo
import
net.mamoe.mirai.network.protocol.tim.packet.action.QuitGroupResponse
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.GroupInfo
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.QuitGroupResponse
import
net.mamoe.mirai.utils.MiraiExperimentalAPI
import
net.mamoe.mirai.utils.internal.PositiveNumbers
import
net.mamoe.mirai.utils.internal.coerceAtLeastOrFail
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/QQ.kt
View file @
0c6e0936
...
...
@@ -6,9 +6,9 @@ import kotlinx.coroutines.CoroutineScope
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.contact.data.Profile
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.packet.action.AvatarLink
import
net.mamoe.mirai.network.protocol.tim.packet.action.FriendNameRemark
import
net.mamoe.mirai.network.protocol.tim.packet.action.PreviousNameList
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.AvatarLink
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.FriendNameRemark
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.PreviousNameList
import
net.mamoe.mirai.utils.MiraiExperimentalAPI
/**
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/internal/ContactImpl.kt
View file @
0c6e0936
...
...
@@ -10,9 +10,9 @@ import net.mamoe.mirai.contact.*
import
net.mamoe.mirai.contact.data.Profile
import
net.mamoe.mirai.event.subscribeAlways
import
net.mamoe.mirai.message.MessageChain
import
net.mamoe.mirai.network.protocol.tim.packet.action.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.MemberJoinEventPacket
import
net.mamoe.mirai.network.protocol.tim.packet.event.MemberQuitEvent
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.MemberJoinEventPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.MemberQuitEvent
import
net.mamoe.mirai.network.qqAccount
import
net.mamoe.mirai.network.sessionKey
import
net.mamoe.mirai.qqAccount
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt
View file @
0c6e0936
...
...
@@ -8,9 +8,9 @@ import net.mamoe.mirai.contact.isOperator
import
net.mamoe.mirai.contact.isOwner
import
net.mamoe.mirai.message.Message
import
net.mamoe.mirai.message.any
import
net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
import
net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim.packet.event.MessagePacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.FriendMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.MessagePacket
import
kotlin.contracts.ExperimentalContracts
import
kotlin.contracts.InvocationKind
import
kotlin.contracts.contract
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/PacketEvents.kt
View file @
0c6e0936
...
...
@@ -2,8 +2,8 @@ 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.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
/* Abstract */
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/Image.kt
View file @
0c6e0936
...
...
@@ -4,7 +4,7 @@ package net.mamoe.mirai.message
import
net.mamoe.mirai.contact.Contact
import
net.mamoe.mirai.contact.sendMessage
import
net.mamoe.mirai.network.protocol.tim.packet.action.FriendImagePacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.FriendImagePacket
import
net.mamoe.mirai.utils.ExternalImage
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessageType.kt
View file @
0c6e0936
...
...
@@ -16,6 +16,7 @@ enum class MessageType(val value: UByte) {
* [ImageId.value] 长度为 37 的图片
*/
IMAGE_37
(
0
x06u
),
XML
(
0
x19u
)
;
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/internal/MessageDataInternal.kt
View file @
0c6e0936
...
...
@@ -5,6 +5,7 @@ package net.mamoe.mirai.message.internal
import
kotlinx.io.core.*
import
net.mamoe.mirai.message.*
import
net.mamoe.mirai.utils.io.*
import
net.mamoe.mirai.utils.unzip
internal
fun
IoBuffer
.
parseMessageFace
():
Face
{
//00 01 AF 0B 00 08 00 01 00 04 52 CC F5 D0 FF 00 02 14 F0
...
...
@@ -53,6 +54,40 @@ internal fun IoBuffer.parseMessageImage0x06(): Image {
//return Image("{${readString(length)}}.$suffix")
}
internal
fun
IoBuffer
.
parseMessageXML
():
XMLMessage
{
discardExact
(
1
)
discardExact
(
readUShort
())
discardExact
(
1
)
/*
网易云音乐分享
19
[01 BB]
01
[01 B8] 9A 03 B4 03 0A B1 03 01 78 9C 6D 51 CB 8A 14 31 14 FD 95 21 2B 85 A6 AA D2 F5 EA 34 88 B8 92 41 DD F9 58 88 34 31 95 2A E3 74 25 21 8F 19 A6 87 DE 54 83 C8 AC 1C 74 E1 6E 36 EE 86 01 C1 8D D3 20 7E 4C B5 0E FE 85 37 D5 4E 83 28 59 84 7B EE C9 B9 E7 9E 9C 20 AA 35 9A 22 A6 DA C8 71 C9 B8 74 91 75 C6 33 D7 DA 06 8D 00 97 B5 68 D0 F4 04 51 EF 94 15 0B 8E A6 D0 E6 D0 71 A2 85 02 E7 65 91 25 05 C1 78 84 6A 65 8E A8 A9 6E 18 4E 1D 70 09 DA A4 CE D3 62 5C BE 24 78 4C 38 AD 6B 56 67 39 CB 26 39 A1 09 61 A4 A4 30 C6 1D 6B D0 42 52 99 96 CE D1 72 84 2A 6E 19 00 BF CE BF 6C AE DE 01 A1 E5 8E 06 17 AD B7 82 0D 76 60 BE 0A EA D0 A4 B2 32 4A 54 33 7D D0 CC 24 0D AE 06 54 EB D9 56 17 0F 85 00 63 38 49 32 92 27 93 7C 37 E1 81 58 78 49 F7 EE ED C7 9B AF 97 D7 1F 3E F7 AB 4F 7D 77 D5 77 DF FB EE 02 44 5E FB 56 3F 31 73 20 BE 72 4E 4F E3 78 30 10 E1 22 8D 20 B2 D8 2A D9 C4 38 9D A4 24 4B 49 3A 8E EF 7A CB 8D A8 EE A4 E3 2C 29 8B 34 29 83 F5 F0 E2 2F 0D 6F E6 11 93 71 4E 26 CF 16 4F 1F 03 45 1B 7E 28 F8 D1 BF 8C E3 E6 7E FA B0 05 86 55 DE 30 FE C8 36 FB B0 05 4A 76 C8 4C B0 9B 14 FE 00 7E 98 14 32 A5 F0 6F E8 FA DB D9 CF 8F EF 37 EB B3 5D 94 4E B8 79 88 A8 EF 2E FB 6E DD AF 4E FB D5 F9 DE 2D A6 0E B9 B9 8D 96 CB E0 46 B5 DA 01 E3 F9 8F B7 6F 36 EB 8B 17 FF 65 8E 10 5C C1 4B 14 0E 0E F5 76 85 ED 17 2D 7F 03 2B B9 D5 0A
01
[00 8B]
01
[00 88] 5B E5 88 86 E4 BA AB 5D E3 82 AD E3 82 BA E3 83 8A E3 83 9F 20 28 63 6F 76 65 72 29 0A 4B 69 7A 75 6E 61 20 41 49 2F E4 B8 AD E7 94 B0 E3 83 A4 E3 82 B9 E3 82 BF E3 82 AB 0A 68 74 74 70 3A 2F 2F 6D 75 73 69 63 2E 31 36 33 2E 63 6F 6D 2F 73 6F 6E 67 2F 31 33 38 33 39 34 33 39 33 32 2F 3F 75 73 65 72 69 64 3D 33 32 34 30 37 36 33 30 37 0A E6 9D A5 E8 87 AA 3A 20 E7 BD 91 E6 98 93 E4 BA 91 E9 9F B3 E4 B9 90
19
[00 41]
01
[00 3E] AA 02 3B 08 00 50 03 60 00 68 00 88 01 00 9A 01 2D 08 09 20 CB 50 78 00 A0 01 81 DC 01 C8 01 00 F0 01 00 F8 01 00 90 02 00 98 03 00 A0 03 20 B0 03 00 C0 03 00 D0 03 00 E8 03 00 90 04 00
0E
[00 0E]
01
[00 04] 00 00 00 09
0A
[00 04] 00 00 00 00
12
[00 25]
05 00 04 00 00 00 03 08 00 04 00 00 00 04 01 00
[09] 48 69 6D 31 38 38 6D 6F 65
03 00 01 01 04 00 04 00 00 00 08
*/
return
XMLMessage
(
readBytes
().
unzip
().
encodeToString
())
}
//00 1B filenameLength
// 43 37 46 29 5F 34 32 34 4E 33 55 37 7B 4C 47 36 7D 4F 25 5A 51 58 51 2E 6A 70 67 get suffix
...
...
@@ -147,23 +182,7 @@ internal fun ByteReadPacket.readMessage(): Message? {
*
* 19 00 42 01 00 3F AA 02 3C 08 00 50 03 60 00 68 00 88 01 00 9A 01 2E 08 09 20 BF 50 78 00 A0 01 81 DC 01 C8 01 00 F0 01 00 F8 01 00 90 02 00 98 03 00 A0 03 20 B0 03 00 C0 03 00 D0 03 00 E8 03 00 90 04 80 0B 0E 00 0E 01 00 04 00 00 00 09 0A 00 04 00 00 00 00 12 00 25 05 00 04 00 00 00 01 08 00 04 00 00 00 01 01 00 09 48 69 6D 31 38 38 6D 6F 65 03 00 01 04 04 00 04 00 00 00 10
*/
0
x14
->
{
//长文本的后一部分? 总长度 0x0175=373, body长度=0x016B=363
//14 01 75 01 01 6B 01 78 9C CD 92 4D 4F C2 30 18 C7 EF 7E 8A A6 1E C9 64 83 B1 CD A4 1B E1 4D 19 8A C6 20 11 BC 98 39 3A A8 EE C5 74 1D 20 37 6E 46 0F C6 83 37 8D 31 D1 83 89 51 4F DE F8 38 4C 3E 86 1D 62 3C 7A D4 7F 93 26 7D DA 7F 9F A7 BF A7 28 3F F4 5C D0 C7 34 24 81 AF 43 69 45 84 00 FB 76 D0 21 7E 57 87 11 73 04 0D E6 8D 25 C0 85 BC B0 0B 0E 29 C1 8E 0E 57 FE B9 20 F0 0E 1C E2 E2 2D CB C3 3A D4 A4 D5 72 A9 58 58 13 24 AD A4 0A B2 22 E5 84 42 59 91 85 9C 52 C8 2A 62 46 14 65 59 FD 76 34 C8 88 3B 38 05 CB 66 73 24 7D 82 07 F5 C8 65 A4 1E 76 21 70 5C 8B 73 C9 42 10 62 DA 27 36 36 CB 7C 95 4B CC 14 87 A4 A3 C3 AA B4 CE 82 63 B5 46 54 8D A4 EC F6 20 F4 68 D8 21 C5 ED 7D B5 B9 A1 0D 46 4D 33 E5 8F 86 47 AD DA 6E 73 2F D3 3B 91 2B 55 53 A9 6C B6 76 AC 96 DD 20 38 DB 36 21 30 00 22 0C 7B C0 B5 4E 83 88 F1 9E 40 1E 61 84 B9 D8 00 7F CD F5 37 01 94 5E 54 0A 50 8F 1A 28 CD A7 45 F1 C0 0E DC 80 EA 70 59 13 93 C1 1F 15 DF 3D 7E DC 5C 48 F1 ED FD 6C F2 3C BD BC 8A DF CF E2 F1 2B F8 B9 03 A5 13 10 06 0A 83 88 DA 18 F8 F3 66 CE C6 E7 D3 87 A7 D9 CB DB 74 72 0D 79 86 AF CD E4 30 FF 9F C6 27 23 A2 C1 36 02 00 04 00 00 00 23 0E 00 07 01 00 04 00 00 00 09
discardExact
(
1
)
val
value
=
readUShortLVByteArray
()
println
(
value
.
size
)
println
(
"0x14的未知压缩的data="
+
value
.
toUHexString
())
//todo 未知压缩算法
return
PlainText
(
""
)
//后面似乎还有一节?
//discardExact(7)//02 00 04 00 00 00 23
//return PlainText(value.toUHexString())
}
0
x14
->
sectionData
.
parseMessageXML
()
0
x0E
->
{
null
...
...
@@ -180,7 +199,7 @@ internal fun ByteReadPacket.readMessage(): Message? {
}
}
fun
ByteReadPacket
.
readMessageChain
():
MessageChain
{
internal
fun
ByteReadPacket
.
readMessageChain
():
MessageChain
{
val
chain
=
MessageChain
()
do
{
if
(
this
.
remaining
==
0L
)
{
...
...
@@ -190,10 +209,18 @@ fun ByteReadPacket.readMessageChain(): MessageChain {
return
chain
}
fun
MessageChain
.
toPacket
():
ByteReadPacket
=
buildPacket
{
internal
fun
MessageChain
.
toPacket
():
ByteReadPacket
=
buildPacket
{
this
@
toPacket
.
forEach
{
message
->
writePacket
(
with
(
message
)
{
when
(
this
)
{
is
XMLMessage
->
buildPacket
{
writeUByte
(
MessageType
.
XML
.
value
)
writeShortLVPacket
{
writeByte
(
0
x01
)
//writeUByte()
}
}
is
Face
->
buildPacket
{
writeUByte
(
MessageType
.
FACE
.
value
)
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/BotNetworkHandler.kt
View file @
0c6e0936
...
...
@@ -4,13 +4,13 @@ import kotlinx.coroutines.CancellationException
import
kotlinx.coroutines.CompletableJob
import
kotlinx.coroutines.CoroutineScope
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler
import
net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim.packet.login.HeartbeatPacket
import
net.mamoe.mirai.network.protocol.tim
.packet.login.LoginResul
t
import
net.mamoe.mirai.network.protocol.tim
.packet.login.RequestSKeyPacke
t
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.TemporaryPacketHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.HeartbeatPacket
import
net.mamoe.mirai.network.protocol.tim
pc.packet.login.RequestSKeyPacke
t
import
net.mamoe.mirai.network.protocol.tim
pc.packet.login.LoginResul
t
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.io.PlatformDatagramChannel
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/BotSession.kt
View file @
0c6e0936
...
...
@@ -12,13 +12,13 @@ import net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.message.Image
import
net.mamoe.mirai.message.ImageId0x03
import
net.mamoe.mirai.message.ImageId0x06
import
net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler
import
net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim.packet.SessionKey
import
net.mamoe.mirai.network.protocol.tim.packet.action.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.TemporaryPacketHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.SessionKey
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.*
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.assertUnreachable
import
net.mamoe.mirai.utils.getGTK
...
...
@@ -120,7 +120,7 @@ abstract class BotSessionBase internal constructor(
* }
* }
* ```
* @sample net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
* @sample net.mamoe.mirai.network.protocol.tim
pc
.packet.action.uploadImage
*
* @param checkSequence 是否筛选 `sequenceId`, 即是否筛选发出的包对应的返回包.
* @param P 期待的包
...
...
@@ -191,8 +191,8 @@ internal inline val Bot.sessionKey: SessionKey get() = this.session.sessionKey
internal
suspend
inline
fun
BotSession
.
sendPacket
(
packet
:
OutgoingPacket
)
=
this
.
bot
.
sendPacket
(
packet
)
suspend
inline
fun
BotSession
.
getQQ
(
@PositiveNumbers
number
:
Long
):
QQ
=
this
.
bot
.
getQQ
(
number
)
suspend
inline
fun
BotSession
.
getQQ
(
number
:
UInt
):
QQ
=
this
.
bot
.
getQQ
(
number
)
inline
fun
BotSession
.
getQQ
(
@PositiveNumbers
number
:
Long
):
QQ
=
this
.
bot
.
getQQ
(
number
)
inline
fun
BotSession
.
getQQ
(
number
:
UInt
):
QQ
=
this
.
bot
.
getQQ
(
number
)
suspend
inline
fun
BotSession
.
getGroup
(
id
:
UInt
):
Group
=
this
.
bot
.
getGroup
(
id
)
suspend
inline
fun
BotSession
.
getGroup
(
@PositiveNumbers
id
:
Long
):
Group
=
this
.
bot
.
getGroup
(
id
)
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MuteEvent.kt
deleted
100644 → 0
View file @
20f52987
package
net.mamoe.mirai.network.protocol.tim.packet.event
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/TIMBotNetworkHandler.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/TIMBotNetworkHandler.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim
package
net.mamoe.mirai.network.protocol.tim
pc
import
kotlinx.coroutines.*
import
kotlinx.coroutines.sync.Mutex
...
...
@@ -15,10 +15,10 @@ import net.mamoe.mirai.event.events.PacketSentEvent
import
net.mamoe.mirai.event.events.ServerPacketReceivedEvent
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim.handler.TemporaryPacketHandler
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim.packet.login.*
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.TemporaryPacketHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.*
import
net.mamoe.mirai.qqAccount
import
net.mamoe.mirai.utils.OnlineStatus
import
net.mamoe.mirai.utils.currentBotConfiguration
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/TIMProtocol.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/TIMProtocol.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim
package
net.mamoe.mirai.network.protocol.tim
pc
import
net.mamoe.mirai.utils.io.hexToBytes
import
net.mamoe.mirai.utils.solveIpAddress
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/handler/DataPacketSocketAdapter.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/handler/DataPacketSocketAdapter.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.handler
package
net.mamoe.mirai.network.protocol.tim
pc
.handler
import
kotlinx.io.core.Closeable
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.event.events.ServerPacketReceivedEvent
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.OutgoingPacket
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.io.PlatformDatagramChannel
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/handler/TemporaryPacketHandler.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/handler/TemporaryPacketHandler.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.handler
package
net.mamoe.mirai.network.protocol.tim
pc
.handler
import
kotlinx.coroutines.CompletableDeferred
import
kotlinx.coroutines.withContext
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.OutgoingPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
import
net.mamoe.mirai.network.sendPacket
import
kotlin.coroutines.CoroutineContext
import
kotlin.reflect.KClass
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/Annotations.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/Annotations.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"unused"
)
package
net.mamoe.mirai.network.protocol.tim.packet
package
net.mamoe.mirai.network.protocol.tim
pc
.packet
/**
* 包的最后一次修改时间, 和分析时使用的 TIM 版本
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/Decrypters.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/Decrypters.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim.packet
package
net.mamoe.mirai.network.protocol.tim
pc
.packet
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.IoBuffer
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/OutgoingPacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/OutgoingPacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"unused"
,
"MemberVisibilityCanBePrivate"
)
package
net.mamoe.mirai.network.protocol.tim.packet
package
net.mamoe.mirai.network.protocol.tim
pc
.packet
import
kotlinx.io.core.*
import
kotlinx.serialization.SerializationStrategy
import
kotlinx.serialization.protobuf.ProtoBuf
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.utils.io.encryptAndWrite
import
net.mamoe.mirai.utils.io.hexToBytes
import
net.mamoe.mirai.utils.io.writeQQ
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/Packet.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/Packet.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim.packet
package
net.mamoe.mirai.network.protocol.tim
pc
.packet
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.readBytes
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/PacketFactory.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/PacketFactory.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet
package
net.mamoe.mirai.network.protocol.tim
pc
.packet
import
kotlinx.atomicfu.atomic
import
kotlinx.io.core.ByteReadPacket
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/PacketId.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/PacketId.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet
package
net.mamoe.mirai.network.protocol.tim
pc
.packet
import
net.mamoe.mirai.network.protocol.tim.packet.action.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.EventPacketFactory
import
net.mamoe.mirai.network.protocol.tim.packet.event.FriendOnlineStatusChangedPacket
import
net.mamoe.mirai.network.protocol.tim.packet.login.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.EventPacketFactory
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.FriendOnlineStatusChangedPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.*
import
net.mamoe.mirai.utils.io.toUHexString
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/AddContact.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/AddContact.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.*
import
net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.EventPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.EventPacket
import
net.mamoe.mirai.utils.io.*
import
net.mamoe.mirai.withSession
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/FriendImage.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/FriendImage.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.charsets.Charsets
import
kotlinx.io.core.*
...
...
@@ -9,9 +9,9 @@ import net.mamoe.mirai.message.ImageId
import
net.mamoe.mirai.message.ImageId0x06
import
net.mamoe.mirai.message.requireLength
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.EventPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.EventPacket
import
net.mamoe.mirai.network.qqAccount
import
net.mamoe.mirai.qqAccount
import
net.mamoe.mirai.utils.ExternalImage
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/FriendList.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/FriendList.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.ByteReadPacket
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim.packet.PacketId
import
net.mamoe.mirai.network.protocol.tim.packet.SessionPacketFactory
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketId
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.SessionPacketFactory
// 0001
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/GradeInfo.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/GradeInfo.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.writeFully
import
kotlinx.io.core.writeUByte
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.encryptAndWrite
import
net.mamoe.mirai.utils.io.writeQQ
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/GroupImage.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/GroupImage.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"RUNTIME_ANNOTATION_NOT_SUPPORTED"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.coroutines.withContext
import
kotlinx.io.core.ByteReadPacket
...
...
@@ -14,8 +14,8 @@ import net.mamoe.mirai.message.ImageId
import
net.mamoe.mirai.message.ImageId0x03
import
net.mamoe.mirai.message.requireLength
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.EventPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.EventPacket
import
net.mamoe.mirai.qqAccount
import
net.mamoe.mirai.utils.ExternalImage
import
net.mamoe.mirai.utils.Http
...
...
@@ -113,6 +113,28 @@ internal object GroupImagePacket : SessionPacketFactory<GroupImageResponse>() {
@SerialId
(
2
)
val
unknown4
:
Byte
=
1
,
@SerialId
(
3
)
var
body
:
Body
)
{
/*
"uint64_group_code"
"uint64_dst_uin"
"uint64_fileid"
"bytes_file_md5"
"uint32_url_flag"
"uint32_url_type"
"uint32_req_term"
"uint32_req_platform_type"
"uint32_inner_ip"
"uint32_bu_type"
"bytes_build_ver"
"uint64_file_id"
"uint64_file_size"
"uint32_original_pic"
"uint32_retry_req"
"uint32_file_height"
"uint32_file_width"
"uint32_pic_type"
"uint32_pic_up_timestamp"
"uint32_req_transfer_type"
*/
@Serializable
internal
class
Body
(
@SerialId
(
1
)
val
group
:
Int
,
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/GroupPacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/GroupPacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.*
import
net.mamoe.mirai.contact.*
...
...
@@ -8,8 +8,8 @@ import net.mamoe.mirai.contact.internal.Member
import
net.mamoe.mirai.message.MessageChain
import
net.mamoe.mirai.message.internal.toPacket
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.LockFreeLinkedList
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.io.*
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/HttpAPIAccessor.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/HttpAPIAccessor.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
io.ktor.client.HttpClient
import
io.ktor.client.request.post
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/Image.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/Image.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"unused"
,
"NO_REFLECTION_IN_CLASS_PATH"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
io.ktor.client.request.get
import
kotlinx.io.core.ByteReadPacket
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/Profile.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/Profile.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
io.ktor.util.date.GMTDate
import
kotlinx.io.core.*
import
net.mamoe.mirai.contact.data.Gender
import
net.mamoe.mirai.contact.data.Profile
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.*
inline
class
AvatarLink
(
val
value
:
String
)
:
Packet
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/Remark.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/Remark.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.readUShortLVString
import
net.mamoe.mirai.utils.io.writeQQ
import
net.mamoe.mirai.utils.io.writeZero
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/RequestFriendListPacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/RequestFriendListPacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.ByteReadPacket
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.writeZero
class
FriendList
:
Packet
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/action/SendFriendMessagePacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/action/SendFriendMessagePacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.action
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.action
import
kotlinx.io.core.*
import
net.mamoe.mirai.message.MessageChain
import
net.mamoe.mirai.message.internal.toPacket
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.*
import
net.mamoe.mirai.utils.md5
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/AndroidOnlineStatusChange.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/AndroidOnlineStatusChange.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketVersion
import
net.mamoe.mirai.utils.io.readBoolean
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/ConnectionOccupiedEvent.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/ConnectionOccupiedEvent.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/EventPacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/EventPacket.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
net.mamoe.mirai.event.Subscribable
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
/**
* 事件包. 可被监听.
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/EventPacketFactory.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/EventPacketFactory.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.*
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMBotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.sessionKey
import
net.mamoe.mirai.qqAccount
import
net.mamoe.mirai.utils.io.readIoBuffer
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/FriendAddRequestEventPacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/FriendAddRequestEventPacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
kotlinx.io.core.readUInt
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim.packet.action.AddFriendPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.AddFriendPacket
import
net.mamoe.mirai.network.qqAccount
import
net.mamoe.mirai.utils.io.readUShortLVString
import
net.mamoe.mirai.withSession
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/FriendConversationIniliaze.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/FriendConversationIniliaze.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
kotlinx.io.core.readUInt
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketVersion
data class
FriendConversationInitialize
(
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/FriendOnlineStatusChanged.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/FriendOnlineStatusChanged.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"JoinDeclarationAndAssignment"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
...
...
@@ -8,9 +8,9 @@ import kotlinx.io.core.readUByte
import
kotlinx.io.core.readUInt
import
net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.packet.KnownPacketId
import
net.mamoe.mirai.network.protocol.tim.packet.PacketId
import
net.mamoe.mirai.network.protocol.tim.packet.SessionPacketFactory
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.KnownPacketId
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketId
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.SessionPacketFactory
import
net.mamoe.mirai.utils.OnlineStatus
data class
FriendStatusChanged
(
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/GroupFileUpload.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/GroupFileUpload.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketVersion
import
net.mamoe.mirai.utils.io.debugPrint
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/Ignored.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/Ignored.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
net.mamoe.mirai.Bot
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MemberJoin.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/MemberJoin.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
,
"unused"
,
"MemberVisibilityCanBePrivate"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.readUInt
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MemberKickEvent.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/MemberKickEvent.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.readUByte
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MemberMute.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/MemberMute.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
,
"MemberVisibilityCanBePrivate"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MemberPermission.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/MemberPermission.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
kotlinx.io.core.readUInt
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.protocol.tim.packet.Packet
import
net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Packet
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketVersion
data class
MemberPermissionChangePacket
(
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/MessageEvent.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/MessageEvent.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.String
...
...
@@ -13,8 +13,8 @@ import net.mamoe.mirai.event.events.BotEvent
import
net.mamoe.mirai.getGroup
import
net.mamoe.mirai.message.*
import
net.mamoe.mirai.message.internal.readMessageChain
import
net.mamoe.mirai.network.protocol.tim.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim.packet.action.ImageLink
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketVersion
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.ImageLink
import
net.mamoe.mirai.utils.*
import
net.mamoe.mirai.utils.internal.coerceAtLeastOrFail
import
net.mamoe.mirai.utils.io.printTLVMap
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/timpc/packet/event/MuteEvent.kt
0 → 100644
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.timpc.packet.event
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/PhoneMessage.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/PhoneMessage.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
//来自 Android 给我的电脑发消息, ID 0211, 内容 "你好"
//00 00 00 20 00 05 00 02 00 01 00 06 00 04 00 01 01 01 00 09 00 06 03 E9 20 02 EB 94 00 0A 00 04 01 00 00 00 00 00 00 54 00 00 00 3E 08 12 1A 16 08 07 10 91 04 18 DD F1 92 B7 07 20 83 76 38 DD F1 92 B7 07 50 04 42 21 08 DD F1 92 B7 07 10 DD F1 92 B7 07 18 01 20 07 40 DC 85 96 EE 05 48 DC 85 96 EE 05 50 FA AF FD 18 52 15 0A 06 08 01 10 00 50 01 1A 0B 08 E9 07 10 94 D7 8B 80 02 50 02 08 04 12 1D 08 E9 07 10 94 D7 8B 80 02 18 01 20 01 28 DD F1 92 B7 07 30 DD F1 92 B7 07 48 02 50 01 32 1B 08 80 80 B8 AE B5 02 10 01 18 00 20 01 2A 0C 0A 0A 08 01 12 06 E4 BD A0 E5 A5 BD
\ No newline at end of file
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/QuitGroup.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/QuitGroup.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/event/Unknown.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/event/Unknown.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.readBytes
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/Captcha.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/Captcha.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"unused"
,
"FunctionName"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.*
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.*
internal
object
CaptchaKey
:
DecrypterByteArray
,
DecrypterType
<
CaptchaKey
>
{
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/ChangeOnlineStatusPacket.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/ChangeOnlineStatusPacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_API_USAGE"
,
"EXPERIMENTAL_UNSIGNED_LITERALS"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.writeFully
import
kotlinx.io.core.writeUByte
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.OnlineStatus
import
net.mamoe.mirai.utils.io.encryptAndWrite
import
net.mamoe.mirai.utils.io.writeHex
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/Heartbeat.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/Heartbeat.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.writeFully
import
net.mamoe.mirai.event.Subscribable
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.encryptAndWrite
import
net.mamoe.mirai.utils.io.writeHex
import
net.mamoe.mirai.utils.io.writeQQ
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/LoginResult.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/LoginResult.kt
View file @
0c6e0936
@
file
:
Suppress
(
"unused"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult.SUCCESS
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult.SUCCESS
import
net.mamoe.mirai.utils.BotConfiguration
import
kotlin.contracts.ExperimentalContracts
import
kotlin.contracts.InvocationKind
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/PasswordSubmission.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/PasswordSubmission.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.*
import
net.mamoe.mirai.contact.data.Gender
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.MiraiLogger
import
net.mamoe.mirai.utils.decryptBy
import
net.mamoe.mirai.utils.encryptBy
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/SKey.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/SKey.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
,
"FunctionName"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
kotlinx.io.core.writeFully
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.qqAccount
import
net.mamoe.mirai.utils.io.*
import
net.mamoe.mirai.withSession
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/Session.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/Session.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.*
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.*
import
net.mamoe.mirai.utils.localIpAddress
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim/packet/login/Touch.kt
→
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/network/protocol/tim
pc
/packet/login/Touch.kt
View file @
0c6e0936
@
file
:
Suppress
(
"EXPERIMENTAL_UNSIGNED_LITERALS"
,
"EXPERIMENTAL_API_USAGE"
)
package
net.mamoe.mirai.network.protocol.tim.packet.login
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.login
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
kotlinx.io.core.readBytes
import
kotlinx.io.core.writeFully
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.utils.io.*
internal
object
TouchKey
:
DecrypterByteArray
,
DecrypterType
<
TouchKey
>
{
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/BotConfiguration.kt
View file @
0c6e0936
...
...
@@ -2,7 +2,7 @@ package net.mamoe.mirai.utils
import
kotlinx.io.core.IoBuffer
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.protocol.tim.packet.login.TouchPacket.TouchResponse
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.TouchPacket.TouchResponse
import
kotlin.coroutines.CoroutineContext
import
kotlin.coroutines.coroutineContext
import
kotlin.jvm.JvmStatic
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/ExternalImage.kt
View file @
0c6e0936
...
...
@@ -8,7 +8,7 @@ import net.mamoe.mirai.contact.Contact
import
net.mamoe.mirai.contact.Group
import
net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.message.*
import
net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.uploadImage
import
net.mamoe.mirai.utils.io.toUHexString
@Suppress
(
"FunctionName"
)
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/OnlineStatus.kt
View file @
0c6e0936
...
...
@@ -8,7 +8,7 @@ import kotlin.jvm.JvmStatic
* QQ 在线状态
*
* @author Him188moe
* @see net.mamoe.mirai.network.protocol.tim.packet.login.ChangeOnlineStatusPacket
* @see net.mamoe.mirai.network.protocol.tim
pc
.packet.login.ChangeOnlineStatusPacket
*/
inline
class
OnlineStatus
(
inline
val
id
:
UByte
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/PlatformUtils.kt
View file @
0c6e0936
...
...
@@ -4,6 +4,7 @@ package net.mamoe.mirai.utils
import
io.ktor.client.HttpClient
import
io.ktor.util.date.GMTDate
import
kotlinx.io.core.IoBuffer
/**
* 时间戳
...
...
@@ -21,6 +22,8 @@ expect val deviceName: String
*/
expect
fun
crc32
(
key
:
ByteArray
):
Int
expect
fun
ByteArray
.
unzip
():
ByteArray
/**
* MD5 算法
*
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/TEA.kt
View file @
0c6e0936
...
...
@@ -3,8 +3,8 @@ package net.mamoe.mirai.utils
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.IoBuffer
import
kotlinx.io.pool.useInstance
import
net.mamoe.mirai.network.protocol.tim.packet.Decrypter
import
net.mamoe.mirai.network.protocol.tim.packet.DecrypterByteArray
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.Decrypter
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.DecrypterByteArray
import
net.mamoe.mirai.utils.io.ByteArrayPool
import
net.mamoe.mirai.utils.io.toByteArray
import
net.mamoe.mirai.utils.io.toUHexString
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/internal/HexComparator.kt
View file @
0c6e0936
...
...
@@ -3,7 +3,7 @@
package
net.mamoe.mirai.utils.internal
import
kotlinx.io.core.toByteArray
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.io.hexToBytes
import
net.mamoe.mirai.utils.io.read
...
...
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/io/OutputUtils.kt
View file @
0c6e0936
...
...
@@ -8,9 +8,9 @@ import kotlinx.serialization.SerializationStrategy
import
kotlinx.serialization.protobuf.ProtoBuf
import
net.mamoe.mirai.contact.GroupId
import
net.mamoe.mirai.contact.GroupInternalId
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.packet.DecrypterByteArray
import
net.mamoe.mirai.network.protocol.tim.packet.login.PrivateKey
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.DecrypterByteArray
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.PrivateKey
import
net.mamoe.mirai.utils.*
import
net.mamoe.mirai.utils.internal.coerceAtMostOrFail
import
kotlin.random.Random
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/message/SendImageUtilsJvm.kt
View file @
0c6e0936
...
...
@@ -6,7 +6,7 @@ import kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.withContext
import
kotlinx.io.core.Input
import
net.mamoe.mirai.contact.Contact
import
net.mamoe.mirai.network.protocol.tim.packet.action.OverFileSizeMaxException
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.OverFileSizeMaxException
import
net.mamoe.mirai.utils.sendTo
import
net.mamoe.mirai.utils.toExternalImage
import
net.mamoe.mirai.utils.upload
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/BotSessionJvm.kt
View file @
0c6e0936
...
...
@@ -10,7 +10,7 @@ import kotlinx.io.streams.asOutput
import
kotlinx.io.streams.inputStream
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.message.Image
import
net.mamoe.mirai.network.protocol.tim.packet.SessionKey
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.SessionKey
import
net.mamoe.mirai.utils.ExternalImage
import
net.mamoe.mirai.utils.MiraiInternalAPI
import
net.mamoe.mirai.utils.toExternalImage
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/NetworkDispatcherJvm.kt
→
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim
pc
/NetworkDispatcherJvm.kt
View file @
0c6e0936
package
net.mamoe.mirai.network.protocol.tim
package
net.mamoe.mirai.network.protocol.tim
pc
import
kotlinx.coroutines.CoroutineDispatcher
import
kotlinx.coroutines.asCoroutineDispatcher
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/event/MessagePacket.kt
→
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim
pc
/packet/event/MessagePacket.kt
View file @
0c6e0936
@
file
:
Suppress
(
"unused"
)
package
net.mamoe.mirai.network.protocol.tim.packet.event
package
net.mamoe.mirai.network.protocol.tim
pc
.packet.event
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.withContext
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/PlatformUtilsJvm.kt
View file @
0c6e0936
...
...
@@ -4,17 +4,17 @@ package net.mamoe.mirai.utils
import
io.ktor.client.HttpClient
import
io.ktor.client.engine.cio.CIO
import
kotlinx.io.core.IoBuffer
import
kotlinx.io.core.Output
import
kotlinx.io.core.copyTo
import
kotlinx.io.core.readBytes
import
kotlinx.io.streams.asInput
import
kotlinx.io.streams.asOutput
import
java.io.DataInput
import
java.io.EOFException
import
java.io.InputStream
import
java.io.OutputStream
import
java.io.*
import
java.net.InetAddress
import
java.security.MessageDigest
import
java.util.zip.CRC32
import
java.util.zip.Inflater
actual
val
deviceName
:
String
=
InetAddress
.
getLocalHost
().
hostName
...
...
@@ -54,4 +54,18 @@ actual fun solveIpAddress(hostname: String): String = InetAddress.getByName(host
actual
fun
localIpAddress
():
String
=
InetAddress
.
getLocalHost
().
hostAddress
actual
val
Http
:
HttpClient
get
()
=
HttpClient
(
CIO
)
\ No newline at end of file
actual
val
Http
:
HttpClient
get
()
=
HttpClient
(
CIO
)
actual
fun
ByteArray
.
unzip
():
ByteArray
{
val
inflater
=
Inflater
()
inflater
.
reset
()
val
input
=
this
val
output
=
ByteArrayOutputStream
()
inflater
.
setInput
(
input
)
val
buffer
=
ByteArray
(
128
)
while
(!
inflater
.
finished
())
{
output
.
write
(
buffer
,
0
,
inflater
.
inflate
(
buffer
))
}
inflater
.
end
()
return
output
.
toByteArray
()
}
\ No newline at end of file
mirai-core/src/jvmTest/kotlin/mirai/test/BadQQFilter.kt
View file @
0c6e0936
...
...
@@ -8,7 +8,7 @@ import kotlinx.coroutines.runBlocking
import
kotlinx.coroutines.withContext
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.login
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
import
java.util.*
/**
...
...
mirai-core/src/jvmTest/kotlin/mirai/test/packetdebugger/PacketDebugger.kt
View file @
0c6e0936
...
...
@@ -16,14 +16,14 @@ import mirai.test.packetdebugger.PacketDebugger.sessionKey
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.network.BotNetworkHandler
import
net.mamoe.mirai.network.BotSession
import
net.mamoe.mirai.network.protocol.tim.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim.packet.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.IgnoredEventPacket
import
net.mamoe.mirai.network.protocol.tim.packet.login.CaptchaKey
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim.packet.login.ShareKey
import
net.mamoe.mirai.network.protocol.tim.packet.login.TouchKey
import
net.mamoe.mirai.network.protocol.tim
pc
.TIMProtocol
import
net.mamoe.mirai.network.protocol.tim
pc
.handler.DataPacketSocketAdapter
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.*
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.IgnoredEventPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.CaptchaKey
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.ShareKey
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.TouchKey
import
net.mamoe.mirai.utils.DecryptionFailedException
import
net.mamoe.mirai.utils.decryptBy
import
net.mamoe.mirai.utils.io.*
...
...
mirai-core/src/jvmTest/kotlin/mirai/test/packetdebugger/PacketDecoder.kt
View file @
0c6e0936
...
...
@@ -3,9 +3,9 @@ package mirai.test.packetdebugger
import
kotlinx.io.core.ByteReadPacket
import
kotlinx.io.core.discardExact
import
kotlinx.io.core.readUShort
import
net.mamoe.mirai.network.protocol.tim.packet.PacketId
import
net.mamoe.mirai.network.protocol.tim.packet.login.CaptchaPacket
import
net.mamoe.mirai.network.protocol.tim.packet.matchPacketId
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.PacketId
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.CaptchaPacket
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.matchPacketId
import
kotlin.contracts.ExperimentalContracts
import
kotlin.contracts.InvocationKind
import
kotlin.contracts.contract
...
...
mirai-debug/src/main/kotlin/test/JaptTest.kt
View file @
0c6e0936
package
test
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
@Suppress
(
"RedundantSuspendModifier"
)
suspend
fun
suspendPrintln
(
arg
:
String
)
=
println
(
arg
)
...
...
mirai-demos/mirai-demo-1/src/main/java/demo/subscribe/SubscribeSamples.kt
View file @
0c6e0936
...
...
@@ -11,9 +11,9 @@ import net.mamoe.mirai.contact.QQ
import
net.mamoe.mirai.contact.sendMessage
import
net.mamoe.mirai.event.*
import
net.mamoe.mirai.message.*
import
net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
import
net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
import
net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.action.uploadImage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.FriendMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.GroupMessage
import
net.mamoe.mirai.utils.suspendToExternalImage
import
java.io.File
...
...
mirai-demos/mirai-demo-android/src/main/kotlin/net/mamoe/mirai/demo/MiraiService.kt
View file @
0c6e0936
...
...
@@ -17,8 +17,8 @@ import net.mamoe.mirai.contact.sendMessage
import
net.mamoe.mirai.event.subscribeMessages
import
net.mamoe.mirai.login
import
net.mamoe.mirai.message.Image
import
net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim.packet.login.LoginResult
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.login.LoginResult
import
java.lang.ref.WeakReference
class
MiraiService
:
Service
()
{
...
...
mirai-demos/mirai-demo-gentleman/src/main/kotlin/demo/gentleman/Main.kt
View file @
0c6e0936
...
...
@@ -7,19 +7,16 @@ import kotlinx.coroutines.GlobalScope
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.withContext
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.BotAccount
import
net.mamoe.mirai.addFriend
import
net.mamoe.mirai.alsoLogin
import
net.mamoe.mirai.*
import
net.mamoe.mirai.contact.MemberPermission
import
net.mamoe.mirai.event.Subscribable
import
net.mamoe.mirai.event.subscribeAlways
import
net.mamoe.mirai.event.subscribeGroupMessages
import
net.mamoe.mirai.event.subscribeMessages
import
net.mamoe.mirai.message.*
import
net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
import
net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim.packet.event.ReceiveFriendAddRequestEvent
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.FriendMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.GroupMessage
import
net.mamoe.mirai.network.protocol.tim
pc
.packet.event.ReceiveFriendAddRequestEvent
import
java.io.File
import
java.util.*
import
javax.swing.filechooser.FileSystemView
...
...
@@ -94,6 +91,12 @@ suspend fun main() {
sender
}.
queryProfile
().
toString
().
reply
()
}
"grouplist"
reply
{
//"https://ssl.ptlogin2.qq.com/jump?pt_clientver=5509&pt_src=1&keyindex=9&clientuin=" + bot.qqAccount + "&clientkey=" + com.tick_tock.pctim.utils.Util.byte2HexString(
// user.txprotocol.serviceTicketHttp
//).replace(" ", "").toString() + "&u1=http%3A%2F%2Fqun.qq.com%2Fmember.html%23gid%3D168209441"
}
"xml"
reply
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment