@@ -128,19 +128,23 @@ export class MiaoScriptConsole implements Console {
 | 
				
			|||||||
            lineNumber
 | 
					            lineNumber
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    stack(ex: Error): string[] {
 | 
					    stack(ex: Error, color: boolean = true): string[] {
 | 
				
			||||||
        let stack = ex.getStackTrace();
 | 
					        let stack = ex.getStackTrace();
 | 
				
			||||||
        let cache = ['§c' + ex];
 | 
					        let cache = [(color ? '§c' : '') + ex];
 | 
				
			||||||
        //@ts-ignore
 | 
					        //@ts-ignore
 | 
				
			||||||
        if (stack.class) {
 | 
					        if (stack.class) {
 | 
				
			||||||
            stack = Arrays.asList(stack)
 | 
					            stack = Arrays.asList(stack)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        stack.forEach(trace => {
 | 
					        stack.forEach(trace => {
 | 
				
			||||||
            if (!trace.fileName || trace.fileName.startsWith('jar:file:')) { return }
 | 
					            if (!trace.fileName || trace.fileName.startsWith('jar:file:') || trace.fileName.startsWith('file:')) { return }
 | 
				
			||||||
            if (trace.className.startsWith('<')) {
 | 
					            if (trace.className.startsWith('<')) {
 | 
				
			||||||
                let { fileName, lineNumber } = this.readSourceMap(trace.fileName, trace.lineNumber)
 | 
					                let { fileName, lineNumber } = this.readSourceMap(trace.fileName, trace.lineNumber)
 | 
				
			||||||
                if (fileName.startsWith(root)) { fileName = fileName.split(root)[1] }
 | 
					                if (fileName.startsWith(root)) { fileName = fileName.split(root)[1] }
 | 
				
			||||||
 | 
					                if (color) {
 | 
				
			||||||
                    cache.push(`    §e->§c ${fileName}:${lineNumber} => §4${trace.methodName}`)
 | 
					                    cache.push(`    §e->§c ${fileName}:${lineNumber} => §4${trace.methodName}`)
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    cache.push(`    -> ${fileName}:${lineNumber} => ${trace.methodName}`)
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                let className = trace.className;
 | 
					                let className = trace.className;
 | 
				
			||||||
                var fileName = trace.fileName as string;
 | 
					                var fileName = trace.fileName as string;
 | 
				
			||||||
@@ -155,7 +159,11 @@ export class MiaoScriptConsole implements Console {
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                if (color) {
 | 
				
			||||||
                    cache.push(`    §e->§c ${className}.${trace.methodName}(§4${fileName}:${lineNumber}§c)`);
 | 
					                    cache.push(`    §e->§c ${className}.${trace.methodName}(§4${fileName}:${lineNumber}§c)`);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    cache.push(`    -> ${className}.${trace.methodName}(${fileName}:${lineNumber})`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        return cache;
 | 
					        return cache;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,8 +32,22 @@ function mcColor2ANSI(str: string) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export class SpringConsole extends MiaoScriptConsole {
 | 
					export class SpringConsole extends MiaoScriptConsole {
 | 
				
			||||||
 | 
					    error(...args: any[]) {
 | 
				
			||||||
 | 
					        this.logger.error(args.join(' '))
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    sender(sender: any, ...args: any[]) {
 | 
					    sender(sender: any, ...args: any[]) {
 | 
				
			||||||
        this.console(args.join(' '))
 | 
					        sender = sender || {
 | 
				
			||||||
 | 
					            sendMessage: (message: string) => console.console(message)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (!sender.sendMessage) {
 | 
				
			||||||
 | 
					            this.error('第一个参数未实现 sendMessage 无法发送消息!')
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (Object.prototype.toString.call(args[0]) === '[object Array]') {
 | 
				
			||||||
 | 
					            args[0].forEach(line => sender.sendMessage(this.prefix + line))
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            sender.sendMessage(this.prefix + args.join(' '));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    console(...args: string[]): void {
 | 
					    console(...args: string[]): void {
 | 
				
			||||||
        this.logger.info(mcColor2ANSI(args.join(' ') + '§r'))
 | 
					        this.logger.info(mcColor2ANSI(args.join(' ') + '§r'))
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user