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
45416ee4
Commit
45416ee4
authored
Aug 17, 2019
by
Him188moe
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
88d2fa04
5a757000
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
60 additions
and
21 deletions
+60
-21
README.md
README.md
+1
-1
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
+6
-4
mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
...rc/main/java/net/mamoe/mirai/event/MiraiEventManager.java
+22
-10
mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt
mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt
+7
-6
mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
...i-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
+24
-0
No files found.
README.md
View file @
45416ee4
...
...
@@ -3,7 +3,7 @@
一个以
<b>
TIM QQ协议
</b>
驱动的JAVA(+Kotlin)
<b>
全开源
</b>
QQ机器人服务端核心
<br>
不受由于
<b>
SMARTQQ
</b>
关停的影响
<br>
项目处于快速开发阶段
<br>
由于是学生, 无法每日更新
<br>
由于是学生, 无法每日更新
<
del>
(24岁 是学生
</del><
br>
一切开发旨在学习, 请勿用于非法用途
<br>
<br>
...
...
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
View file @
45416ee4
...
...
@@ -9,6 +9,7 @@ import net.mamoe.mirai.network.Protocol;
import
net.mamoe.mirai.network.Robot
;
import
net.mamoe.mirai.task.MiraiTaskManager
;
import
net.mamoe.mirai.utils.LoggerTextFormat
;
import
net.mamoe.mirai.utils.MiraiLogger
;
import
net.mamoe.mirai.utils.config.MiraiConfig
;
import
net.mamoe.mirai.utils.config.MiraiMapSection
;
import
org.apache.logging.log4j.Logger
;
...
...
@@ -17,7 +18,6 @@ import java.io.File;
import
java.io.IOException
;
import
java.util.Scanner
;
@Log4j2
public
class
MiraiServer
{
@Getter
private
static
MiraiServer
instance
;
...
...
@@ -40,11 +40,11 @@ public class MiraiServer {
@Getter
MiraiTaskManager
taskManager
;
@Getter
MiraiLogger
logger
;
MiraiConfig
setting
;
public
static
Logger
getLogger
()
{
return
log
;
}
protected
MiraiServer
(){
instance
=
this
;
...
...
@@ -60,6 +60,7 @@ public class MiraiServer {
this
.
getEventManager
().
boardcastEvent
(
new
ServerDisableEvent
());
getLogger
().
info
(
LoggerTextFormat
.
SKY_BLUE
+
"Data have been saved"
);
}
}
...
...
@@ -67,6 +68,7 @@ public class MiraiServer {
this
.
parentFolder
=
new
File
(
System
.
getProperty
(
"user.dir"
));
this
.
unix
=
!
System
.
getProperties
().
getProperty
(
"os.name"
).
toUpperCase
().
contains
(
"WINDOWS"
);
this
.
logger
=
MiraiLogger
.
INSTANCE
;
this
.
eventManager
=
MiraiEventManager
.
getInstance
();
this
.
taskManager
=
MiraiTaskManager
.
getInstance
();
...
...
mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
View file @
45416ee4
...
...
@@ -25,49 +25,61 @@ public class MiraiEventManager {
Lock
hooksLock
=
new
ReentrantLock
();
private
Map
<
Class
<?
extends
MiraiEvent
>,
List
<
MiraiEventHook
<?
extends
MiraiEvent
>>>
hooks
=
new
HashMap
<>();
public
<
D
extends
MiraiEvent
>
void
register
Until
(
MiraiEventHook
<
D
>
hook
,
Predicate
<
D
>
toRemove
){
public
<
D
extends
MiraiEvent
>
void
hook
Until
(
MiraiEventHook
<
D
>
hook
,
Predicate
<
D
>
toRemove
){
hooksLock
.
lock
();
hooks
.
putIfAbsent
(
hook
.
getEventClass
(),
new
ArrayList
<>());
hooks
.
get
(
hook
.
getEventClass
()).
add
(
hook
.
setValidUntil
(
toRemove
));
hooksLock
.
unlock
();
}
public
<
D
extends
MiraiEvent
>
void
register
While
(
MiraiEventHook
<
D
>
hook
,
Predicate
<
D
>
toKeep
){
public
<
D
extends
MiraiEvent
>
void
hook
While
(
MiraiEventHook
<
D
>
hook
,
Predicate
<
D
>
toKeep
){
hooksLock
.
lock
();
hooks
.
putIfAbsent
(
hook
.
getEventClass
(),
new
ArrayList
<>());
hooks
.
get
(
hook
.
getEventClass
()).
add
(
hook
.
setValidWhile
(
toKeep
));
hooksLock
.
unlock
();
}
public
<
D
extends
MiraiEvent
>
void
register
Once
(
MiraiEventHook
<
D
>
hook
){
this
.
register
Until
(
hook
,(
a
)
->
true
);
public
<
D
extends
MiraiEvent
>
void
hook
Once
(
MiraiEventHook
<
D
>
hook
){
this
.
hook
Until
(
hook
,(
a
)
->
true
);
}
public
<
D
extends
MiraiEvent
>
void
register
(
MiraiEventHook
<
D
>
hook
){
this
.
register
Until
(
hook
,(
a
)
->
false
);
public
<
D
extends
MiraiEvent
>
void
register
Hook
(
MiraiEventHook
<
D
>
hook
){
this
.
hook
Until
(
hook
,(
a
)
->
false
);
}
/**
* 不推荐onEvent
* 非线程安全
* 不能保证下一个 D event发生时handler就位
* @author NaturalHG Aug27
*/
@Deprecated
public
<
D
extends
MiraiEvent
>
MiraiEventHook
<
D
>
onEvent
(
Class
<
D
>
event
){
MiraiEventHook
<
D
>
hook
=
new
MiraiEventHook
<>(
event
);
this
.
register
(
hook
);
this
.
register
Hook
(
hook
);
return
hook
;
}
@Deprecated
public
<
D
extends
MiraiEvent
>
MiraiEventHook
<
D
>
onEventOnce
(
Class
<
D
>
event
){
MiraiEventHook
<
D
>
hook
=
new
MiraiEventHook
<>(
event
);
this
.
register
Once
(
hook
);
this
.
hook
Once
(
hook
);
return
hook
;
}
@Deprecated
public
<
D
extends
MiraiEvent
>
MiraiEventHook
<
D
>
onEventUntil
(
Class
<
D
>
event
,
Predicate
<
D
>
toRemove
){
MiraiEventHook
<
D
>
hook
=
new
MiraiEventHook
<>(
event
);
this
.
register
Until
(
hook
,
toRemove
);
this
.
hook
Until
(
hook
,
toRemove
);
return
hook
;
}
@Deprecated
public
<
D
extends
MiraiEvent
>
MiraiEventHook
<
D
>
onEventWhile
(
Class
<
D
>
event
,
Predicate
<
D
>
toKeep
){
MiraiEventHook
<
D
>
hook
=
new
MiraiEventHook
<>(
event
);
this
.
register
While
(
hook
,
toKeep
);
this
.
hook
While
(
hook
,
toKeep
);
return
hook
;
}
...
...
mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt
View file @
45416ee4
...
...
@@ -14,6 +14,7 @@ import net.mamoe.mirai.network.packet.Packet
import
net.mamoe.mirai.network.packet.client.Client0825ResponsePacket
import
net.mamoe.mirai.network.packet.server.Server0825Packet
import
net.mamoe.mirai.network.packet.server.ServerPacket
import
net.mamoe.mirai.utils.MiraiLogger
import
java.net.InetSocketAddress
/**
...
...
@@ -22,7 +23,7 @@ import java.net.InetSocketAddress
* @author Him188moe @ Mirai Project
*/
class
Robot
(
val
number
:
Long
)
{
private
lateinit
var
ctx
:
ChannelHandlerContext
;
private
lateinit
var
ctx
:
ChannelHandlerContext
internal
fun
onPacketReceived
(
packet
:
Packet
)
{
if
(
packet
!
is
ServerPacket
)
{
...
...
@@ -56,7 +57,7 @@ class Robot(val number: Long) {
ch
.
pipeline
().
addLast
(
object
:
SimpleChannelInboundHandler
<
ByteArray
>()
{
override
fun
channelRead0
(
ctx
:
ChannelHandlerContext
,
bytes
:
ByteArray
)
{
try
{
this
@Robot
.
ctx
=
ctx
;
this
@Robot
.
ctx
=
ctx
/*val remaining = Reader.read(bytes);
if (Reader.isPacketAvailable()) {
robot.onPacketReceived(Reader.toServerPacket())
...
...
@@ -65,7 +66,7 @@ class Robot(val number: Long) {
}*/
this
@Robot
.
onPacketReceived
(
ServerPacket
.
ofByteArray
(
bytes
))
}
catch
(
e
:
Exception
)
{
Mirai
Server
.
getLogger
()
.
catching
(
e
)
Mirai
Logger
.
catching
(
e
)
}
}
...
...
@@ -74,7 +75,7 @@ class Robot(val number: Long) {
}
override
fun
exceptionCaught
(
ctx
:
ChannelHandlerContext
,
cause
:
Throwable
)
{
Mirai
Server
.
getLogger
()
.
catching
(
cause
)
Mirai
Logger
.
catching
(
cause
)
}
})
}
...
...
@@ -102,10 +103,10 @@ class Robot(val number: Long) {
*/
fun
read
(
bytes
:
ByteArray
):
ByteArray
?
{
checkNotNull
(
this
.
length
)
val
needSize
=
length
!!
-
this
.
bytes
.
size
;
//How many bytes we need
val
needSize
=
length
!!
-
this
.
bytes
.
size
//How many bytes we need
if
(
needSize
==
bytes
.
size
||
needSize
>
bytes
.
size
)
{
this
.
bytes
+=
bytes
return
null
;
return
null
}
//We got more than we need
...
...
mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
0 → 100644
View file @
45416ee4
package
net.mamoe.mirai.utils
import
java.text.SimpleDateFormat
import
java.util.*
/**
* used to replace old logger
*/
object
MiraiLogger
{
fun
info
(
o
:
Any
)
{
this
.
print
(
o
.
toString
())
}
fun
catching
(
e
:
Throwable
){
this
.
print
(
e
.
message
)
this
.
print
(
e
.
localizedMessage
)
this
.
print
(
e
.
cause
.
toString
())
}
private
fun
print
(
value
:
String
?){
val
s
=
SimpleDateFormat
(
"MM-dd HH:mm:ss"
).
format
(
Date
())
System
.
out
.
println
(
LoggerTextFormat
.
BLUE
.
toString
()
+
"[Mirai] $s : $value"
)
}
}
\ No newline at end of file
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