fix: 修复事件执行器错误 完善事件系统

This commit is contained in:
coding
2018-01-04 16:54:00 +00:00
parent 10f5448259
commit 443a7d6b1d
4 changed files with 19 additions and 25 deletions

View File

@ -24,21 +24,14 @@ function isVaildEvent(clz) {
!Modifier.isAbstract(clz.getModifiers());
}
function register(eventCls, priority, ignoreCancel) {
function register(eventCls, exec, priority, ignoreCancel) {
var listener = new Listener({});
MServer.getPluginManager().registerEvent(
eventCls,
listener,
EventPriority[priority],
new EventExecutor({
execute: function execute(listener, 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);
}
}
execute: exec
}),
this.plugin,
ignoreCancel);

View File

@ -35,16 +35,9 @@ function class2Name(clazz) {
return clazz.name.substring(clazz.name.lastIndexOf(".") + 1).replace(/\$/g, '.').toLowerCase();
}
function register(eventCls, priority, ignoreCancel) {
function register(eventCls, exec, priority, ignoreCancel) {
var listener = new EventListener({
handle: function handle(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);
}
}
handle: exec
});
MServer.getEventManager().registerListener(this.plugin, eventCls, Order[priorityMap[priority]], listener);
return listener;