koishi-plugin-best-jrrp
Version:
支持真随机的今日人品(运势),可自定义消息,还有节日祝福,甚至还有随机图片哦~
173 lines (117 loc) • 6.5 kB
Markdown
# koishi-plugin-best-jrrp
[](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`命令查看当日所有用户的人品排名,包括自己的排名和总参与人数。