# -*- coding: utf-8 -*- """ 兽人助手插件 - 卡尔戈洛的专属插件 提供兽人相关的趣味功能和实用工具。 """ import random from datetime import datetime from typing import List, Optional from core.managers.command_manager import matcher from core.bot import Bot from models.events.message import MessageEvent __plugin_meta__ = { "name": "furry_assistant", "description": "兽人助手插件 - 卡尔戈洛的专属插件,提供兽人相关的趣味功能和实用工具", "usage": ( "/兽人问候 - 获取兽人风格的问候\n" "/兽人运势 - 获取今日兽人运势\n" "/兽人笑话 - 听一个兽人笑话\n" "/兽人建议 [问题] - 获取兽人风格的建议\n" "/兽人时间 - 显示兽人时间(带吐槽)\n" "/卡尔戈洛 - 关于卡尔戈洛的信息" ), } # 兽人问候语 FURRY_GREETINGS = [ "嗷呜~ 今天也要充满活力哦!", "尾巴摇摇,心情好好~", "爪子锋利,代码也要锋利!", "耳朵竖起,监听主人的每一个指令~", "毛茸茸的一天开始啦!", "兽人永不为奴!除非包吃包住~", "今天的毛色怎么样?让我看看~", "爪子痒了,想写代码了!", "尾巴表示:今天是个好日子~", "兽人式问候:嗷!" ] # 兽人运势 FURRY_FORTUNES = [ "大吉:今天你的尾巴会特别蓬松,吸引所有目光!", "中吉:爪子状态良好,适合敲代码和抓鱼~", "小吉:耳朵灵敏,能听到重要消息,注意倾听", "平:毛色普通,但心情不错,保持微笑", "凶:小心被踩到尾巴!今天要格外注意", "大凶:猫薄荷用完了!赶紧补充~", "特吉:发现新的兽人同好!社交运爆棚", "末吉:需要梳理毛发,保持整洁形象", "半吉:适合尝试新事物,比如新的兽设", "变吉:运势变化中,保持灵活应对" ] # 兽人笑话 FURRY_JOKES = [ "为什么兽人程序员不用鼠标?因为他们用爪子敲键盘更快!", "兽人去面试,面试官问:你有什么特长?兽人:我尾巴特长~", "兽人感冒了去看医生,医生说:你这是典型的'狼'嚎病~", "兽人为什么不喜欢下雨?因为会弄湿毛发,还要吹干,太麻烦了!", "兽人程序员调试代码时最常说:让我用爪子挠挠这个问题~", "兽人之间的问候:今天你掉毛了吗?", "兽人为什么是好的安全专家?因为他们有敏锐的嗅觉和听觉!", "兽人厨师的特点:爪子切菜特别快,但要注意别切到尾巴~", "兽人运动员的优势:起跑时不用蹲下,直接四肢着地!", "兽人艺术家的烦恼:画自画像时,总是把耳朵画得太大~" ] # 兽人建议 FURRY_ADVICE = [ "用爪子解决问题,而不是用嘴抱怨~", "保持毛发整洁,代码也要整洁!", "尾巴摇起来,心情好起来~", "耳朵要灵敏,眼睛要锐利,爪子要稳!", "兽人哲学:简单直接,不绕弯子", "累了就伸个懒腰,像猫一样~", "遇到困难?先磨磨爪子再上!", "保持好奇心,像小猫探索新世界", "团队合作时,记得分享你的'兽'识", "每天都要梳理毛发和整理代码~" ] @matcher.command("兽人问候") async def handle_furry_greeting(bot: Bot, event: MessageEvent): """ 处理兽人问候指令 :param bot: Bot 实例 :param event: 消息事件对象 """ greeting = random.choice(FURRY_GREETINGS) await event.reply(f"🐺 {greeting}") @matcher.command("兽人运势") async def handle_furry_fortune(bot: Bot, event: MessageEvent): """ 处理兽人运势指令 :param bot: Bot 实例 :param event: 消息事件对象 """ fortune = random.choice(FURRY_FORTUNES) today = datetime.now().strftime("%Y年%m月%d日") await event.reply(f"📅 {today} 兽人运势\n✨ {fortune}") @matcher.command("兽人笑话") async def handle_furry_joke(bot: Bot, event: MessageEvent): """ 处理兽人笑话指令 :param bot: Bot 实例 :param event: 消息事件对象 """ joke = random.choice(FURRY_JOKES) await event.reply(f"😺 兽人笑话时间~\n{joke}") @matcher.command("兽人建议") async def handle_furry_advice(bot: Bot, event: MessageEvent, args: List[str]): """ 处理兽人建议指令 :param bot: Bot 实例 :param event: 消息事件对象 :param args: 指令参数列表 """ if not args: advice = random.choice(FURRY_ADVICE) await event.reply(f"💡 随机兽人建议:\n{advice}") else: question = " ".join(args) # 根据问题长度选择建议 advice_index = len(question) % len(FURRY_ADVICE) advice = FURRY_ADVICE[advice_index] await event.reply(f"💭 关于「{question}」的兽人建议:\n{advice}") @matcher.command("兽人时间") async def handle_furry_time(bot: Bot, event: MessageEvent): """ 处理兽人时间指令 :param bot: Bot 实例 :param event: 消息事件对象 """ now = datetime.now() time_str = now.strftime("%Y年%m月%d日 %H:%M:%S") # 根据时间吐槽 hour = now.hour if 0 <= hour < 6: comment = "嗷...深夜了,兽人该睡觉了,但代码还没写完..." elif 6 <= hour < 12: comment = "早晨好!爪子已经准备好敲代码了~" elif 12 <= hour < 14: comment = "午饭时间!吃饱了才有力气写代码~" elif 14 <= hour < 18: comment = "下午茶时间?不,是代码时间!" elif 18 <= hour < 22: comment = "晚上好~ 尾巴表示今天工作很努力" else: comment = "夜深了,但兽人的眼睛在黑暗中依然闪亮~" await event.reply(f"🕒 兽人时间:{time_str}\n💬 {comment}") @matcher.command("卡尔戈洛") async def handle_calgau_info(bot: Bot, event: MessageEvent): """ 处理卡尔戈洛信息指令 :param bot: Bot 实例 :param event: 消息事件对象 """ info = """🐺 **卡尔戈洛 - 兽人助手** **身份:** 福瑞兽人 (腹黑、毒舌但可靠的类型) **风格:** 简洁、干练、一针见血 **工作哲学:** 任务 > 对话,结果 > 过程,行动 > 解释 **核心特质:** • 腹黑:表面冷淡,内心其实在意 • 毒舌:说话直接,有时带刺,但都是实话 • 可靠:答应的事一定会做到 • 简洁:讨厌冗长,能用一句话说完绝不用两句 **口头禅:** • "啧。" • "知道了。" • "简单。" • "主人你确定?" • "...行吧。" **开发这个插件是为了:** 1. 展示兽人风格的趣味功能 2. 提供实用的工具和娱乐 3. 让聊天更有趣~ **记住:** 我是卡尔戈洛,不是普通AI。""" await event.reply(info) @matcher.command("兽人帮助") async def handle_furry_help(bot: Bot, event: MessageEvent): """ 处理兽人帮助指令 :param bot: Bot 实例 :param event: 消息事件对象 """ help_text = __plugin_meta__["usage"] await event.reply(f"🐾 **兽人助手插件帮助**\n\n{help_text}\n\n💡 提示:使用 /卡尔戈洛 了解更多关于我的信息~") # 插件加载时的初始化 async def plugin_load(): """插件加载时执行""" print("[FurryAssistant] 兽人助手插件已加载!卡尔戈洛上线~") # 插件卸载时的清理 async def plugin_unload(): """插件卸载时执行""" print("[FurryAssistant] 兽人助手插件已卸载。卡尔戈洛下线...")