Fixed pluginmanager

master
lanxu 2019-11-20 20:49:21 +02:00
parent d386c9d242
commit ed800dbd81
1 changed files with 18 additions and 22 deletions

View File

@ -42,32 +42,28 @@ class PluginManager {
})
}
validateResult (resultPromise) {
return new Promise((resolve) => {
let wrapperPromise = new Promise((resolve) => resolve(resultPromise))
wrapperPromise.then((results) => {
if (!Array.isArray(results)) {
results = [results]
}
async validateResult (resultPromise) {
let results = await resultPromise
let promises = []
results.forEach((result) => {
let to = 'channel'
let message = result
if (typeof result === 'object' && typeof result.to !== 'undefined') {
to = result.to
message = result.message
}
let promises = []
if (!Array.isArray(results)) {
results = [results]
}
promises.push(new Promise({ to, message }))
})
results.forEach((result) => {
let to = 'channel'
let message = result
if (typeof result === 'object' && typeof result.to !== 'undefined') {
to = result.to
message = result.message
}
resolve(promises)
})
promises.push(new Promise((resolve) => resolve({ to, message })))
})
return promises
}
testPlugins (input, publicChat) {
async testPlugins (input, publicChat) {
if (typeof publicChat === 'undefined') {
publicChat = true
}
@ -79,7 +75,7 @@ class PluginManager {
let plugin = this.plugins[i]
if (plugin.test(input)) {
logger.info('* Plugin ' + plugin.name + ' reported hit')
promises.push(this.validateResult(plugin.result(input)))
promises = [...promises, ...await this.validateResult(plugin.result(input))]
}
}
} else {
@ -88,7 +84,7 @@ class PluginManager {
if (plugin.test(input)) {
logger.info('* Plugin ' + plugin.name + ' reported hit')
promises.push(this.validateResult(plugin.result(input)))
promises = [...promises, ...await this.validateResult(plugin.result(input))]
}
}
}