refactor: onmyoji gacha plugin overhaul (gacha-refactor)
This commit is contained in:
38
danding_bot/plugins/onmyoji_gacha/handlers/achievement.py
Normal file
38
danding_bot/plugins/onmyoji_gacha/handlers/achievement.py
Normal file
@@ -0,0 +1,38 @@
|
||||
"""
|
||||
成就系统查询处理模块
|
||||
|
||||
处理成就系统查询命令,显示已解锁成就和进度。
|
||||
"""
|
||||
|
||||
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, GroupMessageEvent
|
||||
import nonebot
|
||||
|
||||
from ..utils import get_gacha_system
|
||||
from ..utils import format_user_mention
|
||||
|
||||
logger = nonebot.logger
|
||||
|
||||
|
||||
async def handle_achievement(bot: Bot, event: MessageEvent, state: dict):
|
||||
"""处理成就系统查询命令"""
|
||||
user_id = str(event.user_id)
|
||||
user_name = event.sender.card or event.sender.nickname or "未知用户"
|
||||
|
||||
gacha_system = get_gacha_system()
|
||||
achievements = await gacha_system.get_user_achievements(user_id)
|
||||
|
||||
if not achievements:
|
||||
await event.finish("您还没有解锁任何成就哦~ 继续抽卡吧!")
|
||||
|
||||
msg = f"🏅 {format_user_mention(user_id, user_name)} 的成就:\n\n"
|
||||
|
||||
for ach in achievements:
|
||||
name = ach.get("name", "未知成就")
|
||||
desc = ach.get("description", "")
|
||||
reward = ach.get("reward", 0)
|
||||
claimed = ach.get("claimed", False)
|
||||
|
||||
status = "✅已领取" if claimed else "🎁可领取"
|
||||
msg += f"🎖️ {name}\n {desc}\n 奖励:{reward} {status}\n\n"
|
||||
|
||||
await event.send(msg.strip())
|
||||
Reference in New Issue
Block a user