名称: openpet
描述: 适用于聊天平台的虚拟宠物(类似电子宠物)游戏。通过"喂宠物"、"宠物状态"、"与宠物玩耍"、"命名宠物"、"宠物睡觉"、"新宠物"等命令触发。支持跨 Discord、WhatsApp、Telegram 等多用户平台。每位用户拥有自己的宠物,其成长取决于照料情况。
虚拟宠物游戏。每位用户拥有一只宠物,通过 {平台}_{用户ID} 标识符追踪。
宠物数据存储在 tamagotchi/pets/{平台}_{用户ID}.json 文件中:
{
"name": "Blobby",
"species": "blob",
"hunger": 30,
"happiness": 70,
"energy": 50,
"age": 5,
"born": "2026-02-01T12:00:00Z",
"lastUpdate": 1738442780000,
"alive": true,
"evolution": 1,
"totalFeedings": 12,
"totalPlays": 8,
"ownerId": "202739061796896768",
"platform": "discord",
"ownerName": "mattzap"
}
如果 tamagotchi/pets/ 目录不存在,请手动创建。
| 触发词 | 动作 |
|---|---|
pet, pet status |
显示宠物状态与 ASCII 艺术图 |
feed pet |
饥饿值 -30,快乐值 +5 |
play with pet |
快乐值 +25,精力值 -20 |
pet sleep |
精力值 +40,快乐值 +5 |
name pet [名称] |
设置宠物名称 |
new pet |
重置宠物(仅在宠物死亡或确认后) |
pet help |
显示命令列表 |
╭──────────╮
│ (◕‿◕) │
│ ♥ │
│ "名称" │
╰──────────╯
❤️ 快乐值: ████████░░░░ 70%
🍖 饥饿值: ███░░░░░░░░░ 30%
⚡ 精力值: █████░░░░░░░ 50%
精灵图来自 references/sprites.json。心情判定:快乐(≥70),一般(40-69),悲伤(<40)。
| 阶段 | 要求 |
|---|---|
| 蛋 → Blob | 首次互动 |
| Blob → 猫 | 年龄 ≥10,喂食次数 ≥15,玩耍次数 ≥10 |
| 猫 → 龙 | 年龄 ≥30,喂食次数 ≥50,玩耍次数 ≥40 |
每次互动后检查进化条件。进化时以特殊效果公告。
宠物在以下情况死亡:饥饿值 ≥ 100 或 快乐值 ≤ 0
但是,如果配置中 immortalMode: true,宠物不会死亡——只会变得非常饥饿和悲伤。此时属性值将限制在 99/1,而不会触发死亡。默认开启不死模式。
若启用死亡模式,将显示纪念信息,并提供 new pet 命令以重新开始。
设置定时任务 openpet-tick,每 2 小时执行一次:
- 饥饿值 +15,快乐值 -10,精力值 -5
- 所有属性值限制在 0-100 之间
- 检查死亡条件
- 若状态危急(饥饿值 >80 或快乐值 <20)则提醒主人
- 每日增加年龄
从消息上下文中提取:
- Discord: discord_{用户ID}
- WhatsApp: whatsapp_{电话号码}
- Telegram: telegram_{聊天ID}
- Signal: signal_{UUID}
在以下情况向用户来源平台发送提醒:
- 宠物饥饿(>80):"🍖 {宠物名} 饿坏了!"
- 宠物悲伤(<20):"😢 {宠物名} 想你了!"
- 宠物死亡:"💀 {宠物名} 离开了..."
- 宠物进化:"✨ {宠物名} 进化成了 {物种}!"