1
0
mirror of https://github.com/mamoe/mirai.git synced 2025-03-26 07:20:09 +08:00
This commit is contained in:
liujiahua123123 2019-08-08 23:03:10 +08:00
parent 78826c5648
commit 317ac754ce
9 changed files with 87 additions and 8 deletions

View File

@ -5,7 +5,11 @@ package net.mamoe.mirai;
* @author Him188moe @ Mirai Project
*/
public final class MiraiMain {
private static MiraiServer server;
public static void main(String[] args) {
server = new MiraiServer();
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
server.shutdown();
}));
}
}

View File

@ -0,0 +1,40 @@
package net.mamoe.mirai;
import lombok.Getter;
import net.mamoe.mirai.event.MiraiEventManager;
import net.mamoe.mirai.event.events.MiraiEvent;
import net.mamoe.mirai.event.events.server.ServerDisableEvent;
import net.mamoe.mirai.event.events.server.ServerEnableEvent;
import net.mamoe.mirai.task.MiraiTaskManager;
public class MiraiServer {
@Getter
private static MiraiServer instance;
protected MiraiServer(){
instance = this;
this.onLoad();
}
protected void shutdown(){
this.getEventManager().boardcastEvent(new ServerDisableEvent());
}
@Getter
MiraiEventManager eventManager;
@Getter
MiraiTaskManager taskManager;
private void onLoad(){
this.eventManager = MiraiEventManager.getInstance();
this.taskManager = MiraiTaskManager.getInstance();
this.eventManager.boardcastEvent(new ServerEnableEvent());
}
}

View File

@ -1,6 +1,7 @@
package net.mamoe.mirai.event;
import lombok.Getter;
import net.mamoe.mirai.event.events.MiraiEvent;
import java.util.function.Consumer;

View File

@ -2,11 +2,12 @@ package net.mamoe.mirai.event;
import lombok.AllArgsConstructor;
import lombok.Data;
import net.mamoe.mirai.event.events.Cancellable;
import net.mamoe.mirai.event.events.MiraiEvent;
import java.util.*;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@ -17,7 +18,7 @@ public class MiraiEventManager {
private static MiraiEventManager instance;
static MiraiEventManager getInstance(){
public static MiraiEventManager getInstance(){
if(MiraiEventManager.instance == null){
MiraiEventManager.instance = new MiraiEventManager();
}
@ -68,7 +69,7 @@ class MiraiEventConsumer<T extends MiraiEvent>{
@SuppressWarnings("unchecked")
public boolean accept(MiraiEvent event) {
if(!(event instanceof Cancelable && event.isCancelled() && hook.getPreferences().isIgnoreCanceled())){
if(!(event instanceof Cancellable && event.isCancelled() && hook.getPreferences().isIgnoreCanceled())){
hook.getHandler().accept((T) event);
}
return remove.test((T)event);

View File

@ -1,8 +1,8 @@
package net.mamoe.mirai.event;
package net.mamoe.mirai.event.events;
import lombok.Getter;
interface Cancelable {
public interface Cancellable {
boolean isCancelled();

View File

@ -1,6 +1,6 @@
package net.mamoe.mirai.event;
package net.mamoe.mirai.event.events;
import net.mamoe.jpre.event.Cancellable;
import net.mamoe.mirai.event.events.Cancellable;
import net.mamoe.mirai.utils.EventException;
public abstract class MiraiEvent {
@ -25,4 +25,13 @@ public abstract class MiraiEvent {
this.cancelled = value;
}
protected String eventName;
public String getEventName() {
if(this.eventName == null){
return this.getClass().getSimpleName();
}
return this.eventName;
}
}

View File

@ -0,0 +1,6 @@
package net.mamoe.mirai.event.events.server;
import net.mamoe.mirai.event.events.MiraiEvent;
public class ServerDisableEvent extends MiraiEvent {
}

View File

@ -0,0 +1,7 @@
package net.mamoe.mirai.event.events.server;
import net.mamoe.mirai.event.events.MiraiEvent;
public class ServerEnableEvent extends MiraiEvent {
}

View File

@ -1,4 +1,15 @@
package net.mamoe.mirai.task;
public class MiraiTaskManager {
private static MiraiTaskManager instance;
public static MiraiTaskManager getInstance(){
if(MiraiTaskManager.instance == null){
MiraiTaskManager.instance = new MiraiTaskManager();
}
return MiraiTaskManager.instance;
}
}