RT.随着插件的深入开发,发现Dice!提供的读取数据文件函数已经不能够满足对更高自由度的追求(
UserConf等文件为字节流文件,如果需要浏览和修改其中的一些数据较为困难,且如果需要将Lua脚本的数据和其他插件,比如mirai插件、nonebot2等共通,将带来巨大的阻碍(痛哭)
所以下午花了点时间对getUserConf,setUserConf,getGroupConf,setGroupConf,getUserToday,setUserToday函数进行了重写,配合json.lua读写json文件
对内置函数的优化:更高的自由度,可随时查看的json文件;第三参数存储的数据类型为任何lua支持的数据类型;支持一次读写多个数据,避免了需要读取多个数据时带来的重复劳动。
示例:
local v1,v2,v3=GetUserToday(msg.fromQQ, {"key1","key2","key3"}, {d1,d2,d3})
SetUserConf(msg.fromQQ,{"key1","key2","key3"},{value1,value2,value3})
至少我觉得这样舒服点
至于json的相关知识,可以看这里,写的真的很详细!w
若要实现UserToday的定时清空,建议使用Dice!的定时任务,可以在这里找到
实际上这可以当做一个模板,只需稍稍修改即可随时使用
请修改开头的json.lua和你的文件路径,修改文件后缀名为.lua后即可在需要时require导入
没有json.lua?(修改后缀)
当然,如果已经大规模使用了内置函数,那么..你可能需要花点功夫转移数据( 比如将所有的数据项重新读入新的json中 嗯…虽然但是,如果不是重度开发患者/对自由度有更高追求/需要数据共通的人来说,内置的完全够用了
纯属摸鱼乱写的有更好的想法还请告诉我
呃,有人问清空UserToday的函数该怎么写(
然后按照定时任务注册一下就好了(嗯