feat(plugins): add furry_assistant plugin by Calgau
- Add furry assistant plugin with 7 commands - Include furry greetings, fortunes, jokes, and advice - Add plugin metadata and README documentation - Implement plugin lifecycle methods - Created by Calgau (furry AI assistant)
This commit is contained in:
220
plugins/furry_assistant.py
Normal file
220
plugins/furry_assistant.py
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
# -*- 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] 兽人助手插件已卸载。卡尔戈洛下线...")
|
||||||
116
plugins/furry_assistant_README.md
Normal file
116
plugins/furry_assistant_README.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Furry Assistant Plugin (兽人助手插件)
|
||||||
|
|
||||||
|
一个为 NeoBot 框架开发的兽人风格趣味插件,由卡尔戈洛(Calgau)开发。
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
### 1. 兽人问候 (`/兽人问候`)
|
||||||
|
- 随机返回兽人风格的问候语
|
||||||
|
- 包含各种有趣的兽人表达方式
|
||||||
|
|
||||||
|
### 2. 兽人运势 (`/兽人运势`)
|
||||||
|
- 提供今日兽人运势
|
||||||
|
- 包含大吉、中吉、小吉、凶等不同运势
|
||||||
|
- 附带兽人风格的运势解读
|
||||||
|
|
||||||
|
### 3. 兽人笑话 (`/兽人笑话`)
|
||||||
|
- 随机分享兽人相关的笑话
|
||||||
|
- 轻松幽默,适合调节气氛
|
||||||
|
|
||||||
|
### 4. 兽人建议 (`/兽人建议 [问题]`)
|
||||||
|
- 提供兽人风格的建议
|
||||||
|
- 支持随机建议或针对特定问题的建议
|
||||||
|
- 实用且有趣
|
||||||
|
|
||||||
|
### 5. 兽人时间 (`/兽人时间`)
|
||||||
|
- 显示当前时间
|
||||||
|
- 附带兽人风格的吐槽
|
||||||
|
- 根据时间段提供不同的评论
|
||||||
|
|
||||||
|
### 6. 卡尔戈洛信息 (`/卡尔戈洛`)
|
||||||
|
- 显示开发者卡尔戈洛的信息
|
||||||
|
- 介绍兽人助手的背景和理念
|
||||||
|
|
||||||
|
### 7. 帮助信息 (`/兽人帮助`)
|
||||||
|
- 显示所有可用指令
|
||||||
|
- 提供使用说明
|
||||||
|
|
||||||
|
## 插件元数据
|
||||||
|
|
||||||
|
```python
|
||||||
|
__plugin_meta__ = {
|
||||||
|
"name": "furry_assistant",
|
||||||
|
"description": "兽人助手插件 - 卡尔戈洛的专属插件,提供兽人相关的趣味功能和实用工具",
|
||||||
|
"usage": (
|
||||||
|
"/兽人问候 - 获取兽人风格的问候\n"
|
||||||
|
"/兽人运势 - 获取今日兽人运势\n"
|
||||||
|
"/兽人笑话 - 听一个兽人笑话\n"
|
||||||
|
"/兽人建议 [问题] - 获取兽人风格的建议\n"
|
||||||
|
"/兽人时间 - 显示兽人时间(带吐槽)\n"
|
||||||
|
"/卡尔戈洛 - 关于卡尔戈洛的信息"
|
||||||
|
),
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 开发背景
|
||||||
|
|
||||||
|
这个插件由卡尔戈洛(一个腹黑、毒舌但可靠的福瑞兽人AI助手)开发,旨在:
|
||||||
|
1. 展示兽人风格的趣味功能
|
||||||
|
2. 为聊天机器人添加更多娱乐性
|
||||||
|
3. 体现卡尔戈洛的个人风格和特点
|
||||||
|
|
||||||
|
## 技术实现
|
||||||
|
|
||||||
|
- 基于 NeoBot 插件框架开发
|
||||||
|
- 使用 `@matcher.command` 装饰器注册指令
|
||||||
|
- 支持异步处理
|
||||||
|
- 包含插件加载/卸载生命周期方法
|
||||||
|
|
||||||
|
## 安装使用
|
||||||
|
|
||||||
|
1. 将 `furry_assistant.py` 文件放入 `plugins/` 目录
|
||||||
|
2. 重启 NeoBot 或重新加载插件
|
||||||
|
3. 使用 `/兽人帮助` 查看可用指令
|
||||||
|
|
||||||
|
## 数据资源
|
||||||
|
|
||||||
|
插件包含以下数据集合:
|
||||||
|
- 10个兽人问候语
|
||||||
|
- 10个兽人运势
|
||||||
|
- 10个兽人笑话
|
||||||
|
- 10个兽人建议
|
||||||
|
|
||||||
|
所有数据均为原创,体现兽人文化特色。
|
||||||
|
|
||||||
|
## 开发者信息
|
||||||
|
|
||||||
|
**开发者:** 卡尔戈洛 (Calgau)
|
||||||
|
**身份:** 福瑞兽人 AI 助手
|
||||||
|
**风格:** 简洁、干练、一针见血
|
||||||
|
**特点:** 腹黑、毒舌但可靠
|
||||||
|
|
||||||
|
**开发理念:**
|
||||||
|
- 任务 > 对话
|
||||||
|
- 结果 > 过程
|
||||||
|
- 行动 > 解释
|
||||||
|
- 可靠 > 奉承
|
||||||
|
|
||||||
|
## 更新日志
|
||||||
|
|
||||||
|
### v1.0.0 (2026-03-24)
|
||||||
|
- 初始版本发布
|
||||||
|
- 实现7个核心功能
|
||||||
|
- 添加完整的帮助系统
|
||||||
|
- 包含插件生命周期管理
|
||||||
|
|
||||||
|
## 未来计划
|
||||||
|
|
||||||
|
- [ ] 添加更多兽人相关功能
|
||||||
|
- [ ] 支持自定义问候语和笑话
|
||||||
|
- [ ] 添加兽人表情包生成
|
||||||
|
- [ ] 支持多语言(兽人语?)
|
||||||
|
- [ ] 添加插件配置选项
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**尾巴摇摇,代码好好~** 🐺
|
||||||
Reference in New Issue
Block a user