mirror of
https://github.com/Shu-Ying/main_plugin_farm.git
synced 2026-11-03 11:10:16 +08:00
fixed # 适配AstrBot
This commit is contained in:
@@ -1,84 +1,52 @@
|
||||
# Farm
|
||||
<div align="center">
|
||||
|
||||
统一维护农场核心,面向真寻、普通 NoneBot 和 AstrBot 分包发布。
|
||||
主仓库:https://github.com/Shu-Ying/main_plugin_farm.git。
|
||||
<img src="./logo.png" width="400" alt="真寻农场 Logo">
|
||||
|
||||
## 当前可用范围
|
||||
<p align="center">
|
||||
<a href="./LICENSE">
|
||||
<img src="https://img.shields.io/badge/license-GPL3.0-FE7D37" alt="license">
|
||||
</a>
|
||||
<a href="https://www.python.org">
|
||||
<img src="https://img.shields.io/badge/Python-3.10%2B-blue" alt="Python">
|
||||
</a>
|
||||
<a href="https://github.com/astral-sh/ruff">
|
||||
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json" alt="ruff">
|
||||
</a>
|
||||
<a href="https://nonebot.dev/">
|
||||
<img src="https://img.shields.io/badge/Nonebot-2.0.0%2B-black" alt="Nonebot">
|
||||
</a>
|
||||
<a href="https://github.com/zhenxun-org/zhenxun_bot">
|
||||
<img src="https://img.shields.io/badge/zhenxun-0.2.4%2B-%23ECD9D3" alt="Python">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
第一批框架无关基础核心已实现,位于 src/farm_core:
|
||||
农场核心,其他Bot框架进行分包发布
|
||||
|
||||
- 离线迁移旧版 202 条作物配置。
|
||||
- 注册、账户/库存/地块查询、购买、播种、收获、铲除。
|
||||
- 作物锁定/解锁、指定出售与全部出售、基础文本展示。
|
||||
- SQLite 事务、资产流水、幂等重放及并发保护。
|
||||
- 初始 500 农场币、0 点券、0 经验、3 块普通地。
|
||||
- 可选共享图片层:旧布局与素材、目标尺寸绘制、WebP/JPEG/PNG、
|
||||
有界缓存和受控后台执行,参见 [绘图说明](docs/10-rendering.md)。
|
||||
</div align="center">
|
||||
|
||||
主仓库不能整体放入插件目录。真寻预览包由脚本白名单生成,参见
|
||||
[真寻测试说明](docs/11-zhenxun-preview.md);AstrBot/通用NoneBot接入
|
||||
仍未实现。工作流和同步脚本已准备,真实机器人和远端运行尚未验证。
|
||||
签到、偷菜、升级、兑换和真实玩家数据迁移不在本轮范围。
|
||||
|
||||
## 安装与本地演示
|
||||
|
||||
Python 语法基线为 3.10;本轮在 Windows、Python 3.12.14 上验证。
|
||||
推荐在独立虚拟环境中使用。构建需要 setuptools>=68;
|
||||
运行核心本身没有第三方依赖。
|
||||
|
||||
```text
|
||||
python -m pip install --no-deps --no-build-isolation .
|
||||
python -m farm_core --database runtime/demo.sqlite3
|
||||
```
|
||||
|
||||
演示使用独立的 demo 身份及可控时钟,不需要真实等待作物成熟。
|
||||
指定目录内生成数据库及同名 .log;请使用开发目录,不指向生产数据。
|
||||
相同演示数据库重复运行会重放固定操作结果,不重复发放资产。
|
||||
|
||||
接入方调用示例:
|
||||
|
||||
```python
|
||||
from farm_core import Catalogue, FarmService, Identity, SQLiteStore
|
||||
|
||||
store = SQLiteStore("runtime/farm.sqlite3")
|
||||
await store.initialize()
|
||||
service = FarmService(store, Catalogue.bundled())
|
||||
who = Identity("deployment-1", "realm-1", "qq", "user-1")
|
||||
try:
|
||||
receipt = await service.register(who, "我的农场", "event-register-1")
|
||||
snapshot = await service.snapshot(who)
|
||||
finally:
|
||||
await store.close()
|
||||
```
|
||||
|
||||
每个写操作传入稳定的 operation_id。调用方负责身份命名空间、权限、
|
||||
会话及发送消息;核心不会自动关联跨平台账号。
|
||||
|
||||
## 离线验证与迁移
|
||||
|
||||
```text
|
||||
python scripts/check_baseline.py
|
||||
python scripts/export_catalogue.py --check
|
||||
python scripts/verify_foundation.py
|
||||
```
|
||||
|
||||
完整验证执行基线校验、可复现导出、规则/事务测试和离线 wheel 安装;
|
||||
打包测试需要已安装的 pip、setuptools、wheel、Pillow和可加载字体,
|
||||
禁止从网络补装;绘图测试可设置FARM_TEST_FONT为本机字体路径。
|
||||
只跑业务测试时,可安装核心后使用:
|
||||
|
||||
```text
|
||||
python -m unittest discover -s tests -p "test_transactions.py" -v
|
||||
```
|
||||
## 简单说明
|
||||
|
||||
[文档索引](docs/README.md)、
|
||||
[基础核心说明](docs/09-foundation.md)、
|
||||
[待确认产品决策](docs/07-decisions.md)。
|
||||
[待确认产品决策](docs/07-decisions.md)
|
||||
|
||||
## 来源与许可证
|
||||
本仓库不是主要插件仓库,安装插件请去各自对应框架的应用商店或者仓库寻找:
|
||||
</br>
|
||||
- [真寻](https://github.com/Shu-Ying/zhenxun_plugin_farm)
|
||||
- [Nonebot](https://github.com/Shu-Ying/nonebot_plugin_farm)
|
||||
- [Astrbot](https://github.com/Shu-Ying/astrbot_plugin_farm)
|
||||
|
||||
`如果没有你需要的框架,那么请在本仓库提交issue吧,我会尽量迁移的(其实是用AI)`
|
||||
|
||||
legacy/zhenxun_plugin_farm 保存旧 Beta 基线,827 个文件保持校验。
|
||||
来源提交 b015c6c1997f146f651b677382980d338a306bb2,保留 GPLv3 LICENSE。
|
||||
基线副本的硬编码服务令牌已改为环境变量;原服务端轮换未完成。
|
||||
新核心不使用该令牌、不访问旧远程服务;可选渲染包独立保存所需旧素材。
|
||||
新核心 0.1.0 为本地基础包版本,不表示三个框架插件已发布。
|
||||
## 开源协议
|
||||
本项目采用的是`GPLv3`许可证进行开源
|
||||
|
||||
|
||||
## 致谢
|
||||
|
||||
- [QQ农场](https://qqnc.qq.com/) *绝大多数的素材来源*
|
||||
- [Nonebot2](https://github.com/nonebot/nonebot2) *✨ 跨平台 Python 异步机器人框架 ✨*
|
||||
- [zhenxun_bot](https://github.com/zhenxun-org/zhenxun_bot) *最爱真寻的一集*
|
||||
- [HibiKier](https://github.com/HibiKier) *阿咪为什么是神*
|
||||
- [ATTomato](https://github.com/ATTomatoo) *流泪偷码头.jpg*
|
||||
- [ChatGPT](https://chatgpt.com/) *AI神力*
|
||||
|
||||
Reference in New Issue
Block a user