feat: 更新事件注册处理
This commit is contained in:
parent
21808e4266
commit
b189732b80
@ -77,7 +77,7 @@ function isVaildEvent(clz) {
|
|||||||
* @param jsp
|
* @param jsp
|
||||||
* @param event
|
* @param event
|
||||||
* @param exec {function}
|
* @param exec {function}
|
||||||
* @param priority
|
* @param priority [LOWEST,LOW,NORMAL,HIGH,HIGHEST,MONITOR]
|
||||||
* @param ignoreCancel
|
* @param ignoreCancel
|
||||||
*/
|
*/
|
||||||
function listen(jsp, event, exec, priority, ignoreCancel) {
|
function listen(jsp, event, exec, priority, ignoreCancel) {
|
||||||
@ -94,7 +94,8 @@ function listen(jsp, event, exec, priority, ignoreCancel) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (typeof priority === 'boolean') {
|
if (typeof priority === 'boolean') {
|
||||||
ignoreCancel = priority
|
ignoreCancel = priority;
|
||||||
|
priority = 'NORMAL';
|
||||||
}
|
}
|
||||||
priority = priority || 'NORMAL';
|
priority = priority || 'NORMAL';
|
||||||
ignoreCancel = ignoreCancel || false;
|
ignoreCancel = ignoreCancel || false;
|
||||||
@ -113,7 +114,7 @@ function listen(jsp, event, exec, priority, ignoreCancel) {
|
|||||||
listener,
|
listener,
|
||||||
EventPriority[priority],
|
EventPriority[priority],
|
||||||
new EventExecutor({
|
new EventExecutor({
|
||||||
execute: function (listener, event) {
|
execute: function execute(listener, event) {
|
||||||
try {
|
try {
|
||||||
exec(event);
|
exec(event);
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
|
@ -8,6 +8,7 @@ var Thread = Java.type("java.lang.Thread");
|
|||||||
var EventListener = Java.type("org.spongepowered.api.event.EventListener");
|
var EventListener = Java.type("org.spongepowered.api.event.EventListener");
|
||||||
var Modifier = Java.type("java.lang.reflect.Modifier");
|
var Modifier = Java.type("java.lang.reflect.Modifier");
|
||||||
var Event = Java.type("org.spongepowered.api.event.Event");
|
var Event = Java.type("org.spongepowered.api.event.Event");
|
||||||
|
var Order = Java.type("org.spongepowered.api.event.Order");
|
||||||
|
|
||||||
var plugin = require('./server').plugin.self;
|
var plugin = require('./server').plugin.self;
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ function isVaildEvent(clz) {
|
|||||||
* @param jsp
|
* @param jsp
|
||||||
* @param event
|
* @param event
|
||||||
* @param exec {function}
|
* @param exec {function}
|
||||||
* @param priority
|
* @param priority [PRE,AFTER_PRE,FIRST,EARLY,DEFAULT,LATE,LAST,BEFORE_POST,POST]
|
||||||
* @param ignoreCancel
|
* @param ignoreCancel
|
||||||
*/
|
*/
|
||||||
function listen(jsp, event, exec, priority, ignoreCancel) {
|
function listen(jsp, event, exec, priority, ignoreCancel) {
|
||||||
@ -85,15 +86,21 @@ function listen(jsp, event, exec, priority, ignoreCancel) {
|
|||||||
var eventCls = name2Class(event);
|
var eventCls = name2Class(event);
|
||||||
if (typeof priority === 'boolean') {
|
if (typeof priority === 'boolean') {
|
||||||
ignoreCancel = priority
|
ignoreCancel = priority
|
||||||
|
priority = 'DEFAULT'
|
||||||
}
|
}
|
||||||
priority = priority || 'NORMAL';
|
priority = priority || 'DEFAULT';
|
||||||
ignoreCancel = ignoreCancel || false;
|
ignoreCancel = ignoreCancel || false;
|
||||||
var listener = new EventListener({
|
var listener = new EventListener({
|
||||||
handle: function handle(event) {
|
handle: function handle(event) {
|
||||||
exec(event);
|
try {
|
||||||
|
exec(event);
|
||||||
|
} catch (ex) {
|
||||||
|
console.console('§6插件 §b%s §6处理 §d%s §6事件时发生异常 §4%s'.format(name, event.class.simpleName, ex));
|
||||||
|
console.ex(ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Sponge.getEventManager().registerListener(plugin, eventCls, listener)
|
Sponge.getEventManager().registerListener(plugin, eventCls, Order[priority], listener)
|
||||||
// 添加到缓存 用于关闭插件的时候关闭事件
|
// 添加到缓存 用于关闭插件的时候关闭事件
|
||||||
if (!listenerMap[name]) listenerMap[name] = [];
|
if (!listenerMap[name]) listenerMap[name] = [];
|
||||||
var listeners = listenerMap[name];
|
var listeners = listenerMap[name];
|
||||||
|
Loading…
Reference in New Issue
Block a user