import pkg from 'mirai-js'; import { cookSubs, command } from '#root/config/index.js'; import { getRandomRecipe } from './api/index.js'; import { genRecipeMessage } from './utils/index.js'; import logger from '#root/utils/logger.js' const { Middleware, Message } = pkg; const cookCommand = command.cook; let Bot; const commandHandle = { random: randomCook, }; async function randomCook(text, data) { const limit = Number.parseInt(text) > 0 ? Number.parseInt(text) : 5; const recipeList = await getRandomRecipe(limit); const message = genRecipeMessage(recipeList, '给你推荐'); switch (data.type) { case 'GroupMessage': const forwardMsg = Message.createForwardMessage(); forwardMsg.addForwardNode({ senderId: process.env.QQ, time: 0, senderName: '厨娘·模儿', messageChain: message }) Bot.sendMessageToGroup(data.sender.group.id, forwardMsg); break; case 'FriendMessage': Bot.sendMessageToFriend(data.sender.id, message); } } function cookInit() { Bot.bot.on( 'GroupMessage', new Middleware().groupFilter(cookSubs.groups).textProcessor().done(dealCommon), ); Bot.bot.on( 'FriendMessage', new Middleware().textProcessor().done(dealCommon), ); Bot.sendMessageToFriend(+process.env.MASTER, '厨娘系统 启动!'); logger('cook 初始化完成') } function dealCommon(data) { logger('开始处理指令') const [commandText, ...contentText] = data.text.trim().split(' '); for (let com of Object.keys(cookCommand)) { if (cookCommand[com].includes(commandText)) { commandHandle[com](contentText, data); break; } } } export default function install(bot) { Bot = bot; cookInit(); logger('cook 插件加载成功') }