![:astrbot_plugin_fish](https://count.getloli.com/@:astrbot_plugin_fish?theme=capoo-1)

<div align="center">

# 🎣 AstrBot 钓鱼插件

## 🚀 最新更新 🚀

<div style="background: linear-gradient(135deg, #0ea5e9 0%,#86a4f8 100%); padding: 20px; border-radius: 15px; margin: 20px 0; box-shadow: 0 8px 32px hsla(199, 94.70%, 62.70%, 0.89);">

### 🎲 **v2.4.0 骰宝游戏全面重构**

🎉 **重大版本更新！**

🎲 **骰宝游戏全面重构** - 完全重写骰宝游戏系统，图片化UI、多会话支持、独立服务层  
👤 **用户昵称系统** - 新增用户可自行更改昵称功能，个性化体验升级  
🎣 **管理员鱼池管理** - 新增手动重置鱼池功能，方便管理员快速补充资源  
🖼️ **图片化游戏界面** - 骰宝游戏全新图片化UI，美观直观的游戏体验  
⚙️ **灵活配置系统** - 支持倒计时设置、消息模式切换等管理员控制功能  

**立即体验最新版本，感受更丰富的游戏玩法！** 🎊

</div>

</div>

一个功能齐全的钓鱼游戏系统插件，为您的机器人添加有趣的钓鱼休闲游戏。

[![AGPL-3.0 License](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0)
[![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://python.org)
[![AstrBot](https://img.shields.io/badge/AstrBot-Plugin-orange.svg)](https://github.com/astrbot/astrbot)
[![Version](https://img.shields.io/badge/Version-2.4.7-brightgreen.svg)](https://github.com/xxlemon-io/astrbot_plugin_fishing/releases/tag/v2.4.7)
[![Major Update](https://img.shields.io/badge/Major-Update-red.svg)](https://github.com/xxlemon-io/astrbot_plugin_fishing/releases/tag/v2.0.0)

## ✨ 功能特点

<div align="center">

### 🆕 **v2.4.0 重大更新** 🆕

</div>

- **完整的钓鱼游戏系统**：多种鱼类和稀有度，丰富的钓鱼体验
- **可扩展的稀有度系统**：支持1-10星稀有度，新增6-10星颜色映射
- **🆕 全新商店系统**：多商店类型（普通、高级、限时），支持复杂商品机制和成本组合
- **🆕 统一短码系统**：所有物品使用Base36编码，操作更便捷
- **🆕 鱼类市场支持**：鱼类可上架交易，支持匿名上架
- **🆕 偷看鱼塘功能**：查看他人鱼塘，社交互动升级
- **🆕 水族箱系统**：安全存储空间，防偷保护，容量升级机制
- **🆕 交易所系统**：大宗商品交易，动态价格，盈亏分析，容量管理
- **智能区域访问控制**：通行证机制，不同区域有不同的进入要求
- **装备精炼系统**：鱼竿、饰品可精炼升级，提升属性加成
- **装备保护系统**：锁定功能保护高级装备，防止意外操作
- **道具系统**：丰富的道具效果，包括通行证、护符、增益道具等
- **经济系统**：金币、高级货币双货币体系，市场交易系统，用户间转账功能
- **抽卡系统**：多种卡池，限时活动，支持多次十连合并统计
- **社交功能**：排行榜、偷鱼、成就称号系统
- **后台管理**：Web管理界面，支持数据导入导出，灵活配置游戏参数
- **🆕 线程安全优化**：DatabaseConnectionManager提供稳定的数据库连接管理
- **🆕 消息保护机制**：自动截断超长消息，防止显示问题
- **🆕 电鱼功能**：电击其他玩家的鱼塘，包含固定成功率、天罚惩罚（正态分布0-50%）和分段式收益
- **🆕 骰宝游戏全面重构**：完全重写骰宝游戏系统，图片化UI、多会话支持、独立服务层、倒计时系统、丰富的下注类型
- **🆕 用户昵称系统**：用户可自行更改昵称，支持中文、英文、数字和常用符号，个性化体验升级
- **🆕 管理员鱼池管理**：新增手动重置鱼池功能，方便管理员快速补充所有钓鱼区域的稀有鱼配额
- **🆕 命运之轮**：新增命运之轮游戏，高风险高回报的轮盘游戏
- **🆕 批量稀有度出售**：支持按稀有度批量出售鱼类
- **🆕 每日重置时间配置**：可配置每日重置时间点，灵活管理游戏节奏
- **🆕 擦弹炸弹系统**：优化擦弹炸弹功能，增加更多策略性
- **🆕 品质系统**：二元品质系统，鱼类分为普通品质和高品质，高品质鱼按双倍价值出售
- **🆕 稀有度加成修复**：稀有度加成正确影响4-5星鱼概率，6+星鱼保持纯运气机制
- **数据兼容**：支持导入1.4.6版本数据，平滑升级体验

## 🔧 安装方法

1. 将此插件放入 `data/plugins/` 目录。或者安装插件时→从链接安装→本项目地址
2. 重启 AstrBot 或使用插件管理命令加载插件

## 💡 未来计划

如果你有什么想法，欢迎提交issue！期待您天马行空的想法

### 🤝 开发计划

- [x] 分离成就模块，以便于未来拓展
- [x] 丰富图鉴类命令 ➞　图片输出的图鉴命令
- [x] 将部分输出结果改写成输出图片
- [x] 钓鱼区域功能扩展
- [x] 更多经济系统
- [x] 重构商店系统
- [x] 扩展背包，增加道具栏
- [x] 装备保护系统（锁定功能）
- [x] 更多社交玩法

#### 📋 当前开发状态

**2.0版本已完成所有主要功能开发**，目前没有新的功能开发计划。

**后续版本将专注于：**
- 🐛 **Bug修复**：修复用户反馈的问题和已知bug
- 🔧 **性能优化**：提升系统稳定性和响应速度
- 📝 **代码优化**：改进代码质量和可维护性
- 🛡️ **安全加固**：增强系统安全性

如果您有功能建议或发现问题，欢迎在 [Issues](https://github.com/xxlemon-io/astrbot_plugin_fishing/issues) 中提出！
 
## 📦 更新记录

#### v2.4.7 (插件元数据规范化 + 命令文本优化)

- **📦 插件元数据规范化**：优化插件元数据配置，提升插件管理体验
  - 插件名称规范化：`name` 字段改为 `astrbot_plugin_fishing`
  - 新增 `display_name` 字段：保留 `Fishing Another!` 作为显示名称
- **📝 命令文本优化**：统一命令描述文本，将"批量出售"改为"出售所有"

#### v2.4.6 (成就奖励发放修复)

- **🐛 修复成就奖励发放问题**：解决 [#114](https://github.com/xxlemon-io/astrbot_plugin_fishing/issues/114) 中"鸟枪换炮"成就导致数据库锁定的问题
  - 添加物品ID验证机制，防止外键约束失败

#### v2.4.5 (交易所利润税基修复)

- **⚖️ 税基按利润征收**：交易所卖出、清仓仅对正盈利征税，亏损时自动免税，解决 [#109](https://github.com/xxlemon-io/astrbot_plugin_fishing/issues/109) 的不合理扣税  
- **📊 透明提示**：用户消息/税务记录展示“毛收入 + 税基 + 税率 + 免税说明”，便于核对  

#### v2.4.4 (CJK字符显示修复)

- **CJK字符显示修复** - 彻底解决称号中繁体中文、简体中文显示为方框的问题  
- **智能字体回退** - 自动检测并使用CJK字体渲染不支持的字符  

#### v2.4.3 (骰宝系统修复 + 中文数字输入支持 + 完整红包系统)

- **🎲 修复骰宝系统隔离会话模式Bug**：修复了骰宝系统在"隔离会话"模式下无法多人游戏的问题
- **📝 优化骰宝游戏文本描述**：改进了骰宝游戏的提示信息和帮助文档
- **🔢 全面支持中文数字输入**：大部分功能现在都支持中文数字输入
- **🧧 完整红包系统**：新增完整的红包社交互动功能

*感谢 [@Akiyo-dayo](https://github.com/Akiyo-dayo) 的贡献 ([#103](https://github.com/xxlemon-io/astrbot_plugin_fishing/pull/103))*

#### v2.4.2 (称号管理系统 + 文件名安全化 + CJK字体支持)

- **🏆 完整称号管理系统**：新增完整的称号管理功能，支持创建、编辑、删除和授予称号
- **🛡️ 文件名安全化处理**：新增文件名安全化功能，防止特殊字符导致文件系统问题
- **🌏 CJK字体回退支持**：新增CJK字体回退机制，确保缺少的字符正确显示

#### v2.4.1 (交易所状态命令修复 + 鱼类图鉴图标显示功能)

- **🐛 修复交易所状态命令无法识别**：修复了 `/交易所 状态` 命令无法识别的问题
- **🖼️ 鱼类图鉴图标显示功能**：新增鱼类图标在图鉴中的显示支持

#### v2.4.0 (骰宝游戏全面重构 + 用户昵称系统 + 管理员鱼池管理)

- **🎲 骰宝游戏全面重构**：完全重写骰宝游戏系统，带来全新的游戏体验
- **👤 用户昵称更改功能**：新增用户可自行更改昵称的功能
- **🎣 手动重置鱼池功能**：新增管理员手动重置所有钓鱼区域稀有鱼配额的功能

*感谢 [@Akiyo-dayo](https://github.com/Akiyo-dayo) 的贡献 ([#90](https://github.com/xxlemon-io/astrbot_plugin_fishing/pull/90))*


> 📋 **完整更新历史请查看 [CHANGELOG.md](CHANGELOG.md)**

---


![image](https://github.com/user-attachments/assets/4dd1a179-967f-4cb9-82a5-ca3754b80bb0)
![image](https://github.com/user-attachments/assets/c80550e6-86a2-4373-b593-a7e2a8d0ab6b)
![image](https://github.com/user-attachments/assets/b7fd24bc-c0fe-4cee-9431-41b38af665e6)

## 🎣 钓鱼游戏命令手册 🎣

提示：命令中的 [ID] 表示必填参数，<> 表示可选参数。

### 🎣 基础与核心玩法

| 命令 | 别名 | 描述 |
|---|---|---|
| `/注册` | - | 注册新用户 |
| `/钓鱼` | - | 进行一次钓鱼 |
| `/签到` | - | 每日签到 |
| `/自动钓鱼` | - | 开启/关闭自动钓鱼 |
| `/钓鱼区域 [ID]` | `/区域 [ID]` | 查看或切换钓鱼区域（需要通行证的区域会自动消耗） |
| `/钓鱼记录` | `/钓鱼日志`、`/钓鱼历史` | 查看最近钓鱼记录 |
| `/钓鱼帮助` | `/钓鱼菜单`、`/菜单` | 查看帮助菜单 |

### 🎒 背包与资产管理

| 命令 | 别名 | 描述 |
|---|---|---|
| `/状态` | `/我的状态` | 查看个人详细状态 |
| `/背包` | `/查看背包`、`/我的背包` | 查看我的所有物品 |
| `/鱼塘` | - | 查看鱼塘中的所有鱼 |
| `/偷看鱼塘 [@用户]` | `/查看鱼塘 [@用户]`、`/偷看 [@用户]` | 查看其他用户的鱼塘 |
| `/鱼塘容量` | - | 查看当前鱼塘容量 |
| `/升级鱼塘` | `/鱼塘升级` | 升级鱼塘容量 |
| `/水族箱` | - | 查看水族箱中的所有鱼 |
| `/水族箱 帮助` | - | 水族箱系统帮助信息 |
| `/放入水族箱 [FID] [数量]` | `/移入水族箱 [FID] [数量]` | 将鱼从鱼塘移入水族箱 |
| `/移出水族箱 [FID] [数量]` | `/移回鱼塘 [FID] [数量]` | 将鱼从水族箱移回鱼塘 |
| `/升级水族箱` | `/水族箱升级` | 升级水族箱容量 |
| `/鱼竿` | - | 查看我的鱼竿 |
| `/鱼饵` | - | 查看我的鱼饵 |
| `/饰品` | - | 查看我的饰品 |
| `/道具` | `/我的道具`、`/查看道具` | 查看我的道具 |
| `/使用 [短码]` | `/装备 [短码]` | 使用指定短码的物品（R=鱼竿，A=饰品，D=道具，B=鱼饵） |
| `/开启全部钱袋` | `/打开全部钱袋`、`/打开所有钱袋` | 一次性开启所有钱袋类道具 |
| `/精炼 [短码]` | `/强化 [短码]` | 精炼指定短码的鱼竿或饰品（无参数时显示帮助） |
| `/出售 [短码]` | `/卖出 [短码]` | 出售指定短码的物品（R=鱼竿，A=饰品，D=道具） |
| `/锁定 [短码]` | `/上锁 [短码]` | 锁定指定短码的鱼竿或饰品，防止误操作 |
| `/解锁 [短码]` | `/开锁 [短码]` | 解锁指定短码的鱼竿或饰品，允许正常操作 |
| `/金币` | - | 查看金币余额 |
| `/转账 [@用户/用户ID] [金额]` | - | 向指定用户转账金币 |
| `/更新昵称 [新昵称]` | `/修改昵称`、`/改昵称`、`/昵称` | 更新你的游戏昵称（支持中文、英文、数字和常用符号，最多32字符） |
| `/高级货币` | `/钻石`、`/星石` | 查看高级货币余额 |

### 🛒 商店与市场

| 命令 | 别名 | 描述 |
|---|---|---|
| `/全部卖出` | `/全部出售`、`/卖出全部`、`/出售全部`、`/清空鱼` | 一键卖出鱼塘所有鱼 |
| `/保留卖出` | `/保留出售`、`/卖出保留`、`/出售保留` | 卖出所有鱼但每种保留一条 |
| `/砸锅卖铁` | `/破产`、`/清空`、`/清仓` | 出售所有未锁定且未装备的鱼竿、饰品和全部鱼类 |
| `/出售稀有度 [1-5]` | `/稀有度出售 [1-5]`、`/出售星级 [1-5]` | 卖出指定稀有度的鱼 |
| `/出售所有鱼竿` | `/出售全部鱼竿`、`/卖出所有鱼竿`、`/卖出全部鱼竿`、`/清空鱼竿` | 一键出售所有(非在用/非保护)鱼竿（逐件按新规则计价） |
| `/出售所有饰品` | `/出售全部饰品`、`/卖出所有饰品`、`/卖出全部饰品`、`/清空饰品` | 一键出售所有(非在用/非保护)饰品（逐件按新规则计价） |
| `/商店` | - | 查看商店列表或指定商店详情（支持多商店系统） |
| `/商店购买 [商店ID] [商品ID] [数量]` | `/购买商店商品 [商店ID] [商品ID] [数量]`、`/购买商店 [商店ID] [商品ID] [数量]` | 从指定商店购买商品（数量默认为1，支持复杂成本机制） |
| `/市场` | - | 查看玩家交易市场 |
| `/上架 [短码] [价格] [数量] [匿名]` | - | 将物品上架到市场（R=鱼竿，A=饰品，D=道具，F=鱼类） |
| `/购买 [ID]` | - | 从市场购买商品 |
| `/我的上架` | `/上架列表`、`/我的商品`、`/我的挂单` | 查看我上架的商品 |
| `/下架 [ID]` | - | 下架我的商品 |

### 💰 出售定价与配置（鱼竿/饰品）

- 系统回收价计算：`售价 = 基础价(按稀有度) × 精炼等级乘数`
- 适用范围：`/出售 [短码]`、`/出售所有鱼竿`、`/出售所有饰品`
- 批量出售会跳过正在装备的物品

配置示例（位于插件运行时装配的 `game_config` 中）：

```json
{
  "sell_prices": {
    "rod": { "1": 100, "2": 500, "3": 2000, "4": 5000, "5": 10000 },
    "accessory": { "1": 100, "2": 500, "3": 2000, "4": 5000, "5": 10000 },
    "refine_multiplier": {
      "1": 1.0, "2": 1.6, "3": 3.0, "4": 6.0, "5": 12.0,
      "6": 25.0, "7": 55.0, "8": 125.0, "9": 280.0, "10": 660.0
    }
  }
}
```

- 你可以按需调整不同稀有度的基础价，或调整各精炼等级的乘数曲线（当前默认为递增、近指数型曲线，鼓励高精炼装备的投资回报）。
- 市场玩家间交易价格不受上述配置限制，由卖家自定。


### 🛒 全新商店系统说明（2.0版本）

- **多商店类型**：支持普通商店、高级商店、限时商店三种类型
- **复杂商品机制**：支持多种成本类型组合（金币、高级货币、鱼竿、饰品、道具）
- **成本分组系统**：支持复杂的成本组合逻辑，组内支持AND/OR关系
- **时间控制**：支持商店营业时间、每日营业时间、商品限时销售
- **限购机制**：支持每人限购、每日限购等购买限制
- **库存管理**：支持商品库存控制和销售统计
- **商品类型扩展**：支持鱼竿、饰品作为商店商品
- **Web管理**：管理员可通过Web界面管理商店和商品
- **🆕 品质系统支持**：完全支持鱼类品质系统，购买奖励自动放入水族箱
- **🆕 智能资源扣除**：支持按品质扣除鱼类成本，优化资源管理逻辑

#### 商店命令使用示例

```
/商店                    # 查看所有商店列表
/商店 1                  # 查看商店1的详情和商品
/商店购买 1 2 5          # 从商店1购买商品2，数量5个
```

### 🐟 鱼类市场系统（2.0版本）

- **鱼类交易**：支持鱼类上架到市场进行交易
- **匿名上架**：支持匿名上架商品，保护卖家隐私
- **统一上架**：使用 `/上架 [短码] [价格] [数量] [匿名]` 命令
- **鱼类短码**：鱼类使用 `F` 开头的短码（如 F3）
- **市场显示**：市场中的鱼类会显示稀有度和价值信息
- **⚠️ 手续费政策**：市场下架商品时**不返还**上架手续费，防止玩家通过频繁上架下架规避每日税收系统

#### 鱼类市场使用示例

```
/上架 F3 100 5          # 上架鱼类F3，价格100金币，数量5个
/上架 F5 500 1 匿名     # 匿名上架鱼类F5，价格500金币，数量1个
/市场                    # 查看市场中的鱼类和其他商品
```

### 🔍 偷看鱼塘功能（2.0版本）

- **查看他人鱼塘**：可以查看其他用户的鱼塘和鱼类收藏
- **隐私保护**：只能查看鱼塘内容，不能进行其他操作
- **统计信息**：显示目标用户的总鱼数和总价值
- **稀有度分组**：按稀有度分组显示鱼类，便于查看

#### 偷看鱼塘使用示例

```
/偷看鱼塘 @用户          # 查看指定用户的鱼塘
/偷看鱼塘 123456789     # 查看指定用户ID的鱼塘
```

### 🐠 水族箱系统（2.0版本）

- **安全存储空间**：水族箱中的鱼不会被偷取，提供完全保护
- **容量管理**：默认50条容量，支持10级升级（最高2000条）
- **智能转移**：支持鱼塘与水族箱之间的双向转移
- **市场集成**：从市场购买的鱼默认放入水族箱
- **升级机制**：使用金币和钻石升级容量，费用递增
- **统一短码**：使用F开头的短码（如F3）进行操作

#### 水族箱使用示例

```
/水族箱                 # 查看水族箱中的鱼
/水族箱 帮助            # 查看水族箱系统帮助
/放入水族箱 F3 5        # 将5条F3鱼从鱼塘移入水族箱
/移出水族箱 F3 2        # 将2条F3鱼从水族箱移回鱼塘
/升级水族箱             # 升级水族箱容量
```

### 💼 交易所系统（2.1.0版本）

- **大宗商品交易**：支持鱼干、鱼油、鱼卵等大宗商品的买卖交易
- **动态价格系统**：商品价格每日波动，模拟真实市场环境
- **容量管理**：总持仓上限1000份，增加策略性投资决策
- **腐败机制**：商品有腐败时间，过期后自动清理
- **盈亏分析**：详细的买入卖出盈亏分析，帮助用户了解投资表现
- **市场集成**：大宗商品可上架到玩家市场进行交易
- **税收系统**：交易收取5%税费，增加经济平衡性
- **统一短码**：使用C开头的短码（如C1A）进行操作

#### 交易所命令

| 命令 | 别名 | 描述 |
|---|---|---|
| `/交易所` | - | 查看交易所主菜单和市场状态（等同于 `/交易所 状态`） |
| `/交易所 开户` | - | 开通交易所账户（花费100,000金币） |
| `/交易所 状态` | `/交易所 status` | 查看当前市场状态和商品价格 |
| `/交易所 买入 [商品名称] [数量]` | - | 购买指定数量的大宗商品 |
| `/交易所 卖出 [商品名称]` | - | 卖出所有指定商品 |
| `/交易所 卖出 [CID] [数量]` | - | 按ID卖出指定数量商品 |
| `/交易所 历史 [商品] [天数]` | - | 查看价格历史曲线（默认7天，最多30天） |
| `/交易所 分析 [商品] [天数]` | - | 查看市场分析（均线、波动率、RSI、趋势建议） |
| `/持仓` | - | 查看我的大宗商品库存 |
| `/清仓` | - | 清空所有大宗商品库存 |
| `/清仓 [商品名称]` | - | 清空指定商品库存 |
| `/清仓 all` | - | 清空所有大宗商品库存 |

#### 交易所系统特点

**🔄 动态价格机制**
- 每日价格波动，基于趋势、随机性和特殊事件
- 价格在合理范围内波动，避免极端情况
- 支持价格历史查询和趋势分析
- 🆕 **可配置更新时间**：通过 `update_timing` 配置项自定义价格更新时间点（默认 9:00、15:00、21:00）

**📦 商品腐败系统**
- 鱼干：1-3天腐败时间（每日固定）
- 鱼油：1-3天腐败时间（每日固定）
- 鱼卵：1-3天腐败时间（每日固定）
- 腐败商品自动清理，不返还成本

**💰 盈亏分析功能**
- 详细显示总成本、总收入、净盈亏
- 计算盈利率，帮助用户了解投资表现
- 单项商品盈亏分析，清仓时显示详细统计

**🏪 市场集成**
- 大宗商品可上架到玩家市场
- 支持匿名上架，保护卖家隐私
- 市场购买的商品自动入库到交易所

**⚖️ 容量与税收**
- 总持仓上限：1000份（可配置）
- 交易税率：5%（可配置）
- 上架商品仍占用容量，被购买后释放

**⚙️ 可配置参数**
- `update_timing`：价格更新时间点，格式 `"HH:MM, HH:MM, ..."`，支持多种分隔符（默认 `"9:00, 15:00, 21:00"`）
- `account_fee`：交易所开户费用（默认100,000金币）
- `capacity_limit`：总持仓上限（默认1000份）
- `trade_tax_rate`：交易税率（默认5%）

**📈 价格历史与市场分析（v2.3.6新增）**
- 价格历史曲线：支持Sparkline可视化图表，直观展示价格走势
- 市场分析工具：提供MA（移动平均线）、波动率、RSI（相对强弱指数）等技术指标
- 趋势判断：自动识别上涨、下跌、平稳趋势
- 投资建议：基于技术指标提供智能投资建议
- 灵活查询：支持单商品或全市场查询，时间窗口1-30天可调
- 价格获取优化：优先使用今日价格，无则回退到昨日价格，提高系统稳定性
- 时间窗口控制：避免重复更新，确保价格数据一致性

#### 交易所使用示例

```
/交易所                 # 查看交易所主菜单
/交易所 开户            # 开通交易所账户
/交易所 状态            # 查看当前市场价格
/交易所 买入 鱼油 10     # 购买10份鱼油
/持仓                   # 查看我的商品库存
/交易所 卖出 鱼油       # 卖出所有鱼油
/清仓                   # 清空所有库存
/上架 C1A 1000 5        # 上架5份C1A商品到市场
/交易所 历史            # 查看所有商品的7天价格历史
/交易所 历史 鱼油       # 查看鱼油的7天价格历史
/交易所 历史 鱼油 14     # 查看鱼油的14天价格历史
/交易所 分析            # 分析所有商品的市场趋势
/交易所 分析 鱼干       # 分析鱼干的市场趋势和投资建议
```

#### 盈亏分析示例

```
✅ 成功出售所有 5份 鱼油
💰 获得 15000 金币（已扣除 750 交易税）

📊 盈亏分析：
• 总成本：12000 金币
• 总收入：15750 金币
• 净盈亏：+3750 金币 📈盈利
• 盈利率：+31.3%
```

#### 价格历史示例

```
【📈 价格历史】
区间: 近7天
══════════════════════════════
鱼油: ▁▂▃▅▆▇█▆
  起始 2,800 → 当前 3,200 变化 +400 (+14.3%)
鱼干: ▃▄▅▄▃▂▁▂
  起始 1,200 → 当前 1,100 变化 -100 (-8.3%)
──────────────────────────────
时间刻度: 10-20 | 10-23 | 10-26
══════════════════════════════
💡 用法：交易所 历史 [商品] [天数]；最多30天。
```

#### 市场分析示例

```
【📊 市场分析】
窗口: 近7天
══════════════════════════════
鱼油
  当前价: 3,200
  均线: MA3=3150  MA5=3080  MA7=3000
  波动率: 12.5%  RSI: 65
  趋势: rising  建议: 趋势向上，可考虑顺势少量买入
────────────────────────────
鱼干
  当前价: 1,100
  均线: MA3=1120  MA5=1150  MA7=1180
  波动率: 8.3%  RSI: 35
  趋势: falling  建议: 趋势向下，谨慎观望或逢反弹减仓
────────────────────────────
💡 提示：指标仅供参考，注意风险控制。
用法: 交易所 分析 [商品] [天数]
```

### 🎮 新游戏玩法（2.2.0版本）

#### ⚡ 电鱼功能

- **电击鱼塘**：可以电击其他玩家的鱼塘，偷取大量鱼类
- **成功率机制**：
  - 基础成功率可配置（默认60%）
- **天罚机制**：电鱼失败会遭受天罚，扣除当前金币的0-最大天罚比例（正态分布，可配置）
  - ⚡ 轻微天罚（0-20%相对强度）：小惩大诫
  - ⚡⚡ 中度天罚（20-50%相对强度）：普通惩罚（最常见）
  - ⚡⚡⚡ 严重天罚（50-80%相对强度）：损失惨重
  - ⚡⚡⚡⚡ 毁灭性天罚（80-100%相对强度）：最严重惩罚
  - 天罚等级基于相对惩罚强度判断，会随配置的最大天罚比例动态调整
- **分段式收益**：根据成功的幸运度分为三个档次
  - ⭐大成功：获得目标鱼塘15%-20%的鱼
  - ✅普通成功：获得目标鱼塘10%-15%的鱼
  - 🔹小成功：获得目标鱼塘5%-10%的鱼
- **高星鱼保护**：最多只能获得一条5星及以上的鱼
- **冷却机制**：电鱼有冷却时间（默认2小时），成功和失败都会触发CD
- **功能开关**：管理员可通过配置文件控制电鱼功能的启用/禁用
- **道具交互**：与守护海灵、破灵符、暗影斗篷、驱灵香等道具完全兼容

#### 🎲 骰宝游戏（v2.4.0全面重构）

- **图片化UI界面**：美观直观的游戏体验，支持图片/文本双模式
- **多会话游戏支持**：不同群聊可同时进行游戏，互不干扰
- **倒计时系统**：可配置的倒计时时间（默认60秒），管理员可调整
- **丰富的下注类型**：
  - 大小：大（11-17点）、小（4-10点）
  - 单双：单（奇数）、双（偶数）
  - 豹子：三个骰子相同（赔率1:24）
  - 指定点数：一点、二点、三点、四点、五点、六点（根据出现次数确定赔率）
  - 总点数：4点、5点、6点...17点（不同点数不同赔率）
- **完整的赔率表系统**：支持多种赔率配置，公平透明
- **实时游戏状态**：可随时查看当前游戏状态和下注情况
- **管理员控制功能**：强制结算、倒计时设置、消息模式切换

#### 🎰 命运之轮

- **轮盘游戏**：高风险高回报的策略性轮盘游戏
- **多轮挑战**：支持10层挑战，可以随时继续或放弃
- **高风险定位**：起始成功率65%，符合轮盘游戏的刺激特性
- **第1层诱惑**：第1层期望微盈利（0.75%），吸引玩家尝试
- **风险递增**：第2层开始期望亏损，成功率从60%递减至20%
- **高倍率奖励**：通关倍率高达数百倍，刺激冒险玩家挑战
- **每日限制**：每天最多可玩3次（可配置），平衡游戏经济
- **庄家优势**：整体House Edge约67%，确保长期回收货币

#### 📦 批量稀有度出售

- **按稀有度出售**：支持按稀有度批量出售鱼类
- **提升效率**：快速清理低稀有度鱼类
- **灵活选择**：可以选择出售特定稀有度的鱼类
- **价格优化**：按稀有度分别计算出售价格

### 🎫 通行证机制说明

- **智能通行证系统**：特定钓鱼区域需要持有对应通行证才能进入
- **自动消耗机制**：使用 `/钓鱼区域 [ID]` 切换区域时，如果该区域需要通行证，系统会自动消耗一个通行证
- **通行证道具**：通行证道具设置为不可直接使用，防止误操作消耗
- **区域配置**：管理员可通过Web后台或命令设置各区域的通行证要求
- **成本透明**：每个区域都会显示钓鱼消耗和通行证要求，帮助用户做出明智选择

### ✨ 稀有度系统说明（2.0版本）

- **扩展稀有度**：支持1-10星稀有度，打破传统5星限制
- **颜色映射**：新增6-10星稀有度专属颜色显示
  - 6星：深蓝色
  - 7星：紫色
  - 8星：金色
  - 9星：彩虹色
  - 10星：传说色（特殊效果）
- **图鉴显示**：鱼类图鉴中高稀有度鱼类使用对应颜色显示
- **🆕 鱼类图标支持**：图鉴中支持显示鱼类图标，管理员可在添加新鱼时填入图标URL
  - 图标显示在卡片左侧（50x50像素），自动缩放保持比例
  - 支持常见图片格式，自动处理透明背景
  - 图标缓存7天，提升加载速度
  - 建议使用可公开访问的图床服务（如GitHub、Imgur等）
- **背包显示**：装备背包中稀有度星级使用对应颜色

### 🎯 品质系统说明（2.3.0版本）

- **二元品质系统**：鱼类分为普通品质（0）和高品质（1）两种类型
- **高品质触发**：装备品质加成触发高品质鱼，使用对数压缩公式避免概率过高
- **价值翻倍**：高品质鱼按双倍价值出售，提升装备搭配的意义
- **堆叠存储**：普通品质和高品质鱼分别堆叠存储，便于管理
- **可配置概率**：管理员可通过 `quality_bonus_max_chance` 配置项调整最大触发概率（默认35%）
- **装备协同**：鱼竿、饰品、鱼饵的品质加成乘法累积，鼓励装备搭配
- **稀有度加成修复**：稀有度加成（rare_chance）正确影响4-5星鱼概率，6+星鱼保持纯运气机制

### 🎰 抽卡与概率玩法

| 命令 | 别名 | 描述 |
|---|---|---|
| `/抽卡 [卡池ID]` | `/抽奖 [卡池ID]` | 进行单次抽卡 |
| `/十连 [卡池ID] [次数]` | - | 进行十连抽卡，支持多次十连合并统计 |
| `/查看卡池 [ID]` | `/卡池` | 查看卡池详情 |
| `/抽卡记录` | - | 查看我的抽卡记录 |

**🎯 多次十连抽卡功能说明：**
- 单次十连：`/十连 1` - 进行1次十连抽卡
- 多次十连：`/十连 1 5` - 进行5次十连抽卡，自动合并统计结果
- 合并统计包含：消耗统计、稀有度分布（1-10星）、物品数量统计、金币总计
- 最多支持100次十连，防止单次操作过多
- 支持显示6-10星超稀有物品的统计
- 自动计算并显示总消耗的金币或高级货币

| `/擦弹 [金额]` | - | 进行擦弹游戏 (可填allin/halfin) |
| `/擦弹记录` | `/擦弹历史` | 查看我的擦弹记录 |
| `/开庄` | - | 开启骰宝游戏，倒计时供玩家下注 |
| `/大 [金额]` | - | 下注"大"（总点数11-17） |
| `/小 [金额]` | - | 下注"小"（总点数4-10） |
| `/单 [金额]` | - | 下注"单"（总点数为奇数） |
| `/双 [金额]` | - | 下注"双"（总点数为偶数） |
| `/豹子 [金额]` | - | 下注"豹子"（三个骰子相同） |
| `/一点 [金额]` | `/二点 [金额]`、`/三点 [金额]`、`/四点 [金额]`、`/五点 [金额]`、`/六点 [金额]` | 下注指定点数出现 |
| `/4点 [金额]` | `/5点 [金额]`、`/6点 [金额]`、`/7点 [金额]`、`/8点 [金额]`、`/9点 [金额]`、`/10点 [金额]`、`/11点 [金额]`、`/12点 [金额]`、`/13点 [金额]`、`/14点 [金额]`、`/15点 [金额]`、`/16点 [金额]`、`/17点 [金额]` | 下注总点数 |
| `/骰宝状态` | `/游戏状态` | 查看当前骰宝游戏状态 |
| `/我的下注` | `/下注情况` | 查看本局游戏中的下注情况 |
| `/骰宝帮助` | `/骰宝说明` | 查看骰宝游戏帮助 |
| `/骰宝赔率` | `/骰宝赔率表`、`/赔率` | 查看骰宝赔率详情 |
| `/命运之轮 [金额]` | - | 开始命运之轮游戏 |
| `/继续` | - | 继续命运之轮游戏 |
| `/放弃` | - | 放弃命运之轮游戏 |

#### 擦弹功能优化（2.0版本）
- **消息格式优化**：简化擦弹结果消息，突出关键信息
- **抑制通知**：添加服务器级别抑制状态检查，避免消息刷屏
- **智能显示**：根据擦弹结果智能调整消息长度和内容
##### 理论概率分布

| 区间 | 倍率范围        | 权重  | 概率    | 平均倍率 | 说明       |
|------|-----------------|-------|---------|----------|------------|
| 1    | 0.0-0.2倍       | 10000 | 11.47%  | 0.1倍    | 严重亏损   |
| 2    | 0.2-0.5倍       | 18000 | 20.65%  | 0.3倍    | 普通亏损   |
| 3    | 0.5-0.8倍       | 15000 | 17.21%  | 0.7倍    | 小亏损     |
| 4    | 0.8-1.2倍       | 25000 | 28.68%  | 1.0倍    | 小赚       |
| 5    | 1.2-2.0倍       | 14100 | 16.18%  | 1.6倍    | 中赚       |
| 6    | 2.0-3.0倍       | 4230  | 4.85%   | 2.5倍    | 大赚       |
| 7    | 3.0-6.0倍       | 705   | 0.81%   | 4.5倍    | 超大赚     |
| 8    | 6.0-15.0倍      | 106   | 0.12%   | 10.5倍   | 高倍率     |
| 9    | 15.0-50.0倍     | 21    | 0.02%   | 32.5倍   | 超级大奖   |
| 10   | 50.0-200.0倍    | 7     | 0.01%   | 125.0倍  | 传说级奖励 |
| 11   | 200.0-1500.0倍  | 1     | 0.00%   | 850.0倍  | 神话级奖励 |

### 👥 社交功能

| 命令 | 别名 | 描述 |
|---|---|---|
| `/排行榜` | `/phb` | 查看金币排行榜 |
| `/偷鱼 [@用户]` | - | 偷取指定用户的一条鱼 |
| `/电鱼 [@用户]` | - | 电击指定用户的鱼塘，有成功率和天罚惩罚，成功后收益分三档 |
| `/驱灵 [@用户]` | - | 驱散目标的海灵守护（需持有驱灵香） |
| `/偷看鱼塘 [@用户]` | `/查看鱼塘 [@用户]`、`/偷看 [@用户]` | 查看其他用户的鱼塘和鱼类收藏 |
| `/查看称号` | `/称号` | 查看我拥有的称号 |
| `/使用称号 [ID]` | - | 装备指定ID称号 |
| `/查看成就` | `/成就` | 查看我的成就进度 |
| `/税收记录` | - | 查看我的税收记录 |
| `/鱼类图鉴` | `/图鉴` | 查看已解锁的鱼类图鉴（支持显示鱼类图标） |
| `/发红包 [金额] [数量] [类型] [口令]` | `/发放红包` | 发送红包（支持中文数字输入） |
| `/领红包 [红包ID] [口令]` | `/抢红包`、`/拿红包`、`/取红包`、`/领取红包` | 领取红包（口令红包需要输入口令） |
| `/红包列表` | `/红包`、`/查看红包列表` | 查看当前群聊的所有活跃红包 |
| `/红包详情 [红包ID]` | `/查看红包` | 查看红包详细信息和领取记录 |
| `/撤回红包 [红包ID]` | `/撤销红包`、`/取消红包` | 撤回自己发送的未领完红包 |

### ⚙️ 管理后台（管理员）

| 命令 | 别名 | 描述 |
|---|---|---|
| `/修改金币 [用户ID] [数量]` | - | 修改用户金币 |
| `/奖励金币 [用户ID] [数量]` | - | 奖励用户金币 |
| `/扣除金币 [用户ID] [数量]` | - | 扣除用户金币 |
| `/修改高级货币 [用户ID] [数量]` | - | 修改高级货币 |
| `/奖励高级货币 [用户ID] [数量]` | - | 奖励高级货币 |
| `/扣除高级货币 [用户ID] [数量]` | - | 扣除高级货币 |
| `/全体奖励金币 [数量]` | - | 给所有用户发放金币 |
| `/全体奖励高级货币 [数量]` | - | 给所有用户发放高级货币 |
| `/全体扣除金币 [数量]` | - | 从所有用户扣除金币 |
| `/全体扣除高级货币 [数量]` | - | 从所有用户扣除高级货币 |
| `/全体发放道具 [道具ID] [数量]` | - | 给所有用户发放指定道具（管理员） |
| `/开启钓鱼后台管理` | - | 启动 Web 管理后台（管理员） |
| `/关闭钓鱼后台管理` | - | 关闭 Web 管理后台（管理员） |
| `/代理上线 [用户ID]` | `/login [用户ID]` | 扮演指定用户，方便调试（管理员） |
| `/代理下线` | `/logout` | 结束扮演（管理员） |
| `/同步初始设定` | `/同步设定`, `/同步数据`, `/同步` | 从 initial_data.py 同步商店、道具等模板数据（管理员） |
| `/授予称号 [@用户/用户ID] [称号名称]` | - | 授予用户称号（管理员） |
| `/移除称号 [@用户/用户ID] [称号名称]` | - | 移除用户称号（管理员） |
| `/创建称号 [称号名称] [描述] [显示格式]` | - | 创建自定义称号（管理员） |
| `/补充鱼池` | - | 重置所有钓鱼区域的稀有鱼剩余数量（管理员） |
| `/骰宝结算` | - | 跳过倒计时直接结算当前骰宝游戏（管理员） |
| `/骰宝倒计时 [秒数]` | - | 设置骰宝游戏倒计时时间（管理员） |
| `/骰宝模式 [image/text]` | - | 设置骰宝消息模式（图片/文本）（管理员） |
| `/清理红包 [所有]` | - | 清理过期红包（不带参数清理当前群，带"所有"清理全局）（管理员） |

---

## 👥 社区与贡献

### 🤝 如何贡献

我们欢迎各种形式的贡献！无论您是开发者、用户还是爱好者，都可以为项目做出贡献：

#### 对于开发者
- 🐛 **报告Bug**：在 [Issues](https://github.com/xxlemon-io/astrbot_plugin_fishing/issues) 中报告发现的问题
- 💡 **功能建议**：提出新功能想法和改进建议
- 🔧 **代码贡献**：提交 Pull Request 改进代码
- 📖 **文档完善**：帮助完善文档和注释

#### 对于用户
- ⭐ **Star支持**：给项目点个Star，让更多人看到
- 📝 **使用反馈**：分享使用体验和建议
- 🐛 **问题报告**：报告使用中遇到的问题
- 💬 **社区讨论**：参与社区讨论，分享使用技巧

### 📋 贡献指南

1. **Fork** 本仓库
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开一个 **Pull Request**

⚠️ **重要提示**：请将您的 Pull Request 提交到 **`develop`** 分支，而不是 `main` 分支。`main` 分支用于稳定版本发布，所有新功能和改进都应该先合并到 `develop` 分支进行测试。

📖 更多详细信息请查看 [CONTRIBUTING.md](CONTRIBUTING.md)

### 📄 代码规范

- 遵循 Python PEP 8 代码规范
- 添加适当的注释和文档字符串
- 确保代码通过所有测试
- 提交信息使用清晰的中文描述

### 🏆 贡献者

感谢所有为这个项目做出贡献的开发者们！

<a href="https://github.com/xxlemon-io/astrbot_plugin_fishing/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=xxlemon-io/astrbot_plugin_fishing" />
</a>

## 📞 支持与联系

- 🐛 **问题反馈**：[GitHub Issues](https://github.com/xxlemon-io/astrbot_plugin_fishing/issues)
- 💬 **讨论交流**：[GitHub Discussions](https://github.com/xxlemon-io/astrbot_plugin_fishing/discussions)
- 📧 **邮件联系**：通过 GitHub 个人资料联系

## 🙏 致谢与项目来源

本项目基于以下开源项目进行开发：

- **原始版本**：[@baa131/astrbot_plugin_fishing](https://github.com/baa131/astrbot_plugin_fishing) v1.0.0
- **基础版本**：[@tinkerbellqwq/astrbot_plugin_fishing](https://github.com/tinkerbellqwq/astrbot_plugin_fishing) v1.4.6

感谢原作者的贡献和开源精神，让我们能够在此基础上继续改进和完善这个项目。

## 📜 开源协议与法律声明

本项目基于 [AGPL-3.0](https://opensource.org/licenses/AGPL-3.0) 开源协议发布。

### 协议要点
- ✅ **商业使用**：允许商业使用
- ✅ **修改**：允许修改和分发
- ✅ **专利使用**：允许专利使用
- ✅ **私人使用**：允许私人使用
- ⚠️ **开源要求**：基于本项目的衍生作品必须同样开源
- ⚠️ **网络服务**：通过网络提供服务的衍生作品也必须开源

### 免责声明
- 本项目仅供学习和娱乐使用
- 使用者需自行承担使用风险
- 开发者不对任何直接或间接损失负责

---

<div align="center">

**如果这个项目对您有帮助，请给我们一个 ⭐ Star！**

Made with ❤️ by the AstrBot Fishing Plugin Community

</div>
