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
801d7276
Commit
801d7276
authored
Sep 01, 2019
by
Him188moe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
a7d3e62f
Changes
36
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
132 additions
and
207 deletions
+132
-207
mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt
mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
...rc/main/java/net/mamoe/mirai/event/MiraiEventManager.java
+22
-16
mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt
...rc/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt
+13
-4
mirai-core/src/main/java/net/mamoe/mirai/message/Message.java
...i-core/src/main/java/net/mamoe/mirai/message/Message.java
+3
-0
mirai-core/src/main/java/net/mamoe/mirai/message/MessageKt.kt
...i-core/src/main/java/net/mamoe/mirai/message/MessageKt.kt
+2
-0
mirai-core/src/main/java/net/mamoe/mirai/message/defaults/At.java
...re/src/main/java/net/mamoe/mirai/message/defaults/At.java
+2
-1
mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Face.java
.../src/main/java/net/mamoe/mirai/message/defaults/Face.java
+5
-2
mirai-core/src/main/java/net/mamoe/mirai/message/defaults/Image.java
...src/main/java/net/mamoe/mirai/message/defaults/Image.java
+3
-1
mirai-core/src/main/java/net/mamoe/mirai/message/defaults/MessageChain.java
...n/java/net/mamoe/mirai/message/defaults/MessageChain.java
+3
-2
mirai-core/src/main/java/net/mamoe/mirai/message/defaults/PlainText.java
...main/java/net/mamoe/mirai/message/defaults/PlainText.java
+3
-1
mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt
.../main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt
+1
-2
mirai-core/src/main/java/net/mamoe/mirai/network/packet/AccountInfo.kt
...c/main/java/net/mamoe/mirai/network/packet/AccountInfo.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/ClientPacket.kt
.../main/java/net/mamoe/mirai/network/packet/ClientPacket.kt
+2
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/MessageEvent.kt
.../main/java/net/mamoe/mirai/network/packet/MessageEvent.kt
+2
-2
mirai-core/src/main/java/net/mamoe/mirai/network/packet/SKey.kt
...core/src/main/java/net/mamoe/mirai/network/packet/SKey.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerEvent.kt
...c/main/java/net/mamoe/mirai/network/packet/ServerEvent.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt
.../main/java/net/mamoe/mirai/network/packet/ServerPacket.kt
+3
-3
mirai-core/src/main/java/net/mamoe/mirai/network/packet/Session.kt
...e/src/main/java/net/mamoe/mirai/network/packet/Session.kt
+4
-4
mirai-core/src/main/java/net/mamoe/mirai/network/packet/Touch.kt
...ore/src/main/java/net/mamoe/mirai/network/packet/Touch.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLoginPacket.kt
...net/mamoe/mirai/network/packet/login/ClientLoginPacket.kt
+5
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLoginStatusPacket.kt
...moe/mirai/network/packet/login/ClientLoginStatusPacket.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLoginVerificationCodePacket.kt
...network/packet/login/ClientLoginVerificationCodePacket.kt
+2
-2
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt
...packet/login/ServerLoginResponsePasswordVerifiedPacket.kt
+3
-3
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseResendPacket.kt
...i/network/packet/login/ServerLoginResponseResendPacket.kt
+3
-3
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseVerificationCodePacket.kt
...packet/login/ServerLoginResponseVerificationCodePacket.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/message/ClientSendFriendMessagePacket.kt
...i/network/packet/message/ClientSendFriendMessagePacket.kt
+13
-1
mirai-core/src/main/java/net/mamoe/mirai/network/packet/verification/ServerVerificationCodePacket.kt
...twork/packet/verification/ServerVerificationCodePacket.kt
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/util/DebugLogger.kt
mirai-core/src/main/java/net/mamoe/mirai/util/DebugLogger.kt
+0
-34
mirai-core/src/main/java/net/mamoe/mirai/utils/ClientLoginStatus.java
...rc/main/java/net/mamoe/mirai/utils/ClientLoginStatus.java
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
...i-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
+5
-1
mirai-core/src/main/java/net/mamoe/mirai/utils/TEACryptor.java
...-core/src/main/java/net/mamoe/mirai/utils/TEACryptor.java
+1
-4
mirai-core/src/main/java/net/mamoe/mirai/utils/Tested.kt
mirai-core/src/main/java/net/mamoe/mirai/utils/Tested.kt
+0
-0
mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.java
mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.java
+0
-73
mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.kt
mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.kt
+14
-27
mirai-core/src/main/java/net/mamoe/mirai/utils/config/MiraiConfig.java
...c/main/java/net/mamoe/mirai/utils/config/MiraiConfig.java
+8
-9
mirai-core/src/test/java/PacketTest.kt
mirai-core/src/test/java/PacketTest.kt
+1
-1
No files found.
mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt
View file @
801d7276
package
net.mamoe.mirai.contact
package
net.mamoe.mirai.contact
import
net.mamoe.mirai.message.At
import
net.mamoe.mirai.message.
defaults.
At
/**
/**
* @author Him188moe
* @author Him188moe
...
...
mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
View file @
801d7276
...
@@ -47,14 +47,17 @@ public class MiraiEventManager {
...
@@ -47,14 +47,17 @@ public class MiraiEventManager {
if
(!
hook
.
isMount
())
{
if
(!
hook
.
isMount
())
{
hook
.
setMount
(
true
);
hook
.
setMount
(
true
);
hooksLock
.
writeLock
().
lock
();
hooksLock
.
writeLock
().
lock
();
if
(!
hooks
.
containsKey
(
hook
.
getEventClass
()))
{
try
{
hooks
.
put
(
hook
.
getEventClass
(),
new
LinkedList
<>()
{{
if
(!
hooks
.
containsKey
(
hook
.
getEventClass
()))
{
add
(
hook
);
hooks
.
put
(
hook
.
getEventClass
(),
new
LinkedList
<>()
{{
}});
add
(
hook
);
}
else
{
}});
hooks
.
get
(
hook
.
getEventClass
()).
add
(
hook
);
}
else
{
hooks
.
get
(
hook
.
getEventClass
()).
add
(
hook
);
}
}
finally
{
hooksLock
.
writeLock
().
unlock
();
}
}
hooksLock
.
writeLock
().
unlock
();
}
}
}
}
...
@@ -98,16 +101,19 @@ public class MiraiEventManager {
...
@@ -98,16 +101,19 @@ public class MiraiEventManager {
public
void
broadcastEvent
(
MiraiEvent
event
)
{
public
void
broadcastEvent
(
MiraiEvent
event
)
{
hooksLock
.
readLock
().
lock
();
hooksLock
.
readLock
().
lock
();
if
(
hooks
.
containsKey
(
event
.
getClass
()))
{
try
{
hooks
.
put
(
event
.
getClass
(),
if
(
hooks
.
containsKey
(
event
.
getClass
()))
{
hooks
.
get
(
event
.
getClass
())
hooks
.
put
(
event
.
getClass
(),
.
stream
()
hooks
.
get
(
event
.
getClass
())
.
sorted
(
Comparator
.
comparingInt
(
MiraiEventHook:
:
getPriority
))
.
stream
()
.
filter
(
a
->
!
a
.
accept
(
event
))
.
sorted
(
Comparator
.
comparingInt
(
MiraiEventHook:
:
getPriority
))
.
collect
(
Collectors
.
toList
())
.
filter
(
a
->
!
a
.
accept
(
event
))
);
.
collect
(
Collectors
.
toList
())
);
}
}
finally
{
hooksLock
.
readLock
().
unlock
();
}
}
hooksLock
.
readLock
().
unlock
();
}
}
...
...
mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManagerKt.kt
View file @
801d7276
package
net.mamoe.mirai.event
package
net.mamoe.mirai.event
import
net.mamoe.mirai.event.events.MiraiEvent
import
net.mamoe.mirai.event.events.MiraiEvent
import
net.mamoe.mirai.event.events.robot.RobotLoginSucceedEvent
import
kotlin.reflect.KClass
import
kotlin.reflect.KClass
...
@@ -13,17 +12,27 @@ fun <C : Class<E>, E : MiraiEvent> C.hookOnce(hook: (E) -> Unit) {
...
@@ -13,17 +12,27 @@ fun <C : Class<E>, E : MiraiEvent> C.hookOnce(hook: (E) -> Unit) {
MiraiEventManager
.
getInstance
().
hookOnce
(
MiraiEventHook
<
E
>(
this
,
hook
))
MiraiEventManager
.
getInstance
().
hookOnce
(
MiraiEventHook
<
E
>(
this
,
hook
))
}
}
fun
<
C
:
Class
<
E
>,
E
:
MiraiEvent
>
C
.
hookWhile
(
hook
:
(
E
)
->
Boolean
)
{
MiraiEventManager
.
getInstance
().
hookAlways
(
MiraiEventHookSimple
<
E
>(
this
,
hook
))
}
fun
<
C
:
KClass
<
E
>,
E
:
MiraiEvent
>
C
.
hookAlways
(
hook
:
(
E
)
->
Unit
)
{
fun
<
C
:
KClass
<
E
>,
E
:
MiraiEvent
>
C
.
hookAlways
(
hook
:
(
E
)
->
Unit
)
{
this
.
java
.
hook
Once
(
hook
)
this
.
java
.
hook
Always
(
hook
)
}
}
fun
<
C
:
KClass
<
E
>,
E
:
MiraiEvent
>
C
.
hookOnce
(
hook
:
(
E
)
->
Unit
)
{
fun
<
C
:
KClass
<
E
>,
E
:
MiraiEvent
>
C
.
hookOnce
(
hook
:
(
E
)
->
Unit
)
{
this
.
java
.
hookOnce
(
hook
)
this
.
java
.
hookOnce
(
hook
)
}
}
fun
<
C
:
KClass
<
E
>,
E
:
MiraiEvent
>
C
.
hookWhile
(
hook
:
(
E
)
->
Boolean
)
{
this
.
java
.
hookWhile
(
hook
)
}
fun
main
()
{
private
class
MiraiEventHookSimple
<
E
:
MiraiEvent
>(
clazz
:
Class
<
E
>,
val
hook
:
(
E
)
->
Boolean
)
:
MiraiEventHook
<
E
>(
clazz
)
{
RobotLoginSucceedEvent
::
class
.
hookOnce
{
override
fun
accept
(
event
:
MiraiEvent
?):
Boolean
{
@Suppress
(
"UNCHECKED_CAST"
)
return
hook
.
invoke
(
event
as
E
)
}
}
}
}
\ No newline at end of file
mirai-core/src/main/java/net/mamoe/mirai/message/Message.java
View file @
801d7276
package
net.mamoe.mirai.message
;
package
net.mamoe.mirai.message
;
import
net.mamoe.mirai.contact.QQ
;
import
net.mamoe.mirai.contact.QQ
;
import
net.mamoe.mirai.message.defaults.At
;
import
net.mamoe.mirai.message.defaults.MessageChain
;
import
net.mamoe.mirai.message.defaults.PlainText
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
java.awt.image.BufferedImage
;
import
java.awt.image.BufferedImage
;
...
...
mirai-core/src/main/java/net/mamoe/mirai/message/MessageKt.kt
View file @
801d7276
package
net.mamoe.mirai.message
package
net.mamoe.mirai.message
import
net.mamoe.mirai.message.defaults.PlainText
/**
/**
* 实现使用 '+' 操作符连接 [Message] 与 [Message]
* 实现使用 '+' 操作符连接 [Message] 与 [Message]
*/
*/
...
...
mirai-core/src/main/java/net/mamoe/mirai/message/At.java
→
mirai-core/src/main/java/net/mamoe/mirai/message/
defaults/
At.java
View file @
801d7276
package
net.mamoe.mirai.message
;
package
net.mamoe.mirai.message
.defaults
;
import
net.mamoe.mirai.contact.QQ
;
import
net.mamoe.mirai.contact.QQ
;
import
net.mamoe.mirai.message.Message
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
java.util.Objects
;
import
java.util.Objects
;
...
...
mirai-core/src/main/java/net/mamoe/mirai/message/Face.java
→
mirai-core/src/main/java/net/mamoe/mirai/message/
defaults/
Face.java
View file @
801d7276
package
net.mamoe.mirai.message
;
package
net.mamoe.mirai.message.defaults
;
import
net.mamoe.mirai.message.FaceID
;
import
net.mamoe.mirai.message.Message
;
/**
/**
* @author Him188moe
* @author Him188moe
*/
*/
public
class
Face
extends
Message
{
public
final
class
Face
extends
Message
{
private
final
FaceID
id
;
private
final
FaceID
id
;
public
Face
(
FaceID
id
)
{
public
Face
(
FaceID
id
)
{
...
...
mirai-core/src/main/java/net/mamoe/mirai/message/Image.java
→
mirai-core/src/main/java/net/mamoe/mirai/message/
defaults/
Image.java
View file @
801d7276
package
net.mamoe.mirai.message
;
package
net.mamoe.mirai.message.defaults
;
import
net.mamoe.mirai.message.Message
;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.awt.image.BufferedImage
;
...
...
mirai-core/src/main/java/net/mamoe/mirai/message/MessageChain.java
→
mirai-core/src/main/java/net/mamoe/mirai/message/
defaults/
MessageChain.java
View file @
801d7276
package
net.mamoe.mirai.message
;
package
net.mamoe.mirai.message
.defaults
;
import
net.mamoe.mirai.message.Message
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
...
@@ -12,7 +13,7 @@ import java.util.stream.Collectors;
...
@@ -12,7 +13,7 @@ import java.util.stream.Collectors;
public
final
class
MessageChain
extends
Message
{
public
final
class
MessageChain
extends
Message
{
private
LinkedList
<
Message
>
list
=
new
LinkedList
<>();
private
LinkedList
<
Message
>
list
=
new
LinkedList
<>();
MessageChain
(
@NotNull
Message
head
,
@NotNull
Message
tail
)
{
public
MessageChain
(
@NotNull
Message
head
,
@NotNull
Message
tail
)
{
Objects
.
requireNonNull
(
head
);
Objects
.
requireNonNull
(
head
);
Objects
.
requireNonNull
(
tail
);
Objects
.
requireNonNull
(
tail
);
...
...
mirai-core/src/main/java/net/mamoe/mirai/message/PlainText.java
→
mirai-core/src/main/java/net/mamoe/mirai/message/
defaults/
PlainText.java
View file @
801d7276
package
net.mamoe.mirai.message
;
package
net.mamoe.mirai.message.defaults
;
import
net.mamoe.mirai.message.Message
;
/**
/**
* @author Him188moe
* @author Him188moe
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt
View file @
801d7276
...
@@ -9,8 +9,7 @@ import net.mamoe.mirai.network.packet.message.ClientSendFriendMessagePacket
...
@@ -9,8 +9,7 @@ import net.mamoe.mirai.network.packet.message.ClientSendFriendMessagePacket
import
net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacket
import
net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacket
import
net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacketEncrypted
import
net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacketEncrypted
import
net.mamoe.mirai.task.MiraiThreadPool
import
net.mamoe.mirai.task.MiraiThreadPool
import
net.mamoe.mirai.util.*
import
net.mamoe.mirai.utils.*
import
net.mamoe.mirai.utils.MiraiLogger
import
java.io.ByteArrayInputStream
import
java.io.ByteArrayInputStream
import
java.io.FileOutputStream
import
java.io.FileOutputStream
import
java.net.DatagramPacket
import
java.net.DatagramPacket
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/AccountInfo.kt
View file @
801d7276
package
net.mamoe.mirai.network.packet
package
net.mamoe.mirai.network.packet
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
import
java.io.DataInputStream
import
java.io.DataInputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/ClientPacket.kt
View file @
801d7276
...
@@ -2,7 +2,8 @@ package net.mamoe.mirai.network.packet
...
@@ -2,7 +2,8 @@ package net.mamoe.mirai.network.packet
import
lombok.Getter
import
lombok.Getter
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.util.*
import
net.mamoe.mirai.util.TestedSuccessfully
import
net.mamoe.mirai.utils.*
import
java.io.DataOutputStream
import
java.io.DataOutputStream
import
java.io.IOException
import
java.io.IOException
import
java.net.InetAddress
import
java.net.InetAddress
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/MessageEvent.kt
View file @
801d7276
package
net.mamoe.mirai.network.packet
package
net.mamoe.mirai.network.packet
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
import
net.mamoe.mirai.util.toUHexString
import
net.mamoe.mirai.util
s
.toUHexString
import
java.io.DataInputStream
import
java.io.DataInputStream
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/SKey.kt
View file @
801d7276
package
net.mamoe.mirai.network.packet
package
net.mamoe.mirai.network.packet
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
import
java.io.DataInputStream
import
java.io.DataInputStream
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerEvent.kt
View file @
801d7276
package
net.mamoe.mirai.network.packet
package
net.mamoe.mirai.network.packet
import
net.mamoe.mirai.util.toUHexString
import
net.mamoe.mirai.util
s
.toUHexString
import
java.io.ByteArrayOutputStream
import
java.io.ByteArrayOutputStream
import
java.io.DataInputStream
import
java.io.DataInputStream
import
java.util.zip.GZIPInputStream
import
java.util.zip.GZIPInputStream
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt
View file @
801d7276
...
@@ -2,9 +2,9 @@ package net.mamoe.mirai.network.packet
...
@@ -2,9 +2,9 @@ package net.mamoe.mirai.network.packet
import
net.mamoe.mirai.network.packet.login.*
import
net.mamoe.mirai.network.packet.login.*
import
net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacketEncrypted
import
net.mamoe.mirai.network.packet.verification.ServerVerificationCodePacketEncrypted
import
net.mamoe.mirai.util.getAllDeclaredFields
import
net.mamoe.mirai.util
s
.getAllDeclaredFields
import
net.mamoe.mirai.util.hexToBytes
import
net.mamoe.mirai.util
s
.hexToBytes
import
net.mamoe.mirai.util.toUHexString
import
net.mamoe.mirai.util
s
.toUHexString
import
java.io.DataInputStream
import
java.io.DataInputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/Session.kt
View file @
801d7276
package
net.mamoe.mirai.network.packet
package
net.mamoe.mirai.network.packet
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.util.ByteArrayDataOutputStream
import
net.mamoe.mirai.util
s
.ByteArrayDataOutputStream
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
import
net.mamoe.mirai.util.getRandomKey
import
net.mamoe.mirai.util
s
.getRandomKey
import
net.mamoe.mirai.util.lazyEncode
import
net.mamoe.mirai.util
s
.lazyEncode
import
java.io.DataInputStream
import
java.io.DataInputStream
import
java.net.InetAddress
import
java.net.InetAddress
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/Touch.kt
View file @
801d7276
package
net.mamoe.mirai.network.packet
package
net.mamoe.mirai.network.packet
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.util.*
import
net.mamoe.mirai.util
s
.*
import
java.io.DataInputStream
import
java.io.DataInputStream
import
java.io.IOException
import
java.io.IOException
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLoginPacket.kt
View file @
801d7276
...
@@ -2,7 +2,11 @@ package net.mamoe.mirai.network.packet.login
...
@@ -2,7 +2,11 @@ package net.mamoe.mirai.network.packet.login
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.util.*
import
net.mamoe.mirai.util.TestedSuccessfully
import
net.mamoe.mirai.utils.ByteArrayDataOutputStream
import
net.mamoe.mirai.utils.TEACryptor
import
net.mamoe.mirai.utils.hexToBytes
import
net.mamoe.mirai.utils.toUHexString
import
java.io.DataOutputStream
import
java.io.DataOutputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLoginStatusPacket.kt
View file @
801d7276
...
@@ -2,7 +2,7 @@ package net.mamoe.mirai.network.packet.login
...
@@ -2,7 +2,7 @@ package net.mamoe.mirai.network.packet.login
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.util.ClientLoginStatus
import
net.mamoe.mirai.util
s
.ClientLoginStatus
/**
/**
* @author Him188moe
* @author Him188moe
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ClientLoginVerificationCodePacket.kt
View file @
801d7276
...
@@ -2,8 +2,8 @@ package net.mamoe.mirai.network.packet.login
...
@@ -2,8 +2,8 @@ package net.mamoe.mirai.network.packet.login
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.util.ByteArrayDataOutputStream
import
net.mamoe.mirai.util
s
.ByteArrayDataOutputStream
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
/**
/**
* @author Him188moe
* @author Him188moe
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponsePasswordVerifiedPacket.kt
View file @
801d7276
...
@@ -5,10 +5,10 @@ import net.mamoe.mirai.network.packet.ServerPacket
...
@@ -5,10 +5,10 @@ import net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.network.packet.readNBytes
import
net.mamoe.mirai.network.packet.readNBytes
import
net.mamoe.mirai.network.packet.readVarString
import
net.mamoe.mirai.network.packet.readVarString
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util.TestedSuccessfully
import
net.mamoe.mirai.util.TestedSuccessfully
import
net.mamoe.mirai.util.hexToBytes
import
net.mamoe.mirai.utils.TEACryptor
import
net.mamoe.mirai.util.toUHexString
import
net.mamoe.mirai.utils.hexToBytes
import
net.mamoe.mirai.utils.toUHexString
import
java.io.DataInputStream
import
java.io.DataInputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseResendPacket.kt
View file @
801d7276
...
@@ -4,10 +4,10 @@ import net.mamoe.mirai.network.packet.PacketId
...
@@ -4,10 +4,10 @@ import net.mamoe.mirai.network.packet.PacketId
import
net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.dataInputStream
import
net.mamoe.mirai.network.packet.dataInputStream
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util.TestedSuccessfully
import
net.mamoe.mirai.util.TestedSuccessfully
import
net.mamoe.mirai.util.hexToUBytes
import
net.mamoe.mirai.utils.TEACryptor
import
net.mamoe.mirai.util.toUHexString
import
net.mamoe.mirai.utils.hexToUBytes
import
net.mamoe.mirai.utils.toUHexString
import
java.io.DataInputStream
import
java.io.DataInputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseVerificationCodePacket.kt
View file @
801d7276
...
@@ -3,7 +3,7 @@ package net.mamoe.mirai.network.packet.login
...
@@ -3,7 +3,7 @@ package net.mamoe.mirai.network.packet.login
import
net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.dataInputStream
import
net.mamoe.mirai.network.packet.dataInputStream
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
import
java.io.DataInputStream
import
java.io.DataInputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/packet/message/ClientSendFriendMessagePacket.kt
View file @
801d7276
...
@@ -2,7 +2,8 @@ package net.mamoe.mirai.network.packet.message
...
@@ -2,7 +2,8 @@ package net.mamoe.mirai.network.packet.message
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.network.packet.*
import
net.mamoe.mirai.util.lazyEncode
import
net.mamoe.mirai.utils.lazyEncode
import
net.mamoe.mirai.utils.toUHexString
/**
/**
* @author Him188moe
* @author Him188moe
...
@@ -54,4 +55,15 @@ class ClientSendFriendMessagePacket(
...
@@ -54,4 +55,15 @@ class ClientSendFriendMessagePacket(
}
//todo check
}
//todo check
}
}
}
}
}
fun
main
()
{
println
(
lazyEncode
{
val
bytes
=
"hahaha"
.
toByteArray
()
it
.
writeByte
(
0
x01
)
it
.
writeShort
(
bytes
.
size
)
it
.
writeByte
(
0
x01
)
it
.
writeShort
(
bytes
.
size
-
1
)
it
.
write
(
bytes
)
}.
toUHexString
())
}
}
\ No newline at end of file
mirai-core/src/main/java/net/mamoe/mirai/network/packet/verification/ServerVerificationCodePacket.kt
View file @
801d7276
...
@@ -3,7 +3,7 @@ package net.mamoe.mirai.network.packet.verification
...
@@ -3,7 +3,7 @@ package net.mamoe.mirai.network.packet.verification
import
net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.ServerPacket
import
net.mamoe.mirai.network.packet.dataInputStream
import
net.mamoe.mirai.network.packet.dataInputStream
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.network.packet.goto
import
net.mamoe.mirai.util.TEACryptor
import
net.mamoe.mirai.util
s
.TEACryptor
import
java.io.DataInputStream
import
java.io.DataInputStream
/**
/**
...
...
mirai-core/src/main/java/net/mamoe/mirai/util/DebugLogger.kt
deleted
100644 → 0
View file @
a7d3e62f
package
net.mamoe.mirai.util
import
net.mamoe.mirai.network.packet.ClientPacket
import
net.mamoe.mirai.network.packet.ServerPacket
/**
* @author Him188moe
*/
object
DebugLogger
{
val
buff
=
StringBuilder
()
}
fun
ByteArray
.
encryptionDebugLogging
()
{
DebugLogger
.
buff
.
append
(
"TEA encrypt: "
+
this
.
toUHexString
()).
append
(
"\n"
)
}
fun
ByteArray
.
packetSentDebugLogging
()
{
DebugLogger
.
buff
.
append
(
"packet sent: "
+
this
.
toUHexString
()).
append
(
"\n"
)
}
fun
ByteArray
.
decryptionDebugLogging
()
{
DebugLogger
.
buff
.
append
(
"TEA decrypted: "
+
this
.
toUHexString
()).
append
(
"\n"
)
}
fun
ServerPacket
.
logging
()
{
DebugLogger
.
buff
.
append
(
this
.
toString
()).
append
(
"\n"
)
}
@ExperimentalUnsignedTypes
fun
ClientPacket
.
logging
()
{
DebugLogger
.
buff
.
append
(
this
.
toString
()).
append
(
"\n"
)
}
\ No newline at end of file
mirai-core/src/main/java/net/mamoe/mirai/util/ClientLoginStatus.java
→
mirai-core/src/main/java/net/mamoe/mirai/util
s
/ClientLoginStatus.java
View file @
801d7276
package
net.mamoe.mirai.util
;
package
net.mamoe.mirai.util
s
;
/**
/**
* @author Him188moe
* @author Him188moe
...
...
mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
View file @
801d7276
...
@@ -38,4 +38,8 @@ object MiraiLogger {
...
@@ -38,4 +38,8 @@ object MiraiLogger {
}
}
fun
log
(
any
:
Any
?)
=
MiraiLogger
.
info
(
any
)
fun
Any
.
logInfo
()
=
MiraiLogger
.
info
(
this
)
\ No newline at end of file
fun
Any
.
logDebug
()
=
MiraiLogger
.
debug
(
this
)
fun
Any
.
logError
()
=
MiraiLogger
.
error
(
this
)
\ No newline at end of file
mirai-core/src/main/java/net/mamoe/mirai/util/TEACryptor.java
→
mirai-core/src/main/java/net/mamoe/mirai/util
s
/TEACryptor.java
View file @
801d7276
package
net.mamoe.mirai.util
;
package
net.mamoe.mirai.util
s
;
import
net.mamoe.mirai.network.Protocol
;
import
net.mamoe.mirai.network.Protocol
;
...
@@ -239,13 +239,10 @@ public class TEACryptor {
...
@@ -239,13 +239,10 @@ public class TEACryptor {
}
}
public
byte
[]
encrypt
(
byte
[]
plaintext
)
{
public
byte
[]
encrypt
(
byte
[]
plaintext
)
{
DebugLoggerKt
.
encryptionDebugLogging
(
plaintext
);
//System.out.println("TEA加密, 原文=" + Utils.INSTANCE.toHexString(plaintext, ""));
return
encrypt
(
plaintext
,
0
,
plaintext
.
length
);
return
encrypt
(
plaintext
,
0
,
plaintext
.
length
);
}
}
public
byte
[]
decrypt
(
byte
[]
ciphertext
)
{
public
byte
[]
decrypt
(
byte
[]
ciphertext
)
{
DebugLoggerKt
.
decryptionDebugLogging
(
ciphertext
);
return
decrypt
(
ciphertext
,
0
,
ciphertext
.
length
);
return
decrypt
(
ciphertext
,
0
,
ciphertext
.
length
);
}
}
}
}
\ No newline at end of file
mirai-core/src/main/java/net/mamoe/mirai/util/Tested.kt
→
mirai-core/src/main/java/net/mamoe/mirai/util
s
/Tested.kt
View file @
801d7276
File moved
mirai-core/src/main/java/net/mamoe/mirai/utils/Utils.java
deleted
100644 → 0
View file @
a7d3e62f
package
net.mamoe.mirai.utils
;
import
java.io.*
;
import
java.nio.charset.StandardCharsets
;
public
class
Utils
{
/**
* File supporting from Nukkit
* */
public
static
void
writeFile
(
String
fileName
,
String
content
)
throws
IOException
{
writeFile
(
fileName
,
new
ByteArrayInputStream
(
content
.
getBytes
(
StandardCharsets
.
UTF_8
)));
}
public
static
void
writeFile
(
String
fileName
,
InputStream
content
)
throws
IOException
{
writeFile
(
new
File
(
fileName
),
content
);
}
public
static
void
writeFile
(
File
file
,
String
content
)
throws
IOException
{
writeFile
(
file
,
new
ByteArrayInputStream
(
content
.
getBytes
(
StandardCharsets
.
UTF_8
)));
}
public
static
void
writeFile
(
File
file
,
InputStream
content
)
throws
IOException
{
if
(
content
==
null
)
{
throw
new
IllegalArgumentException
(
"content must not be null"
);
}
if
(!
file
.
exists
())
{
file
.
createNewFile
();
}
try
(
FileOutputStream
stream
=
new
FileOutputStream
(
file
))
{
byte
[]
buffer
=
new
byte
[
1024
];
int
length
;
while
((
length
=
content
.
read
(
buffer
))
!=
-
1
)
{
stream
.
write
(
buffer
,
0
,
length
);
}
}
content
.
close
();
}
public
static
String
readFile
(
File
file
)
throws
IOException
{
if
(!
file
.
exists
()
||
file
.
isDirectory
())
{
throw
new
FileNotFoundException
();
}
return
readFile
(
new
FileInputStream
(
file
));
}
public
static
String
readFile
(
String
filename
)
throws
IOException
{
File
file
=
new
File
(
filename
);
if
(!
file
.
exists
()
||
file
.
isDirectory
())
{
throw
new
FileNotFoundException
();
}
return
readFile
(
new
FileInputStream
(
file
));
}
public
static
String
readFile
(
InputStream
inputStream
)
throws
IOException
{
return
readFile
(
new
InputStreamReader
(
inputStream
,
StandardCharsets
.
UTF_8
));
}
private
static
String
readFile
(
Reader
reader
)
throws
IOException
{
try
(
BufferedReader
br
=
new
BufferedReader
(
reader
))
{
String
temp
;
StringBuilder
stringBuilder
=
new
StringBuilder
();
temp
=
br
.
readLine
();
while
(
temp
!=
null
)
{
if
(
stringBuilder
.
length
()
!=
0
)
{
stringBuilder
.
append
(
"\n"
);
}
stringBuilder
.
append
(
temp
);
temp
=
br
.
readLine
();
}
return
stringBuilder
.
toString
();
}
}
}
mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt
→
mirai-core/src/main/java/net/mamoe/mirai/util
s
/Utils.kt
View file @
801d7276
package
net.mamoe.mirai.util
package
net.mamoe.mirai.util
s
import
net.mamoe.mirai.network.Protocol
import
net.mamoe.mirai.network.Protocol
import
java.io.ByteArrayOutputStream
import
java.io.ByteArrayOutputStream
...
@@ -8,30 +8,15 @@ import java.lang.reflect.Field
...
@@ -8,30 +8,15 @@ import java.lang.reflect.Field
import
java.util.*
import
java.util.*
import
java.util.zip.CRC32
import
java.util.zip.CRC32
/**
fun
ByteArray
.
toHexString
():
String
=
toHexString
(
" "
)
* @author Him188moe
fun
ByteArray
.
toHexString
(
separator
:
String
=
" "
):
String
=
this
.
joinToString
(
separator
)
{
*/
var
ret
=
it
.
toString
(
16
).
toUpperCase
()
object
Utils
{
if
(
ret
.
length
==
1
)
{
fun
toHexString
(
byteArray
:
ByteArray
,
separator
:
String
=
" "
):
String
=
byteArray
.
joinToString
(
separator
)
{
ret
=
"0$ret"
var
ret
=
it
.
toString
(
16
).
toUpperCase
()
if
(
ret
.
length
==
1
)
{
ret
=
"0$ret"
}
return
@
joinToString
ret
}
@ExperimentalUnsignedTypes
fun
toHexString
(
byteArray
:
UByteArray
,
separator
:
String
=
" "
):
String
=
byteArray
.
joinToString
(
separator
)
{
var
ret
=
it
.
toString
(
16
).
toUpperCase
()
if
(
ret
.
length
==
1
)
{
ret
=
"0$ret"
}
return
@
joinToString
ret
}
}
return
@
joinToString
ret
}
}
fun
ByteArray
.
toHexString
():
String
=
toHexString
(
" "
)
fun
ByteArray
.
toHexString
(
separator
:
String
=
" "
):
String
=
Utils
.
toHexString
(
this
,
separator
)
@ExperimentalUnsignedTypes
@ExperimentalUnsignedTypes
fun
ByteArray
.
toUHexString
(
separator
:
String
=
" "
):
String
=
this
.
toUByteArray
().
toUHexString
(
separator
)
fun
ByteArray
.
toUHexString
(
separator
:
String
=
" "
):
String
=
this
.
toUByteArray
().
toUHexString
(
separator
)
...
@@ -39,7 +24,13 @@ fun ByteArray.toUHexString(separator: String = " "): String = this.toUByteArray(
...
@@ -39,7 +24,13 @@ fun ByteArray.toUHexString(separator: String = " "): String = this.toUByteArray(
fun
ByteArray
.
toUHexString
():
String
=
this
.
toUByteArray
().
toUHexString
()
fun
ByteArray
.
toUHexString
():
String
=
this
.
toUByteArray
().
toUHexString
()
@ExperimentalUnsignedTypes
@ExperimentalUnsignedTypes
fun
UByteArray
.
toUHexString
(
separator
:
String
=
" "
):
String
=
Utils
.
toHexString
(
this
,
separator
)
fun
UByteArray
.
toUHexString
(
separator
:
String
=
" "
):
String
=
this
.
joinToString
(
separator
)
{
var
ret
=
it
.
toString
(
16
).
toUpperCase
()
if
(
ret
.
length
==
1
)
{
ret
=
"0$ret"
}
return
@
joinToString
ret
}
@ExperimentalUnsignedTypes
@ExperimentalUnsignedTypes
fun
UByteArray
.
toUHexString
():
String
=
this
.
toUHexString
(
" "
)
fun
UByteArray
.
toUHexString
():
String
=
this
.
toUHexString
(
" "
)
...
@@ -94,10 +85,6 @@ fun getGTK(sKey: String): Int {
...
@@ -94,10 +85,6 @@ fun getGTK(sKey: String): Int {
return
value
return
value
}
}
fun
main
()
{
println
(
getGTK
(
"ABCDEFGEFC"
))
}
fun
getCrc32
(
key
:
ByteArray
):
Int
=
CRC32
().
let
{
it
.
update
(
key
);
it
.
value
.
toInt
()
}
fun
getCrc32
(
key
:
ByteArray
):
Int
=
CRC32
().
let
{
it
.
update
(
key
);
it
.
value
.
toInt
()
}
...
...
mirai-core/src/main/java/net/mamoe/mirai/utils/config/MiraiConfig.java
View file @
801d7276
package
net.mamoe.mirai.utils.config
;
package
net.mamoe.mirai.utils.config
;
import
kotlin.io.FilesKt
;
import
net.mamoe.mirai.MiraiServer
;
import
net.mamoe.mirai.MiraiServer
;
import
net.mamoe.mirai.utils.Utils
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.yaml.snakeyaml.DumperOptions
;
import
org.yaml.snakeyaml.DumperOptions
;
import
org.yaml.snakeyaml.Yaml
;
import
org.yaml.snakeyaml.Yaml
;
import
java.io.ByteArrayInputStream
;
import
java.io.File
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.*
;
import
java.nio.charset.Charset
;
import
java.util.LinkedHashMap
;
import
java.util.Objects
;
/**
/**
* YAML-TYPE CONFIG
* YAML-TYPE CONFIG
...
@@ -35,7 +39,7 @@ public class MiraiConfig extends MiraiConfigSection<Object> {
...
@@ -35,7 +39,7 @@ public class MiraiConfig extends MiraiConfigSection<Object> {
Yaml
yaml
=
new
Yaml
(
dumperOptions
);
Yaml
yaml
=
new
Yaml
(
dumperOptions
);
String
content
=
yaml
.
dump
(
this
.
sortedMap
);
String
content
=
yaml
.
dump
(
this
.
sortedMap
);
try
{
try
{
Utils
.
writeFile
(
this
.
root
,
content
);
new
ByteArrayInputStream
(
content
.
getBytes
()).
transferTo
(
new
FileOutputStream
(
this
.
root
)
);
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
@@ -59,12 +63,7 @@ public class MiraiConfig extends MiraiConfigSection<Object> {
...
@@ -59,12 +63,7 @@ public class MiraiConfig extends MiraiConfigSection<Object> {
DumperOptions
dumperOptions
=
new
DumperOptions
();
DumperOptions
dumperOptions
=
new
DumperOptions
();
dumperOptions
.
setDefaultFlowStyle
(
DumperOptions
.
FlowStyle
.
BLOCK
);
dumperOptions
.
setDefaultFlowStyle
(
DumperOptions
.
FlowStyle
.
BLOCK
);
Yaml
yaml
=
new
Yaml
(
dumperOptions
);
Yaml
yaml
=
new
Yaml
(
dumperOptions
);
try
{
return
yaml
.
loadAs
(
String
.
join
(
"\n"
,
FilesKt
.
readLines
(
file
,
Charset
.
defaultCharset
())),
LinkedHashMap
.
class
);
return
yaml
.
loadAs
(
Utils
.
readFile
(
file
),
LinkedHashMap
.
class
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
new
LinkedHashMap
<>();
}
}
...
...
mirai-core/src/test/java/PacketTest.kt
View file @
801d7276
import
net.mamoe.mirai.network.packet.login.ClientPasswordSubmissionPacket
import
net.mamoe.mirai.network.packet.login.ClientPasswordSubmissionPacket
import
net.mamoe.mirai.util.toUHexString
import
net.mamoe.mirai.util
s
.toUHexString
@ExperimentalUnsignedTypes
@ExperimentalUnsignedTypes
fun
main
(){
fun
main
(){
...
...
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