该插件提供了 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