diff --git a/README.md b/README.md
index dedd06a11..2e5771483 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
一个以TIM QQ协议驱动的JAVA(+Kotlin) 全开源 QQ机器人服务端核心
不受由于SMARTQQ关停的影响
项目处于快速开发阶段
-由于是学生, 无法每日更新
+由于是学生, 无法每日更新(24岁 是学生
一切开发旨在学习, 请勿用于非法用途
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java b/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
index fc6088492..a69d5b861 100644
--- a/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
+++ b/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
@@ -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();
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java b/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
index ce6a04545..cc7df4418 100644
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/MiraiEventManager.java
@@ -25,49 +25,61 @@ public class MiraiEventManager {
Lock hooksLock = new ReentrantLock();
private Map, List>> hooks = new HashMap<>();
- public void registerUntil(MiraiEventHook hook, Predicate toRemove){
+ public void hookUntil(MiraiEventHook hook, Predicate toRemove){
hooksLock.lock();
hooks.putIfAbsent(hook.getEventClass(),new ArrayList<>());
hooks.get(hook.getEventClass()).add(hook.setValidUntil(toRemove));
hooksLock.unlock();
}
- public void registerWhile(MiraiEventHook hook, Predicate toKeep){
+ public void hookWhile(MiraiEventHook hook, Predicate toKeep){
hooksLock.lock();
hooks.putIfAbsent(hook.getEventClass(),new ArrayList<>());
hooks.get(hook.getEventClass()).add(hook.setValidWhile(toKeep));
hooksLock.unlock();
}
- public void registerOnce(MiraiEventHook hook){
- this.registerUntil(hook,(a) -> true);
+ public void hookOnce(MiraiEventHook hook){
+ this.hookUntil(hook,(a) -> true);
}
- public void register(MiraiEventHook hook){
- this.registerUntil(hook,(a) -> false);
+ public void registerHook(MiraiEventHook hook){
+ this.hookUntil(hook,(a) -> false);
}
+
+ /**
+ * 不推荐onEvent
+ * 非线程安全
+ * 不能保证下一个 D event发生时handler就位
+ * @author NaturalHG Aug27
+ */
+
+ @Deprecated
public MiraiEventHook onEvent(Class event){
MiraiEventHook hook = new MiraiEventHook<>(event);
- this.register(hook);
+ this.registerHook(hook);
return hook;
}
+ @Deprecated
public MiraiEventHook onEventOnce(Class event){
MiraiEventHook hook = new MiraiEventHook<>(event);
- this.registerOnce(hook);
+ this.hookOnce(hook);
return hook;
}
+ @Deprecated
public MiraiEventHook onEventUntil(Class event, Predicate toRemove){
MiraiEventHook hook = new MiraiEventHook<>(event);
- this.registerUntil(hook,toRemove);
+ this.hookUntil(hook,toRemove);
return hook;
}
+ @Deprecated
public MiraiEventHook onEventWhile(Class event, Predicate toKeep){
MiraiEventHook hook = new MiraiEventHook<>(event);
- this.registerWhile(hook,toKeep);
+ this.hookWhile(hook,toKeep);
return hook;
}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt
index 5316183be..5e94799e9 100644
--- a/mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt
+++ b/mirai-core/src/main/java/net/mamoe/mirai/network/Robot.kt
@@ -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() {
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) {
- MiraiServer.getLogger().catching(e)
+ MiraiLogger.catching(e)
}
}
@@ -74,7 +75,7 @@ class Robot(val number: Long) {
}
override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) {
- MiraiServer.getLogger().catching(cause)
+ MiraiLogger.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
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt b/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
new file mode 100644
index 000000000..18ad743a6
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt
@@ -0,0 +1,24 @@
+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