scoreboard-service:让插件们以统一的方式使用计分板功能

该插件提供了 scoreboard 服务
旨在让所有需要计分的插件可以统一使用同一种方式计分

如何导入:
在源代码文件顶部输入
import {} from 'koishi-plugin-scoreboard-service'

一个群聊内可以有多个分组,可以区分不同插件或不同用途,但并不禁止修改其他插件的积分数据

guildId不一定要填写群聊的ID,如果你想跨群聊积分的话,填个“全局”什么的也是OK的

方法介绍:

方法:
ctx.scoreboard.set(guildId, groupName, userId, score, userName?)

参数:
guildId: string
指定群聊
groupName: string
指定分组
userId: string
指定用户ID
score: number
指定分数
userName?: string
指定用户昵称(可选)

返回值:
Promise<boolean>

介绍:
数据库无指定用户时新建一个积分项,有时修改积分项


方法:
ctx.scoreboard.get(guildId, groupName, userId?)

参数:
guildId: string
指定群聊
groupName: string
指定分组
userId?: string
指定用户ID(可选)

返回值:
Promise<array>
array里面包含一个或多个object
{
id: number
guildId: string
playerId: string
playerName: string
groupName: string
score: number
}

介绍:
返回一个数组,包含所有符合条件的对象


方法:
ctx.scoreboard.remove(guildId, groupName, userId)

参数:
guildId: string
指定群聊
groupName: string
指定分组
userId: string
指定用户ID

返回值:
Promise<boolean>
删除成功时返回true,找不到符合条件的用户时返回false

介绍:
删除一个指定用户以及它的数据


方法:
ctx.scoreboard.clear(groupName, guildId?)

参数:
groupName: string
指定分组
guildId?: string
指定群聊(可选)

返回值:
Promise<boolean>
删除成功时返回true,找不到符合条件的用户时返回false

介绍:
清空符合条件的计分板


方法:
ctx.scoreboard.getBySort(guildId, groupName, limit?, offset?, reversed?)

参数:
guildId: string
指定群聊
groupName: string
指定分组
limit?: number
限制获取个数
默认值:100
offset?: number
排序后从第几条开始
默认值:0
reversed?: boolean
降序/升序排列
默认值:false(降序)

返回值:
Promise<array>
包含符合指定条件的对象的数组

介绍:
与get方法基本一致,但按score排序,新增了一些参数

欢迎提建议/反馈bug!

我感觉我差不多是在洗稿database

7 个赞

0.0.6版本更新:

  • 修复了没有正常扩展数据表的问题
2 个赞