# rollpig-plugin **Repository Path**: fox-glaze/rollpig-plugin ## Basic Information - **Project Name**: rollpig-plugin - **Description**: 移植于NoneBot 的小猪抽取插件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-29 - **Last Updated**: 2026-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RollPig Plus for TRSS-Yunzai 移植自 [Felis2026/nonebot-plugin-rollpig-plus](https://github.com/Felis2026/nonebot-plugin-rollpig-plus)(NoneBot2 → TRSS-Yunzai V3 插件)。 ## 安装教程 请将 rollpig-plugin 放置在 Yunzai-Bot 的 plugins 目录下,重启 Yunzai-Bot 后即可使用。 推荐使用 git 进行安装,以方便后续升级。在 Yunzai 根目录打开终端,运行 ```bash git clone https://gitee.com/fox-glaze/rollpig-plugin.git ./plugins/rollpig-plugin/ ``` 本插件无需安装额外依赖(依赖 Yunzai 自带的 lodash 与渲染器),如遇依赖缺失可在 Yunzai 根目录执行 `pnpm i`。 ## 指令 | 指令 | 说明 | | --- | --- | | 今日小猪 / 今天是什么小猪 | 抽取或查看今日小猪(每天一次,重复查看不变) | | 昨日小猪 | 昨日回顾;漏签自动补签(卡片带"补签"标记) | | 明日小猪 | 明日运势预测(整活) | | 我的猪圈 [页码] | 收藏数量、收藏率、本命猪等统计 + 本人已点亮的图鉴长图(30 只/页) | | 小猪图鉴 [页码] | 图片版图鉴(165 只猪,30 只/页,未解锁显示剪影) | | 今日烤猪 | 把自己的今日小猪做成料理 | | 烤群友 @目标 | 烤群友;目标未抽猪时自动建立预约烤猪 | | 加入 / 加入烤猪 | 回复预约通知加入柴堆(也可点通知按钮) | | 随机烤猪 | 从本群今日已抽猪成员中随机选目标 | | 加急生火 @目标 | 必成功烤猪,每日一次 | | 随机小猪 [数量] / 找猪 关键词 | PigHub 图库随机 / 搜索 | | 小猪投稿 | 投稿入口 | | 同步小猪资源 | 查看资源状态(主人) | | 小猪更新 / 小猪强制更新 | 调用 Yunzai 自带更新器拉取最新代码(主人;更新成功会自动重启) | | 小猪更新日志 | 最近 10 条提交(含当前版本号) | | 小猪日报 [开启/关闭/状态] [群号] | 群日报开关(默认关;本群需群主/管理员,其他群需主人) | | 小猪帮助 | 指令帮助 | QQBot 官方渠道自动以 markdown 消息发送并附带按钮(与 genshin 插件的按钮机制一致); 小猪消息在官方渠道不套 HTML 卡片,而是「markdown 标题 → 小猪原图 → 【名字】/叫声/解析」, 观感与官方渠道原版一致;按钮统一为「点击发送文本」型(`action.type=2`),群聊/私聊都能显示。 按钮排布:主按钮 **3 列 × 4 排**(3 列在手机上不会把标题挤成「🐷 今日…」),图鉴/我的猪圈 会再加 1 排「⬅️ 上一页 / 📄 当前页 / 下一页 ➡️」,合计 5 排(QQ 键盘上限)。 按钮都带 `#` 前缀(避免误触别的插件),点击即发 `#今日小猪` 这类完整指令; 需要补参数的按钮(🔍 找猪)写成 `input + send:false`,点击只把 `#找猪 ` 填进输入框等你接关键词。 其他渠道(icqq 等)发送 HTML 卡片/图片 + 文本。 ## 玩法规则(与原插件一致) - **每日抽取**:每用户每天只产生一次正式抽取,连续跨天重复会提高新猪权重(保底)。 - **EX Lv.**:`重复次数 - 1 + 加餐成长`,上限 5 级;烤猪加餐每天一次(普通烤成功 / 参与预约成功结算)。 - **烤群友**:成功 60% / 逃脱 30% / 反噬 10%;普通充能上限 2 次,每 8 小时恢复 1 次。 - **预约烤猪**:目标未抽猪时建预约(主厨扣充能),最多 12 人,目标抽猪后自动开烤结算。 - **特殊形态**:熟食 / 人类 / 已吃 / 售罄形态不能被烤,反噬规则同步移植。 ## 与原插件的差异 - 渲染由 Pillow 改为 HTML + TRSS puppeteer(QQBot 官方渠道改用 markdown 文本 + 原图,不渲染卡片)。 - 已移植:**EX 差分资源包 overlay**(`#同步小猪资源` 拉官方公开包,见下)、**GIF 小猪**(同名 `.gif` 优先于 `.png`)、 **群日报**(见下)、**共享烤猪文案库**(`pig.felislab.cc` 的公开静态资源,3912 条文案,见下)。 - 未移植:RollPig Cloud 多实例同步、AI 烤猪文案、烤箱续火投票。 这些要么依赖原插件的服务端(Cloud 没有公共地址,需自建 FastAPI+MySQL),要么依赖原插件的 渠道能力与一整套新基础件(续火投票需要群日活表 + OneBot11 表情回应,且 ICQQ 不支持); AI 文案需要接一个 LLM。日报的「猪圈见闻/今日头条/事件追踪」三段叙述(依赖 `DAILY_REPORT_*` 文案池 + 门限/稳定哈希选段)也还没做,当前日报只有速览 + 三类排行 + 次日保护券。 - 数据存储:`plugins/rollpig-plugin/data/rollpig.json`(自动清理 14 天前历史)。 ## EX 差分 / overlay 抽到带差分的猪时,卡片按其 EX 等级显示对应形态(图片 + 描述 + 解析),规则与原插件一致: 把 1..N 级差分**逐级稀疏覆盖**,差分图文件名固定为 `{pigId}_ex{N}.png|.gif`(同名 `.gif` 优先)。 ```bash # 主人发送(会从公开静态资源下载,无需 key,也没有账号) #同步小猪资源 ``` 下载内容落在 `resources/overlays/official-ex/`(`pig_ex_variants.json` + `images/*_ex{N}.*`), 按 manifest 里的 sha256 校验,重复执行只会补缺。 也可以放自己的 overlay:`resources/overlays/<名字>/` 下支持 | 文件 | 作用 | | --- | --- | | `pig_overrides.json` | 覆盖已有猪的字段,如 `{"black-pig":{"description":"..."}}` | | `pig_ex_variants.json` | EX 差分,`{"schema_version":1,"pigs":{"black-pig":{"levels":{"2":{"description":"..."}}}}}` | | `images/` | 差分图 `{pigId}_ex{N}.png|.gif`,或直接放 `{pigId}.png` 覆盖基础图 | | `pig.json` | 保留字段(追加新猪暂未参与抽取,本移植版不改变猪的总数) | 多个 overlay 按目录名排序,后面的覆盖前面的。 ## 更新插件 ```bash #小猪更新 # 主人;走 Yunzai 自带更新器:git pull → 依赖有变动就装 → 自动重启 #小猪强制更新 # 本地改乱了:先 reset 到远端分支再 rebase(会丢弃本地改动,慎用) #小猪更新日志 # 最近 10 条提交 + 当前版本号 ``` 做法与 `xiaofei-plugin` 一致:复用 `plugins/other/update.js` 的自带更新器, 冲突/鉴权失败会给出中文提示,更新成功后自动重启,重启完成再回一条“重启成功”。 ## 锅巴(Guoba)后台配置 插件自带 `guoba.support.js`,装了 [Guoba-Plugin](https://gitee.com/guoba-yunzai/guoba-plugin) 的话, 在锅巴面板「插件配置」里能直接看到「小猪插件(RollPig Plus)」,可改: | 分组 | 项目 | | --- | --- | | 群日报 | 开启日报的群号(一行一个)、随机延迟上限、次日保护券门槛 | | 烤猪与文案 | 是否使用共享烤猪文案库、GIF 小猪优先 | | 消息样式 | QQ 官方渠道是否用 markdown 版式、「我的猪圈」是否附图鉴长图 | | 快捷操作 | 同步 EX 差分/文案库、检查更新、拉取更新(带二次确认)、试算各群日报(不发消息) | | 当前数据 | 只读概览:小猪总数、今日抽猪/烤猪数、进行中的预约、EX/文案库版本、今日保护名单 | 运行配置存在 `config/rollpig.json`(不入库,缺项自动补默认值,删掉即恢复默认); 群日报名单直接读写 `data/rollpig.json` 的 `daily_report` 表,和 `#小猪日报` 指令是同一份数据。 ## 群日报 ```bash #小猪日报 开启 # 本群群主/管理员;主人可加群号操作其他群 #小猪日报 关闭 #小猪日报 状态 ``` - 每晚 **23:45** 统计(`scheduleJob` 触发后随机延迟 0–10 分钟发送,**统计截止点固定 23:45**, 之后产生的抽取/互动算次日)。 - 内容:速览三项(小猪数量/普通烤猪/第三项按「预约烤猪 → 成功逃脱 → 意外翻车 → 小猪种类」取第一个非 0)、 三类排行(严选好猪 / 烧烤狂人 / 养猪大户,各前 3、同分并列)、报纸风卡片。 - **次日保护券**:当天被烤成功次数最多且 ≥2 次的一人,次日在该群免烤(名单**先落库再渲染卡片**, 卡片上写的一定生效);加急/后门口令仍然可以破保护。 - 每群每天最多推一次(`daily_report_deliveries` 标记),发送失败不重发。 - 卡片渲染用 puppeteer,未装浏览器的环境日报会失败,其余功能不受影响。 ## 共享烤猪文案库 烤猪文案优先取公开文案库(`pig.felislab.cc/resources/rollpig-roasts/`,约 3900 条,按猪 × 食物组合索引), 命中不到再回落到内置模板;`{k}` 是攻击者、`{v}` 是受害者,PvP 会自动填名字。 ```bash #同步小猪资源 # 同时同步 EX 差分包和共享文案库(主人,失败不影响本体) ``` 文案库落在 `data/roast_library.json`,24 小时内不重复下载。 ## 目录 ``` apps/rollpig.js 指令与消息流程 guoba.support.js 锅巴后台配置(schemas / getConfigData / setConfigData / actions) model/config.js 运行配置(config/rollpig.json,锅巴可改) model/game.js 玩法规则(抽取/成长/烤猪/预约/保护名单) model/store.js JSON 数据存储(防抖原子写) model/appearance.js EX 差分 / overlay 解析与官方包同步 model/roastLibrary.js 共享烤猪文案库同步与取值 model/dailyReport.js 群日报聚合 / 投递 / 23:45 定时任务 model/updater.js 插件自更新(复用 Yunzai 自带更新器 + 更新日志) model/render.js 卡片渲染(今日卡/图鉴分页/昨日卡/日报/QQBot markdown) model/texts.js 文案池(自原插件 texts.py AST 提取) resources/pigs/ 165 只小猪图 + pig.json + pig_rules.json + 文案池 resources/overlays/ EX 差分 overlay(#同步小猪资源 下载到这里) ``` 原插件 MIT License,版权归原作者所有。