From aa6e39ffe4f0fcdc6b27c84bf7b47ee9d5e91b15 Mon Sep 17 00:00:00 2001 From: xys20071111 Date: Thu, 3 Nov 2022 20:12:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8F=92=E4=BB=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=90=AF=E5=8A=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ plugins/.gitkeep | 0 src/DanmakuReceiver.ts | 4 ++-- src/Main.ts | 15 ++++++++++++++- src/utils/PrintLog.ts | 4 ++-- 5 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 plugins/.gitkeep diff --git a/.gitignore b/.gitignore index a20c24f..e66bbba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ config/* log/* +plugins/* +!plugins/.gitkeep !config/.gitkeep !log/.gitkeep dist diff --git a/plugins/.gitkeep b/plugins/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/DanmakuReceiver.ts b/src/DanmakuReceiver.ts index 5d029c5..d4c5a9a 100644 --- a/src/DanmakuReceiver.ts +++ b/src/DanmakuReceiver.ts @@ -98,7 +98,7 @@ export class DanmakuReceiver extends EventEmitter { // 心跳包,不做处理 break; case DANMAKU_TYPE.AUTH_REPLY: - printLog("通过认证"); + printLog('弹幕接收器' ,"通过认证"); // 认证通过,每30秒发一次心跳包 setInterval(() => { const heartbeatPayload = "陈睿你妈死了"; @@ -134,7 +134,7 @@ export class DanmakuReceiver extends EventEmitter { } break; default: - printLog("什么鬼,没见过这种包"); + printLog('弹幕接收器', `未知的弹幕数据包种类 ${packetType}`); } } } diff --git a/src/Main.ts b/src/Main.ts index 8f0299b..a6e6f21 100644 --- a/src/Main.ts +++ b/src/Main.ts @@ -3,9 +3,21 @@ import { DanmakuReceiver } from './DanmakuReceiver.ts'; import { onGraud, onLiveEnd, onLiveStart, onSuperChat, onTotalGift, receiveDanmaku, receiveGift } from './DanmakuCallbacks.ts'; import { printLog } from './utils/mod.ts'; +async function launchAllPlugins() { + const pluginsList = await Deno.readDir('./plugins') + for await (const plugin of pluginsList) { + if (plugin.name === '.gitkeep') { + continue + } + Deno.run({ + cmd: [`./plugins/${plugin.name}/${plugin.name}`, `./plugins/${plugin.name}/config.json`] + }) + } +} + const danmakuReceiver = new DanmakuReceiver(config.room_id); danmakuReceiver.on('connected', () => { - printLog('连接成功'); + printLog('主程序', '连接成功'); }); danmakuReceiver.on('closed', () => danmakuReceiver.connect()); @@ -17,4 +29,5 @@ danmakuReceiver.on('COMBO_SEND', onTotalGift); danmakuReceiver.on('GUARD_BUY', onGraud); danmakuReceiver.on('SUPER_CHAT_MESSAGE', onSuperChat); +launchAllPlugins() danmakuReceiver.connect(); diff --git a/src/utils/PrintLog.ts b/src/utils/PrintLog.ts index 9ce624c..574232a 100644 --- a/src/utils/PrintLog.ts +++ b/src/utils/PrintLog.ts @@ -1,4 +1,4 @@ import { getTimeString } from './GetTimeString.ts' -export function printLog(msg: unknown) { - console.log(`[${getTimeString()}] ${msg}`) +export function printLog(type: string, msg: unknown) { + console.log(`[${type}][${getTimeString()}] ${msg}`) } \ No newline at end of file