Files
yenai-plugin/index.js
2024-04-06 19:02:02 +08:00

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 }