HoshiniYumemi
一个基于Mirai的功能性机器人
项目地址:HoshiniYumemi
下载地址:HoshiniYumemiReleases
主要功能:
- 好感度 (<del>说是好感度其实是权限等级</del>,好感度为负值则会导致机器人不理你,这时只能通过签到慢慢回复)
- 金币系统 (由于API存在限额,此设定主要是为了防止群友滥用)
- 签到 (签到图像布局<del>抄袭</del>借鉴自真寻Bot)
- 聊天机器人 (不同好感设定有不同的回应词条,若数据中无词条则接入腾讯聊天机器人)
- 腾讯云机器翻译 (需要好感度等级不小于4,金币2*String.Length来使用,好感度等级不低于7级则免金币使用
- 腾讯云OCR (由于开通OCR需要企业认证(貌似),所以目前所有关于这一方面的函数都打了//)
- Saucenao搜图 (需要好感度等级不小于5,金币1000枚才可以使用,好感度等级不小于8级时免金币使用)
- Lolicon搜图 (需要好感度等级不低于4级,金币100*获取数量方可使用,好感度等级不低于7级则免金币使用)
- 黑名单 (将好感度设置为-800并将一切增加好感度的行为变为减少好感度)
- 礼物商店 (给Bot送礼物)
- (TODO)各种其他娱乐型BOT的功能,如小游戏等
功能详细介绍:
一、好感度系统:
-
1、系统介绍
好感度系统为一切功能的一个前置系统,之所以在前面将好感度称为权限等
级,是因为好感度决定解锁的机器人功能。好感度的获取途径主要有:
1、签到;2、和机器人聊天;3、给机器人送礼物;4、在好感度等级足够的
情况下和机器人进行亲密行为(如贴贴,摸头,叫老婆等);5、夸机器人;
6、todo失去好感度的主要原因:
1、辱骂机器人;2、在好感度不足的情况下进行亲密行为(如贴贴,摸头,
叫老婆等);3、被管理员针对;4、todo好感度上限:
普通群员上限为800;管理员为900;在data\srh.shirakana.hoshino
yumemi.plugin\HoshinoYumemiUser.yml中SpecialUser中指定的QQ
用户为1000好感度指令:
@机器人 好感(查看好感)
/usrcmd(我的) kk(查看好感)(查看好感)
/koukann <add/decrease> Member Amount(指定Member好感加减)
/koukann <addall/decreaseall> Amount(所有群成员好感统一加减)
/好感度 添加/减少/全体添加/全体减少 分别对应以上指令 -
2、好感度存储:
#### data\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemiKouKann.yml
# 好感度列表
KouKannList:
123456: 0.0
1234567: 1000.0
QQ号码: 好感度数值(Double)
二、金币系统:
-
1、系统介绍
目前金币系统仅作为限制功能使用的筹码,以后会出小游戏功能
指令:
@机器人 金币(查看金币)
/usrcmd(我的) mon(查看金钱)(查看金币)
/money <add/decrease> Member Amount(指定Member金币加减)
/金钱 添加/减少 分别对应以上指令 -
2、金币存储
#### data\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemiMoney.yml
# 金钱列表
Money:
12345: 0.0
123456: 0.0
QQ号码:金币数量
三、签到系统:
-
1、系统介绍:
在群内输入签到,或者AT机器人输入签到,即可进行签到,签到会根据抽卡机制
按照不同段位给予相应的随机好感度以及金币(配图)data\srh.shirakana
.hoshinoyumemi.plugin\HoshinoYumemiUser.yml中bool列表为当日签到状态
于每日0点重置
四、聊天系统:
-
1、系统介绍:
需要配置腾讯云APIID和APIKey,配置位置在config\srh.shirakana.hoshino
yumemi.plugin\HoshinoYumemi_TencentCloudApiConfig.yml,一切的聊天
内容均需要AT机器人触发(特殊动作请注意好感度,可能会扣好感)当机器人受到符合条件的MessageEvent后,优先从data\srh.shirakana.hoshi
noyumemi.plugin\HoshinoYumemiReplyList.yml中读取回复信息,若该列表中
无响应信息,则使用腾讯云聊天机器人(均为模糊匹配,腾讯云聊天机器人为腾讯
云自然语言处理中的聊天机器人)聊天机器人指令:
/DataList <replyadd/replyadd> inputMsg KoukannLevel outputMsg其
中inputMsg为输入的信息,KoukannLevel为好感度等级(好感度/100).toInt
outputMsg为回复信息(该条回复会被写入上面提到的文件中)
/数据 添加回复/删除回复 分别对应以上指令 -
2、回复列表存储:
#### data\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemiUser.yml
# 回复列表
ReplyList:
1919810:
- 0: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 0: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 0: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 1: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 1: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 1: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 2: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 2: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 2: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 3: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 3: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 3: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 4: 请不要唐突恶臭!
- 4: 为什么总是要这么臭呢?
- 5: 请不要唐突恶臭!
- 5: 为什么总是要这么臭呢?
- 6: 请不要唐突恶臭!
- 6: 为什么总是要这么臭呢?
- 7: 臭死了
- 7: 好臭啊
- 8: 臭死了
- 8: 好臭啊
- 9: 如果是你的话,就算是恶臭的也可以接受
- 9: 但是,我还是更喜欢不臭的你
- 10: 如果是你的话,就算是恶臭的也可以接受
- 10: 但是,我还是更喜欢不臭的你
114514:
- 0: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 0: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 0: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 1: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 1: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 1: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 2: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 2: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 2: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 3: 像你这种又屑又臭的人,有在这个群存在的必要吗?!(恼)
- 3: 像你这种又屑又臭的人,为什么还在这个群里呢?(疑惑)
- 3: 像你这种又屑又臭的人,还是赶紧退群罢!(无慈悲)
- 4: 请不要唐突恶臭!
- 4: 为什么总是要这么臭呢?
- 5: 请不要唐突恶臭!
- 5: 为什么总是要这么臭呢?
- 6: 请不要唐突恶臭!
- 6: 为什么总是要这么臭呢?
- 7: 臭死了
- 7: 好臭啊
- 8: 臭死了
- 8: 好臭啊
- 9: 如果是你的话,就算是恶臭的也可以接受
- 9: 但是,我还是更喜欢不臭的你
- 10: 如果是你的话,就算是恶臭的也可以接受
- 10: 但是,我还是更喜欢不臭的你
文件结构为:
inputMsg1
- KoukannLevel1: outputMsg1
- KoukannLevel1: outputMsg2
- KoukannLevel2: outputMsg1
inputMsg2
- KoukannLevel1: outputMsg1
- KoukannLevel2: outputMsg1
- KoukannLevel2: outputMsg2
当同一个KoukannLevel有多个outputMsg时,随机选取其中一个
五、各个API的使用:
-
配置文件:
需要配置config\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemi
_TencentCloudApiConfig.yml中ID和Key需要配置config\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemi
SaucenaoApiConfig.yml中Key -
指令:
/TCAPI(腾讯云) MT(机器翻译) InputString TargetLang
其中InputString为要翻译的字符串,空格用下划线"_"代替,TargetLang为
目标语言,需要使用简写,如中文“zh”;日语“jp”;英语“en”
/eroImage(涩图) g(发几张) Tag Amount
获取Amount张(小于等于5)lolicon涩图,不支持R18,发送为转发消息模式
30秒撤回,Tag可使用rand来代表随机Tag
/eroImage(涩图) s(搜索) Image
使用Saucenao搜索指定图片
六、礼物商店
-
指令:
/usrcmd(我的) giftlist(列出礼物列表)
/usrcmd(我的) gift ID(给机器人送指定ID的礼物)
/DataList <shopadd/shopdel> Name Cost(加减名为Name售价Cost的商品)
/我的 礼物列表/送礼物
/数据 添加商品/删除商品
机器人好感度获取为物品价格/1000 -
文件:
#### data\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemiShop
# 商店列表
Shop:
- 古河面包: 1000.0
- 商品名: 售价
七、其他指令
- 黑名单:/KouKann <bladd/blrem> Member(将指定群员添加/移除出黑名单>
- @机器人 睡吧(关闭插件功能)
- @机器人 起床吧(开启插件功能)
八、打工和学位
-
介绍:
打工功能,不过与其他娱乐机器人不同,想要打工,必须取得相应专业的学位
而学位可以通过考试获得,考试的题目需机器人的管理者自行建库。
指令:
/AdmCmd addTest <Specialize> <Question> <Answer>
#为Specialize专业添加Question问题,答案为Answer(专业不存在则创建)
/AdmCmd addWork <requiredSpecialize> <reward>
#添加requiredSpecialize专业对应的工作,基础工资为reward(需要存在
专业“requiredSpecialize”(上一个指令创建)
/AdmCmd delTest <Specialize> <Question>
/AdmCmd delWork <requiredSpecialize>
#下面两个为删除相应内容
/usrcmd LS
#查看所有存在的专业
/usrcmd mysp
#查看自己的专业及学位
/usrcmd giveupmysp
#放弃自己的学位
/usrcmd jointest <Specialize>
#参加指定专业“Specialize”的考试
/usrcmd exittest
#退出当前考试
/我的 参加考试/退出考试/有什么专业/我的专业/放弃学位 -
文件:
#### data\srh.shirakana.hoshinoyumemi.plugin\HoshinoYumemiCourse
# 题目
Course:
数学:
- 1+1=?: 2
- 题目: 答案
专业:
- 题目: 答案
还有两个json,存储用户和工作()
更新日志:
6月10日-
1、名称显示修复
2、降低了聊天获取的好感度
3、降低了签到获取的金币
4、打工、学位系统实装并进入测试
6月14日-
1、标准化了试题的格式
2、修复了考试的几个BUG
6月29日-
1、添加了中文指令
2、腾讯云NLP聊天机器人开关(使用/AdmCmd Disable add/del 群号)
群号为0时则操作机器人所在的所有群