mirror of
https://github.com/Shu-Ying/main_plugin_farm.git
synced 2026-11-02 18:50:08 +08:00
fixed # 新增开垦指令
This commit is contained in:
@@ -27,7 +27,10 @@ Windows双击主仓库根目录的`build_astrbot.cmd`,成功后控制台打印
|
||||
`/我的农场`、`/种子商店`、`/我的种子 文字`、`/播种 白萝卜`、`/收获`。
|
||||
仅`/我的农场 高清`支持高清;其他图片统一遵循质量配置。
|
||||
仓库保留分页和文字;偷菜通过`/偷菜 @目标`,不接受手输QQ号。
|
||||
不提供共享核心尚未实现的签到、开垦、改名、土地升级及外部货币兑换。
|
||||
`/开垦 条件`查询下一块地的等级及费用,`/开垦`每次增加1块普通空地。
|
||||
可靠识别为初始3块的旧用户一次性补3块,保留已开垦成果;来源或容量
|
||||
异常会明确提示管理员处理。没有配置的地块不放行、不扣款。
|
||||
不提供共享核心尚未实现的签到、改名、土地升级及外部货币兑换。
|
||||
|
||||
存档按AstrBot部署、平台实例、机器人及用户隔离,不自动合并NoneBot或
|
||||
真寻账号。缺少稳定消息ID时拒绝写操作。字体不可用时尽可能退回文字。
|
||||
|
||||
@@ -8,6 +8,17 @@
|
||||
使用 scripts/build_zhenxun.py 生成ZIP,详见 docs/11-zhenxun-preview.md。
|
||||
本轮没有拉取、推送或操作真实机器人。
|
||||
|
||||
## 开垦与旧用户土地
|
||||
|
||||
发送“开垦 条件”查看下一块地的等级和农场币费用,“开垦”每次新增
|
||||
1块普通空地。目前配置覆盖7~24号地,表外拒绝开垦且不扣币。
|
||||
扣款、新增地块及流水在同一事务完成,重复消息不重复扣款。
|
||||
|
||||
有可靠旧库迁移记录,或首次成功注册记录证明初始3块的账号,首次
|
||||
业务访问时一次性补3块,保留付费成果、作物及土地加成。新版初始6块
|
||||
账号不额外发地。来源不明、编号/数量异常或补后超出当前30位置的账号
|
||||
保留原状并提示管理员处理,不自动截断或折现。
|
||||
|
||||
## 图片质量
|
||||
|
||||
真寻网页插件配置新增“农场图片质量”,整数1~95,默认75。
|
||||
|
||||
@@ -31,11 +31,13 @@ COMMANDS = {
|
||||
"作物加锁":"lock", "作物解锁":"unlock", "出售作物":"sell",
|
||||
"农场除虫":"clear_pests", "除虫":"clear_pests", "地块编号":"plot_ids",
|
||||
"偷菜":"steal",
|
||||
"开垦":"reclaim",
|
||||
}
|
||||
HELP = (
|
||||
"开通农场 [名称]|我的农场 [高清]|农场详述 [页码]\n"
|
||||
"地块编号|查看当前土地编号及开垦位置\n"
|
||||
"偷菜 @目标|每日最多5次成功偷取\n"
|
||||
"开垦|每次增加1块普通空地;开垦 条件|查看等级和费用\n"
|
||||
"我的种子/我的作物 [页码] [文字],默认图片。\n"
|
||||
"全部图片使用农场图片质量配置;仅我的农场支持高清。\n"
|
||||
"种子商店 [页码]|购买种子 作物 数量|播种 作物 [数量]\n"
|
||||
@@ -51,6 +53,13 @@ HELP = (
|
||||
"旧版农场数据在首次使用时迁移,绑定当前机器人和平台。"
|
||||
)
|
||||
ERRORS = {
|
||||
'land_origin_unknown': '农场初始土地来源无法确认,未补地或扣币,'
|
||||
'请联系管理员核查注册或迁移记录。',
|
||||
'land_compensation_capacity': '旧用户补3块后将超出当前30个绘图位置,'
|
||||
'已保留原状,请联系管理员单独处理补偿。',
|
||||
'land_layout_invalid': '地块编号或数量异常,未补地或扣币,请联系管理员核查。',
|
||||
'land_rules_invalid': '开垦配置异常,未扣币,请联系管理员检查。',
|
||||
'land_rule_unavailable': '下一块地的开垦规则尚未配置,未扣币。',
|
||||
'cannot_steal_self': '不能偷自己的农场。',
|
||||
'different_farm_scope': '只能偷取当前机器人、平台内的农场。',
|
||||
'target_not_registered': '目标尚未开通当前农场。',
|
||||
@@ -204,6 +213,16 @@ class Runtime:
|
||||
)
|
||||
if action == "help":
|
||||
return HELP
|
||||
if action == 'reclaim' and args == ['条件']:
|
||||
conditions = await self.service.reclaim_conditions(who)
|
||||
return (
|
||||
f"下一块:{conditions['slot']}号普通空地\n"
|
||||
f"所需等级:{conditions['required_level']}"
|
||||
f"(当前{conditions['level']})\n"
|
||||
f"所需农场币:{conditions['coin_cost']}"
|
||||
f"(当前{conditions['point']})\n"
|
||||
'满足条件后发送:开垦'
|
||||
)
|
||||
image_actions = ('farm', 'plot_ids', 'details', 'shop',
|
||||
'seeds', 'crops')
|
||||
if action in image_actions and action != 'farm' and '高清' in args:
|
||||
@@ -347,7 +366,7 @@ class Runtime:
|
||||
receipt = await self.service.lock(
|
||||
who, args[0], action == "lock", op,
|
||||
)
|
||||
elif action in ("harvest", "eradicate", "clear_pests"):
|
||||
elif action in ("harvest", "eradicate", "clear_pests", "reclaim"):
|
||||
if args:
|
||||
raise ValueError()
|
||||
receipt = await getattr(self.service, action)(who, op)
|
||||
|
||||
Reference in New Issue
Block a user