1.新增一些配方2.新增红包系统3.WPSConfigSystem中新增用户名替换空白字符机制
This commit is contained in:
40
.tasks/2025-11-17_1_red-envelope-system.md
Normal file
40
.tasks/2025-11-17_1_red-envelope-system.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 背景
|
||||
文件名:2025-11-17_1
|
||||
创建于:2025-11-17_19:43:26
|
||||
创建者:ASUS
|
||||
主分支:main
|
||||
任务分支:未创建
|
||||
Yolo模式:Off
|
||||
|
||||
# 任务描述
|
||||
新增一个红包系统,可以赠送积分,并发起一些小游戏,包括猜谜红包、手气红包、专属红包、口令红包。
|
||||
|
||||
# 项目概览
|
||||
WPS Bot 插件化系统,已存在战斗、炼金、花园等插件,需要在既有积分/背包体系下扩展红包玩法。
|
||||
|
||||
# 分析
|
||||
已查阅 `Plugins/WPSAPI.py` 与 `PWF/CoreModules/plugin_interface.py`:所有插件继承 `WPSAPI`,通过 `register_plugin` 绑定命令,消息发送统一走 `send_markdown_message`,依赖通过 `Architecture.Get` 获取,数据库操作直接使用 `get_db().conn`。
|
||||
积分记录位于 `user_info` 表,由 `WPSConfigAPI` 暴露的 `adjust_user_points/adjust_user_points_sync` 读写;签到、商店、战斗、菜园等模块都以此接口为唯一积分入口,理由是保证同一逻辑下的数据一致性。
|
||||
背包、商店、战斗、菜园等复杂插件都采用“service+plugin”拆分与独立 `DatabaseModel` 定义;红包系统若要支持多种玩法,需要类似的 service 层管理红包生命周期、并通过 API 输出图鉴信息和命令帮助。
|
||||
|
||||
需求补充:
|
||||
- 指令入口拆分:`红包|手气红包 <金额> <人数>`(缺省金额/人数分别由 `ProjectConfig` 读取,默认 100 / 4)、`口令红包 <金额> <人数> <口令>`、`专属红包 <金额> <user_id|用户名>`,统一通过 `抢红包 <红包ID> [tokens]` 领取,口令红包要求 tokens 与口令一致。猜谜红包暂缓实现。
|
||||
- 金额不足直接拒绝发出;红包不限时间,可并行存在且发送者也能参与抢夺;人数不设上限但需合理处理默认值与输入校验。
|
||||
- 红包发出后必须在返回消息中附带红包ID,供玩家在 `抢红包` 指令中引用;需要记录红包状态、剩余份额/金额、领取日志,以及区分不同玩法的附加约束(专属白名单、口令验证等)。
|
||||
|
||||
# 提议的解决方案
|
||||
(待补充:完成调研后填写多个可选实现思路及其优缺点。)
|
||||
|
||||
# 当前执行步骤:"1. 研究需求与代码结构"
|
||||
|
||||
# 任务进度
|
||||
2025-11-17_20:29:15
|
||||
- 已修改:`Plugins/WPSRedPacketService.py` `Plugins/WPSRedPacketBase.py` `Plugins/WPSRandomRedPacket.py` `Plugins/WPSPasswordRedPacket.py` `Plugins/WPSExclusiveRedPacket.py` `Plugins/WPSRedPacketClaim.py`
|
||||
- 更改:实现红包核心服务、三类发包插件与抢红包入口,完成数据库表定义、指令注册与积分结算逻辑。
|
||||
- 原因:支持手气/口令/专属红包以及统一的领取流程。
|
||||
- 阻碍因素:无
|
||||
- 状态:未确认
|
||||
|
||||
# 最终审查
|
||||
|
||||
|
||||
Reference in New Issue
Block a user