mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-26 07:20:09 +08:00
Server
This commit is contained in:
parent
78826c5648
commit
317ac754ce
mirai-core/src/main/java/net/mamoe/mirai
@ -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();
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
40
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
Normal file
40
mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java
Normal 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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package net.mamoe.mirai.event;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.mamoe.mirai.event.events.MiraiEvent;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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();
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package net.mamoe.mirai.event.events.server;
|
||||
|
||||
import net.mamoe.mirai.event.events.MiraiEvent;
|
||||
|
||||
public class ServerDisableEvent extends MiraiEvent {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package net.mamoe.mirai.event.events.server;
|
||||
|
||||
import net.mamoe.mirai.event.events.MiraiEvent;
|
||||
|
||||
public class ServerEnableEvent extends MiraiEvent {
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user