Commit bbdcf41c authored by nanahira's avatar nanahira

rework

parent 65a5a863
import { App, Session } from 'koishi';
import * as koishiPluginOnebot from '@koishijs/plugin-adapter-onebot';
import { App, Plugin, Session } from 'koishi';
import koishiPluginOnebot, { BotConfig } from '@koishijs/plugin-adapter-onebot';
import * as koishiPluginVerifier from '@koishijs/plugin-verifier';
import * as targetPlugin from './plugin';
import { Adapter } from 'koishi';
import { AdapterConfig } from '@koishijs/plugin-adapter-onebot/lib/utils';
import targetPlugin from './plugin';
import yaml from 'yaml';
import { promises as fs } from 'fs';
const app = new App({
prefix: process.env.COMMAND_PREFIX || '.',
});
type ConfigFromPlugin<P> = P extends Plugin<infer C> ? C : never;
app.plugin(koishiPluginOnebot, {
interface Config {
adapter: Adapter.PluginConfig<AdapterConfig, BotConfig>;
koishiOptions: App.Config;
commandPrefix: string;
adminIds: string[];
app: any;
}
const defaultConfig: Config = {
adapter: {
bots: [
{
protocol: 'ws',
......@@ -16,18 +27,34 @@ app.plugin(koishiPluginOnebot, {
token: process.env.ONEBOT_TOKEN,
},
],
});
},
koishiOptions: {},
commandPrefix: process.env.COMMAND_PREFIX || '.',
adminIds: process.env.ADMIN_ID ? process.env.ADMIN_ID.split(',') : [],
app: process.env.APP_CONFIG ? JSON.parse(process.env.APP_CONFIG) : undefined,
};
async function main() {
const config: Config = {
...defaultConfig,
...yaml.parse(await fs.readFile('./config.yaml', 'utf-8')),
};
const app = new App({
prefix: config.commandPrefix,
...config.koishiOptions,
});
app.plugin(koishiPluginVerifier, {
app.plugin(koishiPluginOnebot, config.adapter);
const adminIds = config.adminIds.map((id) => id.toString());
app.plugin(koishiPluginVerifier, {
onFriendRequest: true,
onGuildRequest: (session: Session) =>
session.userId &&
process.env.ADMIN_ID &&
process.env.ADMIN_ID.split(',').includes(session.userId.toString()),
});
app.plugin(
targetPlugin,
process.env.APP_CONFIG ? JSON.parse(process.env.APP_CONFIG) : undefined,
);
app.start();
session.userId && adminIds.includes(session.userId),
});
app.plugin(targetPlugin, config.app);
await app.start();
}
main();
This diff is collapsed.
......@@ -4,7 +4,7 @@
"description": "A simple wrapper for Koishi.js, mainly for Windows.",
"main": "dist/index.js",
"scripts": {
"build": "tsc && rm -rf ./dist/plugin && cp -rf ./plugin/dist ./dist/plugin",
"build": "tsc && rm -rf ./dist/plugin && cp -rf ./plugin/dist/full ./dist/plugin",
"start": "node dist/index.js",
"launch": "npm run build && npm run start",
"pack": "mkdir output ; pkg --out-path output .",
......@@ -29,17 +29,18 @@
"author": "Nanahira <nanahira@momobako.com>",
"license": "MIT",
"dependencies": {
"@koishijs/plugin-adapter-onebot": "^4.0.0-alpha.9",
"@koishijs/plugin-verifier": "^1.0.0-alpha.1",
"better-sqlite3": "^7.4.3",
"koishi": "^4.0.0-alpha.11",
"proxy-agent": "^5.0.0"
"@koishijs/plugin-adapter-onebot": "^4.0.0-beta.1",
"@koishijs/plugin-verifier": "^1.0.0-beta.0",
"koishi": "^4.0.0-beta.1",
"ws": "^8.2.3",
"yaml": "^1.10.2"
},
"devDependencies": {
"@types/better-sqlite3": "^7.4.0",
"@types/node": "^16.7.10",
"@typescript-eslint/eslint-plugin": "^4.30.0",
"@typescript-eslint/parser": "^4.30.0",
"better-sqlite3": "^7.4.4",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.1",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment