79 lines
1.8 KiB
TypeScript
79 lines
1.8 KiB
TypeScript
|
||
import { ConfigController as cfg } from 'yunzai/config'
|
||
import { Plugin } from 'yunzai/core'
|
||
/**
|
||
*
|
||
*/
|
||
export class disPri extends Plugin {
|
||
/**
|
||
*
|
||
*/
|
||
constructor() {
|
||
/**
|
||
name: '禁止私聊',
|
||
dsc: '对私聊禁用做处理当开启私聊禁用时只接收cookie以及抽卡链接',
|
||
*/
|
||
super({
|
||
event: 'message.private'
|
||
})
|
||
/**
|
||
*
|
||
*/
|
||
this.priority = 0
|
||
}
|
||
|
||
/**
|
||
*
|
||
* @returns
|
||
*/
|
||
async accept() {
|
||
if (!cfg.other?.disablePrivate) return
|
||
|
||
if (this.e.isMaster) return
|
||
|
||
/** 发送日志文件,xlsx,json */
|
||
if (this.e.file) {
|
||
if (!/(.*)\.txt|xlsx|json/ig.test(this.e.file?.name)) {
|
||
this.sendTips()
|
||
return 'return'
|
||
} else {
|
||
return false
|
||
}
|
||
}
|
||
|
||
/** 绑定ck,抽卡链接 */
|
||
let wordReg = /(.*)(ltoken|_MHYUUID|authkey=)(.*)|导出记录(json)*|(记录|安卓|苹果|ck|cookie|体力)帮助|^帮助$|^#*(删除|我的)ck$|^#(我的)?(uid|UID)[0-9]{0,2}$/g
|
||
/** 自定义通行字符 */
|
||
let disableAdopt = cfg.other?.disableAdopt
|
||
if (!Array.isArray(disableAdopt)) {
|
||
disableAdopt = []
|
||
}
|
||
disableAdopt = disableAdopt.filter(str => str != null && str !== '');
|
||
let disableReg = `(.*)(${disableAdopt.join('|')})(.*)`
|
||
if (this.e.raw_message) {
|
||
if (!new RegExp(wordReg).test(this.e.raw_message) && (disableAdopt.length === 0 || !new RegExp(disableReg).test(this.e.raw_message))) {
|
||
this.sendTips()
|
||
return 'return'
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
*
|
||
* @returns
|
||
*/
|
||
async sendTips() {
|
||
/** 冷却cd 10s */
|
||
let cd = 10
|
||
|
||
if (this.e.user_id == cfg.qq) return
|
||
|
||
/** cd */
|
||
let key = `Yz:disablePrivate:${this.e.user_id}`
|
||
if (await redis.get(key)) return
|
||
|
||
this.e.reply(cfg.other.disableMsg)
|
||
|
||
redis.setEx(key, cd, '1')
|
||
}
|
||
} |