UNPKG

koishi-plugin-best-jrrp

Version:

支持真随机的今日人品(运势),可自定义消息,还有节日祝福,甚至还有随机图片哦~

173 lines (117 loc) 6.5 kB
# koishi-plugin-best-jrrp [![npm](https://img.shields.io/npm/v/koishi-plugin-best-jrrp?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-best-jrrp) 支持真随机的今日人品(运势),可自定义消息,还有节日祝福,甚至还有随机图片哦~ ## 功能特性 - 支持多种计算算法:线性同余、正态分布、Random.org真随机API - 丰富的显示格式:二进制、八进制、十六进制、数学表达式 - 自定义范围分数消息和特殊分数/日期消息 - 查询特定日期人品值,预测特定分数出现日期 - 排行榜功能,查看今日人气之星 - 数据分析功能,查看个人人品统计信息 - 灵活的数据管理,支持按用户和日期清除数据 ## 命令列表 - `jrrp` - 获取今日人品值 - `jrrp.date [date]` - 查询指定日期的人品值(支持MM-DD、YY/MM/DD、YYYY-MM-DD格式) - `jrrp.score [score]` - 查找未来何时会出现指定分数 - `jrrp.rank` - 查看今日人品排行榜 - `jrrp.analyse` - 分析你的人品数据统计信息 - `jrrp.clear` - 清除人品数据(支持指定用户和日期) - `jrrp.code` - 使用绑定的识别码获取人品值 - `jrrp.code -s <score>` - 使用识别码查找特定分数对应日期 - `jrrp.code -d <date>` - 使用识别码查找特定日期对应分数 - `jrrp.bind <code>` - 绑定识别码 ## 配置说明 插件配置分为几个主要部分: ### 1. 算法配置 ```yaml algorithm: linear # 计算模式: gaussian(正态分布)/linear(线性同余)/randomorg(真随机) apiKey: '' # Random.org API密钥(使用真随机时需填写) codeHashSecret: '' # 识别码算法密钥(需要6段,使用|分隔) ``` ### 2. 指令配置 ```yaml enableDate: true # 启用日期查询功能 enableScore: true # 启用分数预测功能 enableRank: true # 启用排行榜功能 enableAnalyse: true # 启用数据分析功能 enableCode: false # 启用识别码功能 ``` ### 3. 分数显示配置 ```yaml enableScoreFormat: true # 启用格式化显示 formatDate: '4-1' # 启用特殊显示的日期(留空则常开) scoreFormat: 'simple' # 格式化样式:binary(二进制)/octal(八进制)/hex(十六进制)/simple(简单表达式)/complex(复杂表达式) ``` ### 4. 消息配置 ```yaml template: '{at}你今天的人品值是:{score}{message}\n{hitokoto}' # 消息模板,支持{at}、{username}、{score}、{message}、{hitokoto}、{pixiv}、{image:URL}占位符 imagesPath: 'https://raw.githubusercontent.com/YisRime/koishi-plugin-onebot-tool/main/resource/pixiv.json' # 占位符"{pixiv}"数据地址 enableRange: true # 启用区间消息 enableSpecial: true # 启用特殊消息 # 区间消息配置 rangeMessages: - min: 0 max: 10 message: '……(是百分制哦)' # 更多区间配置... # 特殊消息配置 specialMessages: - condition: '0' # 分数条件 message: '!差评如潮!' - condition: '4-1' # 日期条件(MM-DD) message: '!愚人节快乐!' # 更多特殊消息... ``` ## 算法详解 ### 线性同余算法 (linear) 使用线性同余生成器算法,通过线性递归公式生成随机数,具有较快的计算速度和均匀的分布特性。 ### 正态分布算法 (gaussian) 使用正态分布(高斯分布)计算,产生的随机数围绕中间值(50)聚集,两端(0和100)的概率较低,更符合真实世界的分布特性。 ### Random.org API (randomorg) 通过调用Random.org的API获取基于大气噪声的真随机数。需要提供API密钥,当API调用失败时会自动降级至本地算法。 ## 显示格式 插件支持多种人品值的显示格式,可以增加趣味性: ### 二进制 (binary) 例如: `你今天的人品值是:110010`(表示50) ### 八进制 (octal) 例如: `你今天的人品值是:62`(表示50) ### 十六进制 (hex) 例如: `你今天的人品值是:32`(表示50) ### 简单表达式 (simple) 例如: `你今天的人品值是:(6+4)*5`(表示50) ### 复杂表达式 (complex) 例如: `你今天的人品值是:(5+5)*5`(表示50) ## 数据分析功能 使用`jrrp.analyse`命令可以查看个人的人品数据统计信息,包括: - 运气类型判定和平衡度指示 - 平均分、最高分和最低分记录 - 熵值分析(随机程度)和极值分析(出现频率) - 分数趋势图(走势分析) - 分布热图(直观展示分数分布密度) - 最近10条人品记录展示(表格形式) ## 消息配置 消息模板支持{at}、{username}、{score}、{message}、{hitokoto}、{image:URL}占位符。 {at}: @用户、{username}: 用户名、{score}: 用户获得的分数、{message}: 区间消息或特殊消息; {hitokoto}: 一言,支持参数,如{hitokoto:c=a&c=b}、{image:URL}: 将 URL 替换为图片链接,返回对应图片。 {pixiv}占位符支持返回自定义的图片,默认数据源自于 [Omega Miya](https://github.com/Ailitonia/omega-miya),本人仅作简单处理。 若需自定义图片数据,请设置 `imagesPath` 以使用本地文件夹或下载外置链接列表。 下载 JSON 数据格式为每行一个图片直链,已自动添加 Referer 请求头,无需特殊处理即可获取 Pixiv 图片。 支持显示多行文本,使用 \n 进行换行,支持显示多段文本,使用{~}占位符进行分隔。 区间消息和特殊消息支持触发条件重复,如果重复则会随机选择一条进行显示。 ## 数据管理 使用`jrrp.clear`命令可以清除人品数据,需要管理员权限(authority 4),该命令支持以下选项: - `-u <userId>` 指定要清除数据的用户ID - `-d <date>` 指定要清除数据的日期 - `-f` 强制删除整个数据表(谨慎使用,会导致所有数据丢失且不可恢复) ## 识别码功能 当配置了`codeHashSecret`并启用`enableCode`后,用户可以绑定启动器的识别码。 仅作为额外功能提供,具体算法请自行获取 ### 绑定识别码 使用`jrrp.bind XXXX-XXXX-XXXX-XXXX`命令绑定识别码。 ### 使用识别码获取人品值 绑定后,可使用`jrrp.code`命令获取与启动器一致的今日人品值。 ### 特殊效果 - 获得100分时会提示解锁隐藏主题 - 获得0分时会显示特殊的确认提示 ## 排行榜功能 使用`jrrp.rank`命令查看当日所有用户的人品排名,包括自己的排名和总参与人数。