kokkoro-plugin-group
Version:
87 lines (86 loc) • 3.27 kB
JavaScript
;
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);
});