欢迎来到MiraiCP
Tips~
如有意向一起开发本项目,请联系我邮箱(1930893235@qq.com) ( ̄▽ ̄)"
使用声明
MiraiCP是一个Mirai 的C++语言的社区SDK,基于Mirai-console和Mirai-core插件模板开发
本项目仅供学习参考,禁止用于任何商业用途(根据Mirai的AGPLv3许可协议开源)。
本项目不含有任何旨在破坏用户计算机数据和获取用户隐私的恶意代码,不含有任何跟踪、监视用户计算机功能代码,不会收集任何用户个人信息,不会泄露用户隐私。
本项目不提供任何具体功能实现,仅仅只是对项目mirai-console和mirai-core(详见mirai仓库)的二次封装。
任何单位或个人认为本项目可能涉嫌侵权,应及时提出反馈,本项目将会第一时间对违规内容给予删除等相关处理。
关于MiraiCP
支持的事件
这些内容可以在Config.kt看到
事件名称
函数名称
群聊消息
GroupMessageEvent
私聊消息
PrivateMessageEvent
好友申请
NewFriendRequestEvent
群聊邀请
GroupInviteEvent
新群成员加入
MemberJoinEvent
群成员离开
MemberLeaveEvent
消息撤回
RecallEvent
定时事件执行
SchedulingEvent
本项目设计流程结构 intro.md
Mirai支持的qq表情(对应miraicode的face)对应序号 faces.md
使用流程:
1 配置环境
mirai需要openjdk而不是甲骨文的jdk,如下载openjdk15/openjdk11
2 注意事项
MiraiCP版本规则: 从2.2.0开始 (2021/1/31),版本前两位为Mirai的版本,后一位为SDK更新迭代版本
因为JNIEnv是局部变量,不了解jni请勿在SDK中使用多线程,如果要使用多线程的话,要保存全局JavaVM变量然后在多线程开头使用genv = JavaVM.GetEnv()覆盖全局Env,否则mirai部分可能无法成功调用,目前已添加定时计划的实现代码详见
目前只确定win下可用,其他操作系统未测试,理论上liunx应该可用,生成so文件替换dll文件即可
如果vs报错找不到jni.h,把cpp/include文件夹加入到vs的库里面去(项目->属性->C++->常规),include文件夹里包含了jni.h以及他的依赖文件
3 使用方法:
以下2种选择任意一种
3.1 MiraiCP-Plugin插件配合mcl使用
展开
首先下载启动器(mcl), 下载地址 -> 笔者整合包 或 官方
下载release中MiraiCP-Plugin.7z文件
复制压缩包根目录下的.jar文件留着下面有用(配套插件)
打开cpp文件夹下的.sln文件从而打开vs的c++项目,或者用其他方式打开位于cpp文件夹下的c++项目
在procession.cpp里自定义你自己的代码
生成.dll文件
留意cpp/x64/Release/或cpp/x64/Debug(取决于你用哪个方案生成)这个路径下的.dll文件,留着下面有用
打开上面下载的mcl文件夹
把.jar文件(也就是配套插件)拷贝进mcl的plugin文件夹下
运行一次mcl,然后不管有无报错,不要登录,直接退出(目的是生成data路径)
打开mcl目录下的data/miraiCP路径(可能名字随着mirai版本的迭代会更改,包含MiraiCP即可),把上面的.dll文件复制进来
或把.dll文件放到任意位置,然后在data/miraiCP(可能名字随着mirai版本的迭代会更改,包含MiraiCP即可)下创建一个miraicp.txt把.dll的绝对路径写进去并不要写其他东西
运行mcl
3.2 使用MiraiCP-Loader整合包
展开
下载release中的MiraiCP-Loader.7z
打开cpp文件夹下的.sln文件从而打开vs的c++项目,或者用其他方式打开位于cpp文件夹下的c++项目
在procession.cpp里自定义你自己的代码
生成.dll文件
留意cpp/x64/Release/或cpp/x64/Debug(取决于你用哪个方案生成)这个路径下的.dll文件,留着下面有用
更改run.bat文件里的启动参数,以[qq号,密码和mirai-demo.dll路径(也就是上一步的.dll,可以复制出来,run.bat里可填相对路径或绝对路径),是否检测更新(可选,如果检查输入1否则不填)]格式填写
运行run.bat
如果有其他问题,欢迎提交issue和提交PR贡献
更新方式
下载release包
覆盖旧的.mirai.jar插件或者.jarloader
把cpp文件夹下的全部单个文件覆盖(json和include文件夹不需要),主要为pch.h(预编译头文件),pch.cpp(dll入口点),tools.h(各种事件及对象类声明),tools.cpp(tools.h里的声明的实现),constants.h(常量表)
TODO
许可
Copyright (C) 2020-2021 Eritque arcus and contributors.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or any later version(in your opinion).
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .