feat: support spring
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
parent
dd28d9fae5
commit
3a045bd335
@ -37,7 +37,7 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
private pluginFolder: string
|
||||
|
||||
private token: string
|
||||
private pipeline: any
|
||||
private instance: any
|
||||
private socketIOServer: SocketIOServer
|
||||
private rootLogger: any
|
||||
private appender: any
|
||||
@ -49,7 +49,7 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
load() {
|
||||
if (this.secret.token) {
|
||||
this.token = this.secret.token
|
||||
this.logger.console(`§4已从配置文件加载永久Token 请注意服务器安全!`)
|
||||
this.logger.console(`§c已从配置文件加载永久Token §4请注意服务器安全!`)
|
||||
} else {
|
||||
this.token = Java.type('java.util.UUID').randomUUID().toString()
|
||||
this.logger.console(`§6已生成随机Token: §3${this.token} §c重启后或重新生成后失效!`)
|
||||
@ -98,14 +98,17 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
enable() {
|
||||
let count = 0
|
||||
let wait = this.task.create(() => {
|
||||
this.pipeline = this.server.getNettyPipeline()
|
||||
if (this.pipeline) {
|
||||
wait.cancel()
|
||||
this.instance = this.server.getNettyPipeline()
|
||||
if (this.instance) {
|
||||
wait?.cancel()
|
||||
this.createSocketIOServer()
|
||||
this.startSocketIOServer()
|
||||
}
|
||||
if (count > 30) { wait.cancel() }
|
||||
count++
|
||||
if (count++ > 30) {
|
||||
wait?.cancel()
|
||||
this.logger.console('§cNetty通道注入失败 §4所有功能将无法使用!')
|
||||
return
|
||||
}
|
||||
}).later(20).timer(40).submit()
|
||||
this.rootLogger = this.server.getRootLogger()
|
||||
}
|
||||
@ -125,7 +128,7 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
}
|
||||
|
||||
@enable({ servers: [constants.ServerType.Bungee] })
|
||||
addJavaLoggerForward() {
|
||||
addLoggerForward() {
|
||||
if (this.rootLogger) {
|
||||
let AbstractHandler = Java.type('java.util.logging.Handler')
|
||||
let ProxyHandler = Java.extend(AbstractHandler, {
|
||||
@ -138,6 +141,20 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
@enable({ servers: [constants.ServerType.Spring] })
|
||||
addLogbackForward() {
|
||||
if (this.rootLogger) {
|
||||
let AppenderBase = Java.type('ch.qos.logback.core.AppenderBase')
|
||||
let ProxyAppender = Java.extend(AppenderBase, {
|
||||
append: (logEvent) => global.eventCenter.emit('log', logEvent.getFormattedMessage())
|
||||
})
|
||||
this.appender = new ProxyAppender()
|
||||
this.appender.setName("NashornProxyAppender")
|
||||
this.appender.setContext(this.rootLogger.getLoggerContext())
|
||||
this.rootLogger.addAppender(this.appender)
|
||||
}
|
||||
}
|
||||
|
||||
disable() {
|
||||
if (this.socketIOServer) {
|
||||
this.socketIOServer.close()
|
||||
@ -159,7 +176,7 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
}
|
||||
|
||||
@disable({ servers: [constants.ServerType.Bungee] })
|
||||
removeJavaLoggerForward() {
|
||||
removeLoggerForward() {
|
||||
try {
|
||||
this.rootLogger.removeHandler(this.handler)
|
||||
} catch (error) {
|
||||
@ -167,8 +184,17 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
@disable({ servers: [constants.ServerType.Spring] })
|
||||
removeLogbackForward() {
|
||||
try {
|
||||
this.rootLogger.detachAppender("NashornProxyAppender")
|
||||
} catch (error) {
|
||||
console.ex(error)
|
||||
}
|
||||
}
|
||||
|
||||
createSocketIOServer() {
|
||||
this.socketIOServer = io(this.pipeline, {
|
||||
this.socketIOServer = io(this.instance, {
|
||||
path: '/ws',
|
||||
root: fs.concat(root, 'wwwroot')
|
||||
})
|
||||
@ -224,6 +250,13 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
fn('§6插件 §a' + name + ' §4更新异常 错误: ' + error)
|
||||
}
|
||||
})
|
||||
client.on('ls', (file: string, fn) => {
|
||||
let dir = fs.file(file);
|
||||
if (!dir.isDirectory()) {
|
||||
return fn(undefined, `${file} 不是一个目录!`)
|
||||
}
|
||||
fn(fs.list(dir))
|
||||
})
|
||||
client.on('error', (error) => {
|
||||
this.logger.console(`§6客户端 §b${client.id} §c触发异常: ${error}`)
|
||||
this.logger.error(error)
|
||||
@ -232,7 +265,6 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
this.logger.console(`§6客户端 §b${client.id} §c断开连接...`)
|
||||
})
|
||||
})
|
||||
this.logger.info('Netty Channel Pipeline Inject MiaoDetectHandler Successful!')
|
||||
}
|
||||
|
||||
private runCode(code: string, namespace: any, client: any) {
|
||||
@ -243,7 +275,7 @@ export class MiaoConsole extends interfaces.Plugin {
|
||||
tempconcent += text + "\\n"
|
||||
}
|
||||
var result = eval(${JSON.stringify(code)});
|
||||
return tempconcent + result
|
||||
return tempconcent + '§a返回结果: §r'+ result
|
||||
`)
|
||||
return this.task.callSyncMethod(() => tfunc.apply(this, [namespace, client])) + ''
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user