custom-monetary:基于monetary与checkin的个人定制插件

前些日子发帖求签到插件,发现插件市场里有实现类似功能的插件,但使用体验并不尽人意。于是参考monetary代码,结合需求,缝缝补补,写了一个自用插件。
这个插件有如下功能与特性:

  • 经济与签到功能
    • sign指令签到,me指令查看本人货币数,与checkin插件功能一致
    • 可在“指令管理”中设置执行各指令所需货币数,与monetary插件功能一致
  • 配置与数据表
    • 可在配置中自定义货币名(货币名全局共享)、签到所得货币数上下限、签到所得货币总数上限
    • 数据表中记录用户与群组id,还记录上次的签到时间与支出时间
    • 可在配置中选择签到所得货币是否累加
      • 若开启,则签到所得奖励会累加在用户现有货币中,直至抵达上限
      • 若关闭,则每日签到所得货币都会重新计算,前一日未用完的货币清零
  • 自动签到
    • 在配置中开启该选项后,每日0点将为符合条件的用户自动结算签到奖励
    • 用户需手动签到一次,才能被记入数据表、结算自动签到奖励
    • 上次支出时间在24小时内者(即24小时内调用过支出货币的指令),才能结算签到奖励,否则不能
  • 转账
    • 使用pay [用户id] [金额]即可转账
    • 转账行为不会更新支出时间

前后写了五六个小时,改bug改到心态爆炸。精力有限,还请各位多担待。

6 个赞

前排支持

等有空看看有什么好用的功能我要抄回去(

4 个赞

干得漂亮

2 个赞

不过有没有考虑过跨平台bind绑定后共用一个账户积分,现在一个平台一个账户存积分x

3 个赞

已经是 bind 后共用了啊

4 个赞

麻了,突然发现这自动签到自得不是很动。。。
大半夜给我急出汗来了

3 个赞

2023-11-30更新,爱来自12点半

  • 修复了自动签到的问题(可能),日志里新增显示获得奖励的人数
    • 问题是把对象当成数组解析导致的
    • 还没来得及测试,能不能用明天再说
  • 增加sign.all的5级权限指令
    • 为数据表内的所有用户执行一次签到,没有签到时间限制
    • 可作为前几天签到没签上的补救
4 个赞

感谢大佬的贡献 使用过程中发现一个问题 在使用 me 指令的时候 可能会存在无法获取到昵称的现象

3 个赞

session.event.member.nick导致的,我猜是适配器的锅,回头我再看看

3 个赞

不应该这么用啊,应该写 session.username

4 个赞

我去,谢谢哥,马上改

3 个赞

自动签到又没签上,我谔谔

2 个赞


悬着的心放下来了(暂时)

3 个赞

2023-12-31更新,爱来自跨年

  • 优化了累加式签到的奖励结算
    • 签到后,超出配置最大值的货币将予以保留
3 个赞

2024-2-7更新0.0.12

  • 新配置项
    • adminUsers:管理员可在此配置中指定执行指令不消耗货币的用户
    • outputLoggers: 是否在控制台打印日志
  • 打印日志
    • 用户消费、签到、转账行为均会在控制台中打印日志
    • 可在配置项中关闭

(修复了0.0.11的小bug)

3 个赞

2024-2-17更新0.0.13

  • 修改与调整
    • 修复当为数据表中不存在的用户转账时,文案中显示收款者余额为0的问题
    • 为管理员用户调整me与pay指令文案
  • 新增机制
    • 当数据表中不存在的用户执行需消耗货币的指令时,将为之自动签到一次——新用户终于不用手动签到了!
    • 管理员用户可转账任意金额给其他用户,且不再扣除其余额
3 个赞

有办法设置跨群吗,不同群通用

3 个赞

最近忙,过段时间再说吧。。

2 个赞

提点建议:
1.按人统计积分,每人在不同群的积分互通,可在不同群签到但每天总签到积分设置上限。
2.现在pay @别人 会转入“不存在的用户”即他的名字,实际不能影响收款QQ的账户,同时扣除了pay账户的余额。建议禁止此类转账或能把@出的QQ号识别出来。
3.为增加趣味性,可在转账为负数等非法金额时扣除转账者的积分,同时发送“你个笨蛋,没收xx积分”的自定义文案和自定义金额。

2 个赞

确实有优化pay用法的想法,也有群组互通的功能的设想
不过还是等我毕设答辩完吧

1 个赞