52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
import Ver from "./components/Version.js"
|
|
import chalk from "chalk"
|
|
import Data from "./components/Data.js"
|
|
import fs from "fs"
|
|
|
|
logger.info(chalk.rgb(253, 235, 255)("----ヾ( ̄▽ ̄)Bye~Bye~----"))
|
|
logger.info(chalk.rgb(134, 142, 204)(`椰奶插件${Ver.ver}初始化~`))
|
|
logger.info(chalk.rgb(253, 235, 255)("-------------------------"))
|
|
|
|
global.ReplyError = class ReplyError extends Error {
|
|
constructor (message) {
|
|
super(message)
|
|
this.name = "ReplyError"
|
|
}
|
|
}
|
|
// 加载监听事件
|
|
const eventsPath = "./plugins/yenai-plugin/apps/events"
|
|
const events = fs.readdirSync(eventsPath)
|
|
.filter(file => file.endsWith(".js"))
|
|
for (const File of events) {
|
|
try {
|
|
logger.debug(`[Yenai-Plugin] 加载监听事件:${File}`)
|
|
await import(`./apps/events/${File}`)
|
|
} catch (e) {
|
|
logger.error(`[Yenai-Plugin] 监听事件错误:${File}`)
|
|
logger.error(e)
|
|
}
|
|
}
|
|
|
|
const appsPath = "./plugins/yenai-plugin/apps"
|
|
const jsFiles = Data.readDirRecursive(appsPath, "js", "events")
|
|
|
|
let ret = jsFiles.map(file => {
|
|
return import(`./apps/${file}`)
|
|
})
|
|
|
|
ret = await Promise.allSettled(ret)
|
|
|
|
let apps = {}
|
|
for (let i in jsFiles) {
|
|
let name = jsFiles[i].replace(".js", "")
|
|
|
|
if (ret[i].status != "fulfilled") {
|
|
logger.error(`载入插件错误:${logger.red(name)}`)
|
|
logger.error(ret[i].reason)
|
|
continue
|
|
}
|
|
apps[name] = ret[i].value[Object.keys(ret[i].value)[0]]
|
|
}
|
|
|
|
export { apps }
|