Commit bbdcf41c authored by nanahira's avatar nanahira

rework

parent 65a5a863
import { App, Session } from 'koishi'; import { App, Plugin, Session } from 'koishi';
import * as koishiPluginOnebot from '@koishijs/plugin-adapter-onebot'; import koishiPluginOnebot, { BotConfig } from '@koishijs/plugin-adapter-onebot';
import * as koishiPluginVerifier from '@koishijs/plugin-verifier'; 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';
const app = new App({ import targetPlugin from './plugin';
prefix: process.env.COMMAND_PREFIX || '.', import yaml from 'yaml';
}); import { promises as fs } from 'fs';
app.plugin(koishiPluginOnebot, { type ConfigFromPlugin<P> = P extends Plugin<infer C> ? C : never;
bots: [
{ interface Config {
protocol: 'ws', adapter: Adapter.PluginConfig<AdapterConfig, BotConfig>;
endpoint: process.env.ONEBOT_HOST || 'ws://127.0.0.1:6700', koishiOptions: App.Config;
selfId: process.env.ONEBOT_ID, commandPrefix: string;
token: process.env.ONEBOT_TOKEN, adminIds: string[];
}, app: any;
], }
});
const defaultConfig: Config = {
app.plugin(koishiPluginVerifier, { adapter: {
onFriendRequest: true, bots: [
onGuildRequest: (session: Session) => {
session.userId && protocol: 'ws',
process.env.ADMIN_ID && endpoint: process.env.ONEBOT_HOST || 'ws://127.0.0.1:6700',
process.env.ADMIN_ID.split(',').includes(session.userId.toString()), selfId: process.env.ONEBOT_ID,
}); token: process.env.ONEBOT_TOKEN,
app.plugin( },
targetPlugin, ],
process.env.APP_CONFIG ? JSON.parse(process.env.APP_CONFIG) : undefined, },
); koishiOptions: {},
commandPrefix: process.env.COMMAND_PREFIX || '.',
app.start(); 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(koishiPluginOnebot, config.adapter);
const adminIds = config.adminIds.map((id) => id.toString());
app.plugin(koishiPluginVerifier, {
onFriendRequest: true,
onGuildRequest: (session: Session) =>
session.userId && adminIds.includes(session.userId),
});
app.plugin(targetPlugin, config.app);
await app.start();
}
main();
This diff is collapsed.
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"description": "A simple wrapper for Koishi.js, mainly for Windows.", "description": "A simple wrapper for Koishi.js, mainly for Windows.",
"main": "dist/index.js", "main": "dist/index.js",
"scripts": { "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", "start": "node dist/index.js",
"launch": "npm run build && npm run start", "launch": "npm run build && npm run start",
"pack": "mkdir output ; pkg --out-path output .", "pack": "mkdir output ; pkg --out-path output .",
...@@ -29,17 +29,18 @@ ...@@ -29,17 +29,18 @@
"author": "Nanahira <nanahira@momobako.com>", "author": "Nanahira <nanahira@momobako.com>",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@koishijs/plugin-adapter-onebot": "^4.0.0-alpha.9", "@koishijs/plugin-adapter-onebot": "^4.0.0-beta.1",
"@koishijs/plugin-verifier": "^1.0.0-alpha.1", "@koishijs/plugin-verifier": "^1.0.0-beta.0",
"better-sqlite3": "^7.4.3", "koishi": "^4.0.0-beta.1",
"koishi": "^4.0.0-alpha.11", "ws": "^8.2.3",
"proxy-agent": "^5.0.0" "yaml": "^1.10.2"
}, },
"devDependencies": { "devDependencies": {
"@types/better-sqlite3": "^7.4.0", "@types/better-sqlite3": "^7.4.0",
"@types/node": "^16.7.10", "@types/node": "^16.7.10",
"@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/eslint-plugin": "^4.30.0",
"@typescript-eslint/parser": "^4.30.0", "@typescript-eslint/parser": "^4.30.0",
"better-sqlite3": "^7.4.4",
"eslint": "^7.32.0", "eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.1", "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