UNPKG

@koishijs/plugin-market

Version:

Manage your bots and plugins with console

42 lines (40 loc) 1.2 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/shared/index.ts import { Logger, Time } from "koishi"; import { DataService } from "@koishijs/console"; var logger = new Logger("market"); var MarketProvider = class extends DataService { static { __name(this, "MarketProvider"); } _task; _timestamp = 0; _error; constructor(ctx) { super(ctx, "market", { authority: 4 }); ctx.console.addListener("market/refresh", () => this.start(true), { authority: 4 }); ctx.on("console/connection", async (client) => { if (!ctx.console.clients[client.id]) return; if (Date.now() - this._timestamp <= Time.hour * 12) return; if (await this.ctx.serial("console/intercept", client, { authority: 4 })) return; this.start(); }); } start(refresh = false) { this._task = null; this._error = null; this._timestamp = Date.now(); this.refresh(); } async prepare() { return this._task ||= this.collect().catch((error) => { logger.warn(error); this._error = error; }); } }; export { MarketProvider }; //# sourceMappingURL=index.mjs.map