Nambers / MiraiCP

c++ SDK of Mirai

Home Page:https://eritque-arcus.tech/MiraiCP/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

未来几个月计划

Nambers opened this issue · comments

功能描述

按优先级排序:

  1. 修复新报告的 issue
  • #173
    • 统一命名规范
    • 减少复制
    • 优化继承结构
  • 3. kotlin 引入 mockFrame 以增加对kt + cpp的单元测试 #84 #118
  • 4. kotlin 的 core loader 模块支持 kotlin native(可能可行), 如果可行的话就可以直接纯cpp启动miraicp #129
  1. TBD

原因

None

组件选择

both

  • 具体的异常类型应该在需要抛出的位置再定义,不要统合到一个exception.h里

TODO1:

Class_cpplib = reinterpret_cast<jclass>(env->NewGlobalRef(env->FindClass("tech/eritquearcus/miraicp/shared/CPPLib")));

改成

Class_cpplib = reinterpret_cast<jclass>(env->NewGlobalRef(env->FindClass("tech/eritquearcus/miraicp/shared/CPPLibMultiplatform")));

以及

if (!registerMethods(env, "tech/eritquearcus/miraicp/shared/CPPLib", method_table, 3)) {
if (!registerMethods(env, "tech/eritquearcus/miraicp/shared/CPPLibMultiplatform", method_table, 3)) {

我觉得可以用个宏/常量替换

  • 增加代码规范文档

希望主可以增加一个获取龙王的事件,谢谢啦^_^

  • refresh需要用try包裹,失败后将init设为false
  • PLUGIN_INFO改为传递指针而非引用,允许返回空指针用于异常检查不允许空指针
  • 保留events原有的构造函数,但改为protected,用作传入json的构造函数的委托构造
  • timeoutEvent改为在libloader线程处理,防止加载多个插件时倒计时被抛到其他插件
  • 加入线程池
  • timeoutEvent由libloader端tick处理,降低线程池占用
  • native 收不到包
  • api 文档样式崩坏
  • 重构一些内部实现
  • 插件接口noexcept,是否产生异常通过MiraiCPString int返回
  • 使用md5计算插件hash,并依此作为目标文件名复制temp插件
  • 降低工具链版本,close #149
  • 添加wchar, wstring类型的支持
  • 对所有const json对象,检查其key存在性后再使用
  • 更好的线程识别方案,受限于linux内核,线程名最大字符数为15,需要一些别的方案来存储线程识别符
  • 使用md5计算插件hash,并依此作为目标文件名复制temp插件

用这个 https://github.com/stbrumme/hash-library

no planned anymore ><