Commit 317ac754 authored by liujiahua123123's avatar liujiahua123123

Server

parent 78826c56
...@@ -5,7 +5,11 @@ package net.mamoe.mirai; ...@@ -5,7 +5,11 @@ package net.mamoe.mirai;
* @author Him188moe @ Mirai Project * @author Him188moe @ Mirai Project
*/ */
public final class MiraiMain { public final class MiraiMain {
private static MiraiServer server;
public static void main(String[] args) { public static void main(String[] args) {
server = new MiraiServer();
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
server.shutdown();
}));
} }
} }
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());
}
}
package net.mamoe.mirai.event; package net.mamoe.mirai.event;
import lombok.Getter; import lombok.Getter;
import net.mamoe.mirai.event.events.MiraiEvent;
import java.util.function.Consumer; import java.util.function.Consumer;
......
...@@ -2,11 +2,12 @@ package net.mamoe.mirai.event; ...@@ -2,11 +2,12 @@ package net.mamoe.mirai.event;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import net.mamoe.mirai.event.events.Cancellable;
import net.mamoe.mirai.event.events.MiraiEvent;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -17,7 +18,7 @@ public class MiraiEventManager { ...@@ -17,7 +18,7 @@ public class MiraiEventManager {
private static MiraiEventManager instance; private static MiraiEventManager instance;
static MiraiEventManager getInstance(){ public static MiraiEventManager getInstance(){
if(MiraiEventManager.instance == null){ if(MiraiEventManager.instance == null){
MiraiEventManager.instance = new MiraiEventManager(); MiraiEventManager.instance = new MiraiEventManager();
} }
...@@ -68,7 +69,7 @@ class MiraiEventConsumer<T extends MiraiEvent>{ ...@@ -68,7 +69,7 @@ class MiraiEventConsumer<T extends MiraiEvent>{
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public boolean accept(MiraiEvent event) { 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); hook.getHandler().accept((T) event);
} }
return remove.test((T)event); return remove.test((T)event);
......
package net.mamoe.mirai.event; package net.mamoe.mirai.event.events;
import lombok.Getter; import lombok.Getter;
interface Cancelable { public interface Cancellable {
boolean isCancelled(); boolean isCancelled();
......
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; import net.mamoe.mirai.utils.EventException;
public abstract class MiraiEvent { public abstract class MiraiEvent {
...@@ -25,4 +25,13 @@ public abstract class MiraiEvent { ...@@ -25,4 +25,13 @@ public abstract class MiraiEvent {
this.cancelled = value; this.cancelled = value;
} }
protected String eventName;
public String getEventName() {
if(this.eventName == null){
return this.getClass().getSimpleName();
}
return this.eventName;
}
} }
package net.mamoe.mirai.event.events.server;
import net.mamoe.mirai.event.events.MiraiEvent;
public class ServerDisableEvent extends MiraiEvent {
}
package net.mamoe.mirai.event.events.server;
import net.mamoe.mirai.event.events.MiraiEvent;
public class ServerEnableEvent extends MiraiEvent {
}
package net.mamoe.mirai.task; package net.mamoe.mirai.task;
public class MiraiTaskManager { public class MiraiTaskManager {
private static MiraiTaskManager instance;
public static MiraiTaskManager getInstance(){
if(MiraiTaskManager.instance == null){
MiraiTaskManager.instance = new MiraiTaskManager();
}
return MiraiTaskManager.instance;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment