Skip to content
mioki

mioki 简介

npmnpm-download

mioki 是基于 NapCat 的插件式 OneBot 机器人框架,KiviBot 的精神继任者。

mioki 继承了 KiviBot 的轻量、优雅和易用的设计理念,并在此基础上替换了底层通信库为 NapCat SDK,提供了更现代化的 TypeScript 支持和更强大的功能扩展能力。

本项目开发初衷在于提高群活跃氛围、方便群管理,仅供个人娱乐、学习和交流使用,不得将本项目用于任何非法用途

为什么选择 mioki

  • 🌟 KiviBot 继任者:继承 KiviBot 的优良传统和设计理念
  • 🧩 插件式架构:支持热插拔插件,运行时动态启用/禁用/重载,方便扩展功能
  • 🚀 基于 NapCat:利用 NapCat 的强大功能和稳定性
  • 💡 简单易用:简洁的 API 设计,快速上手
  • 📦 TypeScript 优先:完整的类型定义,极致的开发体验
  • ⏱️ 定时任务:内置 cron 表达式支持,轻松实现定时任务
  • 🛠️ 丰富的工具函数:提供大量实用工具函数,简化插件开发

更多特性等你探索...

插件示例

仅需编写少量代码即可实现丰富功能,比如一个简单的关键词回复插件:

ts
import { definePlugin } from 'mioki'

export default definePlugin({
  name: 'words',
  version: '1.0.0',
  async setup(ctx) {
    // 监听消息事件
    ctx.handle('message', async (event) => {
      // 通过原始消息内容进行匹配
      if (event.raw_message === 'hello') {
        // true 代表引用回复
        await event.reply('world', true)
      }

      // 或者更简单的扩展写法
      ctx.match(event, {
        测试: '不支持小处男测试~',
        hello: 'world',
        现在几点: () => new Date().toLocaleTimeString('zh-CN'),
      })
    })
  },
})

再比如一个简单的点赞插件:

ts
import { definePlugin } from 'mioki'

export default definePlugin({
  name: 'like',
  version: '1.0.0',
  async setup(ctx) {
    const { uin, nickname } = ctx.bot

    ctx.logger.info(`插件已加载,当前登录账号:${nickname}${uin})`)

    ctx.handle('message.group', async (event) => {
      ctx.match(event, {
        赞我: async () => {
          ctx.logger.info(`收到来自群 ${event.group_id}${event.user_id} 的点赞请求`)

          await ctx.bot.sendLike(event.user_id, 5)
          await event.addReaction('66')
          await event.reply(['已为您点赞 5 次', ctx.segment.face(66)], true)
        },
      })
    })
  },
})

Released under the MIT License.