From ff007fae8f7a42bdfc260c9665b7946553a441e3 Mon Sep 17 00:00:00 2001 From: PMK744 <69542280+PMK744@users.noreply.github.com> Date: Sun, 11 Jul 2021 14:18:44 -0500 Subject: [PATCH] Added plugins loaded in process title --- src/bewss/plugin/pluginManager.ts | 5 +++++ src/bewss/server/serverManager.ts | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/bewss/plugin/pluginManager.ts b/src/bewss/plugin/pluginManager.ts index fd2f24c..5383590 100644 --- a/src/bewss/plugin/pluginManager.ts +++ b/src/bewss/plugin/pluginManager.ts @@ -21,6 +21,7 @@ interface examplePlugin { class pluginManager { private bewss: bewss private plugins = new Map() // path: { config, plugin } + private pluginNames: Array = [] private latestInterface = "https://raw.githubusercontent.com/PMK744/Node-BEWSS/main/src/bewss/%40interface/bewss.i.ts" public root = path.resolve(process.cwd()) public pluginsPath = path.resolve(this.root, './plugins') @@ -123,6 +124,7 @@ class pluginManager { const plugin: examplePlugin = require(entryPoint) const newPlugin: examplePlugin = new plugin(new pluginApi(this.bewss, config, path)) this.info(`Successfully loaded plugin "${config.displayName || path}"`) + this.pluginNames.push(config.displayName || config.name || path) this.plugins.set(path, { config, plugin: newPlugin, @@ -332,6 +334,9 @@ class pluginManager { return true } + getPlugins(): Array { + return this.pluginNames + } private info(...content: unknown[]): void { console.log(`${chalk.gray(moment().format("HH:mm:ss"))} ${chalk.blue("[PluginManager]")} ${chalk.cyan("[Info]")}`, ...content) diff --git a/src/bewss/server/serverManager.ts b/src/bewss/server/serverManager.ts index 06d0a08..773dcfb 100644 --- a/src/bewss/server/serverManager.ts +++ b/src/bewss/server/serverManager.ts @@ -7,6 +7,7 @@ class serverManager extends EventEmitter { private ws: Websocket.Server private server: Websocket private port: number + private inv constructor (bewss: bewss, port: number) { super() @@ -15,11 +16,12 @@ class serverManager extends EventEmitter { } async onEnabled(): Promise { - process.title = 'Minecraft Bedrock Edition - BeWss' + this.startProcessTitle() await this.createServer() } async onDisabled(): Promise { + clearInterval(this.inv) this.ws.close() this.emit('wssclosed') this.bewss.getLogger().info('Websocket server closed.') @@ -56,6 +58,16 @@ class serverManager extends EventEmitter { }) } + private startProcessTitle(): void { + this.inv = setInterval(() => { + const plugins = this.bewss.getPluginManager().getPlugins() + let pluginDisplay = plugins.join(', ') + if (plugins.length == 0) pluginDisplay = 'None' + + process.title = `Minecraft Bedrock Edition - BeWss | Plugins Loaded - ${pluginDisplay}` + }, 10) + } + sendJSON(json: JSON): void { this.server.send(JSON.stringify(json)) }