UNPKG

koishi-plugin-beatsaber-bot

Version:

一个 用于 BeatSaber 的 koishi Bot 插件

47 lines (46 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LeaveSubscribeCmd = void 0; const koishi_1 = require("koishi"); function LeaveSubscribeCmd(ctx, cfg, render, api, logger) { const leaveCmd = ctx .command('bsbot.subscribe.leave') .alias('bbleave') .userFields(['id']) .option('type', '<type:string>') .action(async ({ session, options }, input) => { const selection = ctx.database.join(['BSBotSubscribe', 'BSSubscribeMember']); const subs = await selection.where(row => koishi_1.$.and(koishi_1.$.eq(row.BSBotSubscribe.channelId, session.channelId), koishi_1.$.eq(row.BSBotSubscribe.id, row.BSSubscribeMember.subscribeId), koishi_1.$.eq(row.BSSubscribeMember.memberUid, session.user.id))).execute(); if (options.type === "beatleader") { const ok = subs.some(it => it.BSBotSubscribe.type == "beatleader"); if (!ok) { session.sendQuote(session.text('commands.bsbot.subscribe.leave.not-exist.beatleader')); return; } const res = subs.find(it => it.BSBotSubscribe.type == "beatleader"); await ctx.database.remove('BSSubscribeMember', { subscribeId: res.BSBotSubscribe.id, memberUid: session.user.id, }); session.sendQuote(session.text('commands.bsbot.subscribe.leave.success.beatleader')); } else if (options.type === "beatsaver") { const ok = subs.some(it => it.BSBotSubscribe.type == "beatsaver"); if (!ok) { session.sendQuote(session.text('commands.bsbot.subscribe.leave.not-exist.beatsaver')); return; } const res = subs.find(it => it.BSBotSubscribe.type == "beatsaver"); await ctx.database.remove('BSSubscribeMember', { subscribeId: res.BSBotSubscribe.id, memberUid: session.user.id, }); session.sendQuote(session.text('commands.bsbot.subscribe.leave.success.beatsaver')); } }); return { key: 'subscribe.leave', cmd: leaveCmd }; } exports.LeaveSubscribeCmd = LeaveSubscribeCmd;