el-bot
Version:
A quick qq bot framework for mirai.
67 lines (60 loc) • 1.29 kB
text/typescript
import type { MessageType } from 'mirai-ts'
/**
* 判断是否为 URL 链接
* @param url
*/
export function isUrl(url: string) {
return /^https?:\/\/.+/.test(url)
}
/**
* 内部模式
*/
export class InnerMode {
msg: MessageType.ChatMessage | undefined
friendSet = new Set()
groupSet = new Set()
constructor(msg?: MessageType.ChatMessage) {
if (msg)
this.msg = msg
}
setMsg(msg: MessageType.ChatMessage) {
this.msg = msg
}
/**
* 进入
*/
enter() {
const msg = this.msg
if (!msg)
return
if (msg.type === 'FriendMessage')
this.friendSet.add(msg.sender.id)
else if (msg.type === 'GroupMessage')
this.groupSet.add(msg.sender.group.id)
}
/**
* 当前状态
* 是否已进入内部
*/
getStatus() {
const msg = this.msg
if (!msg)
return
if (msg.type === 'FriendMessage')
return this.friendSet.has(msg.sender.id)
else if (msg.type === 'GroupMessage')
return this.groupSet.has(msg.sender.group.id)
}
/**
* 退出
*/
exit() {
const msg = this.msg
if (!msg)
return
if (msg.type === 'FriendMessage')
this.friendSet.delete(msg.sender.id)
else if (msg.type === 'GroupMessage')
this.groupSet.delete(msg.sender.group.id)
}
}