Date: 2026/8/27Category: coin 内置插件Tag: 内置插件开发
coin 插件
看看这颗带着电磁炮的硬币(coin)能给misaka带来如何的提升吧!
tasktype
提供了删除文件的一整套流程:
- 标记文件为删除
MisakaRemove.ready将MisakaRemove.ready的文件确认删除,标记为(MisakaRemove.finsh)的文件,并交给judgment的清道夫处理。
coin 插件
看看这颗带着电磁炮的硬币(coin)能给misaka带来如何的提升吧!
提供了删除文件的一整套流程:
MisakaRemove.ready
将MisakaRemove.ready的文件确认删除,标记为(MisakaRemove.finsh)的文件,并交给judgment的清道夫处理。miql是什么
MIQL是用于增删改查数据库的语法,由mq.开头。mq 必须登录用户执行。
mq.createDB(<name>[, engine])
常规更新
OnRemoveFolder删除已被打开的目录导致出现的问题;TaskCombo、AddTaskCombo 等业务函数;TinyDB 引擎;atoimc 库名称为 atomicX;engine.NewTinyEngineGetPluginBus -> GetPluginX;PluginBus 名称为 PluginsX;base_unloader 插件名称为 coin;AtomicDropDB 的逻辑转交给 内置插件 coin 执行;TaskType对应一个TaskBooks,多个TaskBooks组合成一个Task。不同的Task存在在原子任务中心的
TaskMap中以TaskID作为键来进行存储,TaskID的获取方式是通过函数AddTask的返回值获取的。
当客户端发来miql之后,misakadb要统一进行解析,为了保持miql的任务的原子性、一致性、隔离性、持久性这四个属性,misakaDB需要一个原子任务中心来管理所有的任务。
Tips
misaka支持天然插件加载和开发,用户可以在 misaka 开发自己的插件,官方默认加载了一个misaka basic mode的插件供以参考,请勿删除misaka basic mode插件,这会导致misaka不可用。
Misaka支持插件的开发和使用。
模组原理:开发者创建函数,然后按照指定的type约束传入注册机,如:func ([]tasktype.TaskType) []tasktype.TaskType, 注册机会根据类型在程序启动之后,在相应的地方调用函数。
什么是全局锁池
全局锁池可以帮助我们快速的在项目中对某个资源、操作句柄进行上锁。
全局锁池内部被划分为两个子池:
YoungPool:存储当前高频访问、命中率较高的热点锁OldPool:存储暂时降级的锁,用于后续淘汰和回收判断业务线程在获取锁时,会优先查询 YoungPool。如果未命中,再继续查询 OldPool。一旦在 OldPool 中找到目标锁,就会将该锁重新提升到 YoungPool,从而让热点锁始终尽量停留在更快命中的路径上。