Skip to content
This repository was archived by the owner on Mar 30, 2024. It is now read-only.

Commit 272ee9b

Browse files
committed
消息监听器
1 parent 29e4a8e commit 272ee9b

File tree

11 files changed

+616
-116
lines changed

11 files changed

+616
-116
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Packages
22
node_modules
33
yarn.lock
4+
yarn-error.log
45

56
# Docs site
67
site

.hdic.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default {
2+
3+
}

hdic.ts

Lines changed: 20 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,7 @@ import { Bot, Session } from './src/medic.js'
33
import { app } from './src/index.js'
44

55
// 消息相关,At Image Text 是消息元素
6-
import {
7-
At,
8-
Image,
9-
Text,
10-
createChain,
11-
reply,
12-
sendGroupMessage,
13-
} from './src/message.js'
6+
import { At, Image, Text, createChain, reply, sendGroupMessage } from './src/message.js'
147

158
// 文件扩展
169
import * as fs from './src/extensions/fs.js'
@@ -22,9 +15,14 @@ import http from './src/extensions/http.js'
2215
import { Plugin } from './src/types/plugin.js'
2316
import './src/plugins/jrrp.js'
2417

18+
// 事件监听器
19+
import EventEmitter, { once } from './src/extensions/events.js'
20+
const Event = new EventEmitter()
21+
globalThis.Event = Event
22+
2523
import { InnerMode } from './src/utils/helper.js'
2624
let innerMode = new InnerMode()
27-
async function main(session: Session) {
25+
async function messageHandler(session: Session) {
2826
globalThis.client = session.client
2927

3028
// 消息中断器示例
@@ -46,59 +44,32 @@ async function main(session: Session) {
4644
}
4745
}
4846
// 消息中断器示例结束
49-
50-
// 插件系统
51-
if (globalThis.plugins && globalThis.plugins.length > 0) {
52-
globalThis.plugins.forEach(async (p: Plugin) => {
53-
if (p.enable) {
54-
try {
55-
await p.action(session)
56-
} catch (e) {
57-
console.log(e)
58-
}
59-
}
60-
})
61-
}
62-
if (session.msg === 'help' || session.msg === '菜单') {
63-
let menu = ''
64-
if (globalThis.plugins && globalThis.plugins.length > 0) {
65-
globalThis.plugins.forEach((p: Plugin) => {
66-
if (p.enable) {
67-
menu += p.info.name + '\n ' + p.info.description + '\n'
68-
}
69-
})
70-
reply(menu)
71-
} else {
72-
reply('没有菜单呢')
73-
}
74-
}
75-
// 插件系统结束
7647
}
7748

7849
$.on('message.group', async (message) => {
7950
let session = new Session(message, 'GroupMessage')
80-
try {
81-
await main(session)
82-
} catch (e) {
83-
console.warn('MEJS运行失败: ' + e)
84-
}
51+
Event.emit('message', session)
52+
Event.emit('message.group', session)
8553
})
8654

87-
$.on('message.friend', async (message: typeof globalThis.message) => {
55+
$.on('message.friend', async (message) => {
8856
let session = new Session(message, 'FriendMessage')
89-
main(session)
57+
Event.emit('message', session)
58+
Event.emit('message.friend', session)
9059
})
9160

92-
$.on('message.temp', async (message: typeof globalThis.message) => {
61+
$.on('message.temp', async (message) => {
9362
let session = new Session(message, 'FriendMessage')
94-
main(session)
63+
Event.emit('message', session)
64+
Event.emit('message.temp', session)
9565
})
9666

9767
// Bot 上线事件
9868
$.on('online', (bot: typeof globalThis.bot) => {
9969
console.log(`${bot.uin} 已上线`)
10070
try {
10171
globalThis.bot = new Bot()
72+
bot = globalThis.bot
10273
} catch (e) {
10374
console.log(e)
10475
}
@@ -112,3 +83,7 @@ while (true) {
11283
break
11384
}
11485
}
86+
87+
Event.on('message', async (session: Session) => {
88+
await messageHandler(session)
89+
})

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
"docs:type": "typedoc"
1414
},
1515
"dependencies": {
16+
"@types/java": "^0.9.2",
1617
"minimist": "^1.2.5",
18+
"node-java": "^1.0.1",
1719
"typescript": "^4.6.2"
1820
},
1921
"devDependencies": {

src/command.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import EventEmitter from './extensions/events'
2+
import parser from './extensions/commander.js'
3+
let Event = new EventEmitter()
4+
class Command {
5+
command: any
6+
compulsory: any
7+
optional: any[]
8+
constructor(cmd) {
9+
this.command = cmd
10+
this.compulsory = []
11+
this.optional = []
12+
}
13+
option(value: string, tag: string, defaultValue?: string) {
14+
return this
15+
}
16+
action(callback: Function) {
17+
Event.on('message.group', async (session) => {
18+
await callback()
19+
})
20+
}
21+
prase(cmd: string) {
22+
return parser(cmd)
23+
}
24+
}
25+
function command(cmd) {}

src/example/hdic.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
权限:手机信息
44
作者:Miaow
55
版本:α
6-
图标:https://nekohouse.cafe/Yun.png
6+
图标:https://nekohouse.cafe/yun.png
77
简介:这只是一个演示dic,本文件仅供参考,请勿在未知的情况下随意导入
8-
官网:https://nekohouse.cafe
8+
官网:https://docs.nekohouse.cafe
99
开机:喵喵起床
1010
关机:喵喵睡觉
1111

0 commit comments

Comments
 (0)