summary refs log tree commit diff
path: root/src/util/plugin/PluginLoader.ts
diff options
context:
space:
mode:
authorTheArcaneBrony <myrainbowdash949@gmail.com>2022-08-13 12:22:26 +0200
committerTheArcaneBrony <myrainbowdash949@gmail.com>2022-09-04 10:48:54 +0200
commit6d17f44f9b16fb78abf8a5689b63c88550b9b1a8 (patch)
tree898248e60883dceac343c93e6b4348ce5d5394bd /src/util/plugin/PluginLoader.ts
parentGit workflow - partial list of Ubuntu dependencies (diff)
downloadserver-6d17f44f9b16fb78abf8a5689b63c88550b9b1a8.tar.xz
Plugins finally load!
Diffstat (limited to 'src/util/plugin/PluginLoader.ts')
-rw-r--r--src/util/plugin/PluginLoader.ts22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/util/plugin/PluginLoader.ts b/src/util/plugin/PluginLoader.ts

index e69cb499..8c140d29 100644 --- a/src/util/plugin/PluginLoader.ts +++ b/src/util/plugin/PluginLoader.ts
@@ -1,11 +1,13 @@ import path from "path"; import fs from "fs"; -import { Plugin, PluginManifest } from "./"; +import { Plugin, PluginLoadedEventArgs, PluginManifest } from "./"; +import { PluginIndex } from "plugins/PluginIndex"; const root = process.env.PLUGIN_LOCATION || "dist/plugins"; let pluginsLoaded = false; export class PluginLoader { + public static plugins: Plugin[] = []; public static loadPlugins() { console.log(`Plugin root directory: ${path.resolve(root)}`); const dirs = fs.readdirSync(root).filter((x) => { @@ -17,6 +19,9 @@ export class PluginLoader { } }); console.log(dirs); + PluginIndex.forEach((x: any)=>{ + console.log(x.onPluginLoaded) + }) dirs.forEach(async (x) => { let modPath = path.resolve(path.join(root, x)); console.log(`Trying to load plugin: ${modPath}`); @@ -24,16 +29,13 @@ export class PluginLoader { console.log( `Plugin info: ${manifest.name} (${manifest.id}), written by ${manifest.authors}, available at ${manifest.repository}` ); - const module_ = require(path.join(modPath, manifest.index)) as Plugin; - try { - await module_.init(); - module_.emit("loaded"); - } catch (error) { - module_.emit("error", error); - } + const module_ = PluginIndex["example-plugin"]; + + module_.pluginPath = modPath; + if(module_.onPluginLoaded) module_.onPluginLoaded({} as PluginLoadedEventArgs); + this.plugins.push(module_); }); - // - //module_.pluginPath = + console.log(`Done loading ${this.plugins.length} plugins!`) } }