mirror of
https://github.com/Jerryplusy/crystelf-plugin.git
synced 2025-10-14 13:49:18 +00:00
43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
import configControl from '../lib/config/configControl.js';
|
||
import tools from '../components/tool.js';
|
||
|
||
export class welcomeNewcomer extends plugin {
|
||
constructor() {
|
||
super({
|
||
name: 'welcome-newcomer',
|
||
dsc: '新人入群欢迎',
|
||
event: 'notice.group.increase',
|
||
priority: -1000,
|
||
});
|
||
}
|
||
|
||
async accept(e) {
|
||
try {
|
||
await tools.sleep(600);
|
||
if (e.user_id === e.self_id) return;
|
||
const groupId = e.group_id;
|
||
const cdKey = `Yz:newcomers:${groupId}`;
|
||
if (await redis.get(cdKey)) return;
|
||
await redis.set(cdKey, '1', { EX: 30 });
|
||
const newcomerCfg = (await configControl.get('newcomer')) || {};
|
||
const welcomeCfg = newcomerCfg[groupId] || {};
|
||
const authCfg = await configControl.get('auth');
|
||
const groupAuthCfg = authCfg?.groups?.[groupId] || authCfg?.default || {};
|
||
const msgList = [segment.at(e.user_id)];
|
||
if (welcomeCfg.text) msgList.push(welcomeCfg.text);
|
||
if (welcomeCfg.image) msgList.push(segment.image(welcomeCfg.image));
|
||
if (!welcomeCfg.text && !welcomeCfg.image) msgList.push('欢迎新人~!');
|
||
if (groupAuthCfg?.enable) {
|
||
// 缓存欢迎消息
|
||
const redisKey = `Yz:pendingWelcome:${groupId}:${e.user_id}`;
|
||
await redis.set(redisKey, JSON.stringify(msgList), { EX: 300 });
|
||
return;
|
||
}
|
||
// 未开启验证
|
||
await e.reply(msgList);
|
||
} catch (err) {
|
||
return e.reply('加群欢迎出现错误,请重新设置加群欢迎', true);
|
||
}
|
||
}
|
||
}
|