fix: event execute class type error
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
		@@ -77,7 +77,7 @@ export namespace event {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        name2Class(name: any, event: string) {
 | 
			
		||||
            var eventCls = this.mapEvent[event.toLowerCase()] || this.mapEvent[event.toLowerCase() + 'event'];
 | 
			
		||||
            let eventCls = this.mapEvent[event.toLowerCase()] || this.mapEvent[event.toLowerCase() + 'event'];
 | 
			
		||||
            if (!eventCls) {
 | 
			
		||||
                try {
 | 
			
		||||
                    eventCls = base.getClass(eventCls);
 | 
			
		||||
@@ -94,12 +94,15 @@ export namespace event {
 | 
			
		||||
        execute(name, exec, eventCls) {
 | 
			
		||||
            return (...args: any[]) => {
 | 
			
		||||
                try {
 | 
			
		||||
                    var time = new Date().getTime()
 | 
			
		||||
                    exec(args[args.length - 1]);
 | 
			
		||||
                    var cost = new Date().getTime() - time;
 | 
			
		||||
                    let event = args[args.length - 1];
 | 
			
		||||
                    if (eventCls.isAssignableFrom(event.getClass())) {
 | 
			
		||||
                        let time = Date.now()
 | 
			
		||||
                        exec(event);
 | 
			
		||||
                        let cost = Date.now() - time;
 | 
			
		||||
                        if (cost > 20) {
 | 
			
		||||
                            console.console(`§c注意! §6插件 §b${name} §6处理 §d${this.class2Name(eventCls)} §6事件 §c耗时 §4${cost}ms !`)
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (ex) {
 | 
			
		||||
                    console.console(`§6插件 §b${name} §6处理 §d${this.class2Name(eventCls)} §6事件时发生异常 §4${ex}`);
 | 
			
		||||
                    console.ex(ex);
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@ class MiaoScriptCore {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    disable() {
 | 
			
		||||
        console.log("Disable MiaoScript Engine...")
 | 
			
		||||
        this.pluginManager.disable();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,13 @@ export namespace interfaces {
 | 
			
		||||
        public disable() { }
 | 
			
		||||
    }
 | 
			
		||||
    interface BaseMetadata {
 | 
			
		||||
        /**
 | 
			
		||||
         * 名称 为空则为对象名称
 | 
			
		||||
         */
 | 
			
		||||
        name?: string;
 | 
			
		||||
        /**
 | 
			
		||||
         * 支持的服务器列表 为空则代表所有
 | 
			
		||||
         */
 | 
			
		||||
        servers?: string[];
 | 
			
		||||
    }
 | 
			
		||||
    export interface PluginMetadata extends BaseMetadata {
 | 
			
		||||
@@ -50,19 +56,37 @@ export namespace interfaces {
 | 
			
		||||
        target?: any;
 | 
			
		||||
    }
 | 
			
		||||
    interface ExecMetadata extends BaseMetadata {
 | 
			
		||||
        /**
 | 
			
		||||
         * 执行器
 | 
			
		||||
         */
 | 
			
		||||
        executor?: string;
 | 
			
		||||
    }
 | 
			
		||||
    export interface CommandMetadata extends ExecMetadata {
 | 
			
		||||
        /**
 | 
			
		||||
         * 参数列表
 | 
			
		||||
         */
 | 
			
		||||
        paramtypes?: string[];
 | 
			
		||||
    }
 | 
			
		||||
    export interface TabCompleterMetadata extends ExecMetadata {
 | 
			
		||||
        /**
 | 
			
		||||
         * 参数列表
 | 
			
		||||
         */
 | 
			
		||||
        paramtypes?: string[];
 | 
			
		||||
    }
 | 
			
		||||
    export interface ListenerMetadata extends ExecMetadata {
 | 
			
		||||
    }
 | 
			
		||||
    export interface ConfigMetadata extends BaseMetadata {
 | 
			
		||||
        /**
 | 
			
		||||
         * 配置文件版本号
 | 
			
		||||
         */
 | 
			
		||||
        version?: number;
 | 
			
		||||
        /**
 | 
			
		||||
         * 实体变量名称
 | 
			
		||||
         */
 | 
			
		||||
        variable?: string;
 | 
			
		||||
        /**
 | 
			
		||||
         * 配置文件格式 默认 yml
 | 
			
		||||
         */
 | 
			
		||||
        format?: string;
 | 
			
		||||
    }
 | 
			
		||||
    export type PluginLike = Plugin | string;
 | 
			
		||||
 
 | 
			
		||||
@@ -98,7 +98,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
 | 
			
		||||
        try {
 | 
			
		||||
            if (pl[func]) pl[func].call(pl)
 | 
			
		||||
        } catch (ex) {
 | 
			
		||||
            console.console(`§6插件 §b${pl.description.name} §6执行 §d${func} §6方法时发生错误 §4${ex}`)
 | 
			
		||||
            console.console(`§6Plugin §b${pl.description.name} §6exec §d${func} §6function error §4${ex}`)
 | 
			
		||||
            console.ex(ex)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -146,7 +146,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
 | 
			
		||||
            this.updatePlugin(file)
 | 
			
		||||
            this.createPlugin(file)
 | 
			
		||||
        } catch (ex) {
 | 
			
		||||
            console.console(`§6插件 §b${file.name} §6初始化时发生错误 §4${ex.message}`)
 | 
			
		||||
            console.console(`§6Plugin §b${file.name} §6initialize error §4${ex.message}`)
 | 
			
		||||
            console.ex(ex)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user