UNPKG

kokkoro-plugin-group

Version:
87 lines (86 loc) 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = require("path"); const amesu_1 = require("amesu"); const core_1 = require("@kokkoro/core"); const service_1 = require("./service"); const option = { apply: true, lock: false, notice: true, title_level: 1, }; const pkg = require('../package.json'); const images_path = (0, path_1.join)(__dirname, '../images'); const plugin = new core_1.Plugin('group', option); const service = new service_1.Service(plugin); plugin .version(pkg.version); plugin .command('title <name>', 'group') .sugar(/^申请头衔\s?(?<name>.+)$/) .action(async (ctx, bot) => { const { group_id, sender, group, permission_level, query } = ctx; const { user_id } = sender; const { title_level } = ctx.option; let message = ''; switch (true) { case !group.is_owner: message = `申请头衔需要 bot 拥有群主权限才能正常使用`; break; case permission_level < title_level: message = `你当前为 Level ${permission_level},申请头衔需要达到 Level ${title_level}`; break; } if (message) { return ctx.reply(message, true); } const title = query.name.replace('申请头衔', '').trim(); try { await bot.setGroupSpecialTitle(group_id, user_id, title); await ctx.reply('申请成功', true); } catch (error) { await ctx.reply('申请失败', true); } }); plugin .event('notice.group.increase') .action(async (ctx, bot) => { const { group_id, user_id, option, self_id } = ctx; if (!option.notice || user_id === self_id) { return; } const is_admin = bot.isAdmin(user_id); const is_master = bot.isMaster(user_id); const image = (0, path_1.join)(images_path, 'miyane.jpg'); const message = []; switch (true) { case is_admin: message.push(...[amesu_1.segment.at(user_id), 'yuki yuki yuki (ノ≧∀≦)ノ']); break; case is_master: message.push('欢迎新...啊咧?是 master 么 (*゚ロ゚)'); break; default: message.push(...[ '欢迎新人 ', amesu_1.segment.at(user_id), ' 的加入~\n', '新人麻烦爆照报三围,希望你不要不识抬举\n', amesu_1.segment.image(image) ]); break; } await bot.sendGroupMsg(group_id, message); }); plugin .event('notice.group.decrease') .action(async (ctx, bot) => { const { operator_id, group_id, user_id, member, option, self_id } = ctx; if (!option.notice || user_id === self_id) { return; } // 判断是否人为操作 const message = operator_id === user_id ? [`成员 ${member?.nickname}(${user_id}) 已退出群聊\n`, amesu_1.segment.image((0, path_1.join)(images_path, 'chi.jpg'))] : ['感谢 ', amesu_1.segment.at(operator_id), ` 成员\n赠送给 ${member?.nickname}(${user_id}) 的一张飞机票~\n`, amesu_1.segment.image((0, path_1.join)(images_path, 'mizu.jpg'))]; await bot.sendGroupMsg(group_id, message); });