Skip to content

NekoRabi/Majsoul-QQBot

Repository files navigation

众所周知 后面没了

Majsoul-QQBot

一个基于YiriMirai的QQ机器人,主要有雀魂和天凤的相关功能(如查询、十连、监控等等),还有一些娱乐性的功能,比如入群欢迎,制作/发送图片,随机复读等等

指令帮助

效果展示

十连模拟抽卡

雀魂十连

查一个玩家的数据

雀魂玩家详情

自动播报对局信息

自动抓取牌谱

查询玩家的最近对局情况

最近对局

对局开始报幕

thstartmatch

对局结算播报

thbordercastmatch

如何实现

雀魂数据来自雀魂牌谱屋 , 通过定时爬取来获取牌谱。

以后可能会改成从雀魂直接获取数据 ( 等我会使用 websocket )

天凤播报来自角田提供的数据接口,自行存储数据,段位查询来自天凤水表网

常见错误

查看帮助

如何使用


Yiri-Mirai 已处于半停机状态,不支持最新的Mirai-Api-Http!!!
为减少使用中的问题,请将mah的版本固定在2.4-2.5,yirimirai版本固定在0.2.6

三方库时代已经过去,该程序终将落寞

正在换成NoneBot重新开发


需要先安装 mirai 和 mirai-api-http,在mirai-api-http的配置文件中修改adapter和adapterSettings,再下载本程序,在config.yml中配置好相关参数后就可以直接使用命令行启动。

如果Mirai安装了chat-command,建议在Mirai控制台界面中输入 /perm permit u* console:command.help,来禁用Mirai的帮助输出。

可以参考 YiriMirai 的官方文档的快速部署。

可以使用 pip install -r requirements.txt 来快速安装所需依赖。

本程序 WebSocketAdapter 的默认端口号为 17280

配置文件填写好后就可以启动了。双击 start.bat 或者打开命令行(cmd),执行python main.py

环境

我自己环境是 Python 3.9 , Java 17, Windows 10 和 Window Server 2019 .

建议使用 Python 3.9 和 Java 17

EXE不支持Win7,Win7请自行下载 Python 并安装依赖

自从Python 3.10 开始,*loop 已经不再是必需参数,如遇此问题,请降级安装python 3.8或者3.9,也可自行搜索解决方案

建议不在tx中使用bot

已知Python 3.10 有问题跑不起来,如已安装并报错,请降级安装python 3.8-9 以后会去解决3.10的问题

关于风控

风控相当于把这台设备禁言了,能够收到消息,后台显示发出消息了,但是并没发出去

如果是初次使用,风控几乎是必然的。机器人挂着放一两天就好了。

TX严打bot中,你懂的

配置文件

配置文件有大变动,会重做

config.yml

注意, '冒号' (:) 后必须有空格

### 请注意 , 冒号(:)和横线(-)  后面必须要有 '空格'

adapter: # Mirai-api-http
 host: localhost
 port: 17280
 verify_key: NekoRabi

botconfig:
 botname: '' # 机器人名字
 qq: 123456  # 机器人QQ

admin: # 以下都是管理员
 - 1215791340

alarmclockgroup: # 设置闹钟群聊
 - 0

blacklist: # 黑名单
 - 0

mutegrouplist:
 - 0

commandpre: ''  # 指令前缀

master: 0  # 机器人主人

searchfrequency: 6 # 查询频率,建议为 6

replyimgpath : fox # 表情包路径

loglevel: INFO # 日志等级

# "戳一戳"配置文件
nudgeconfig:
 # 在某群禁用 摸头事件
 disnudgegroup:
   - 0
 sendnudgechance: 1  # 被戳时 以 "戳一戳" 还击的概率
 supersendnudgechance: 0.2 # 还击的"戳一戳"中,触发超级还击的概率
 supernudgequantity: 10 # 单次超级还击的发送 "戳一戳" 的次数

silencegroup:
 - 0     # 设置单群沉默

welcomeinfo:  # 新人入群欢迎词,%ps%为新人名字,%gn%为群聊名字
 - 欢迎%ps%加入%gn%

whitelist:
 - 0   # 白名单

settings: # 功能开关
 autogetpaipu: true  # 自动获取雀魂牌谱
 autowelcome: true   # 自动欢迎新人
 nudgereply: true    # 是否启用摸头事件
 r18talk: true       # 开启管理员词库
 setu: false         # 色图
 silence: false      # 全局沉默,降低发言频率
 norepeat: false     # 全局自动回复
 help: true          # 是否显示帮助
 voice: false        # 语音功能

# 雀魂指令控制 请移步plugin/MajSoulInfo/doc.md



回复文本相关

以 commonreply.json 为例

{
  <!-- 都是最简单的 key:[value0,value1...]  
  前面是与机器人互动的关键词 string ,后面是回复消息的 list -->
  "贴": [
      "贴什么贴.....只......只能......一下哦!",
      "贴...贴贴(靠近)",
      "蹭蹭…你以为咱会这么说吗!baka死宅快到一边去啦!",
      "你把脸凑这么近,咱会害羞的啦Σ>―(〃°ω°〃)♡→",
      "退远",
      "不可以贴"
  ]
}

雀魂十连的配置 drawcards.yml

请移步雀魂插件查看详细内容 链接

我会不定期更新配置和图片资源

lottery:    # 奖池
  decoration:  # 装饰品类
    item: # 物品
    - index: 0 # 编号
      name: 24K金棒 # 物品名称
      rare: 3  #稀有度
      type: decoration # 物品类型
      url: ./Images/decoration/24K金棒.jpg  # 物品图片链接
    - index: 1
      name: 一触即发
      rare: 3
      type: decoration
      url: ./Images/decoration/一触即发.jpg
    - index: 2
  gift:  # 礼物类
    item:
    - index: 0
      name: 手工曲奇
      rare: 0 
      type: gift
      url: ./Images/gift/00-手工曲奇.jpg
    - index: 1
      name: 蓝罐曲奇
      rare: 1
      type: gift
      url: ./Images/gift/01-蓝罐曲奇.jpg
    - index: 2
      name: 香喷喷曲奇
      rare: 2 
      type: gift
      url: ./Images/gift/02-香喷喷曲奇.jpg
  person:
    item:
    - index: 0
      name: 七海礼奈
      rare: 4
      type: person
      url: ./Images/person/七海礼奈.png
    - index: 1
      name: 三上千织
      rare: 4
      type: person
      url: ./Images/person/三上千织.png

up: # up的物品池,如果十连参数为 限时,up列表的装扮和人物出率将提高(与雀魂一致)
    # 直接填名字
  decoration:
  - 和牌-安可
  - 立直-开场曲
  - 立直棒-应援棒
  person:
  - 八木唯
  - 北见纱和子

功能

  • 雀魂相关功能,如模拟抽卡,查询玩家信息,定时播报玩家最近战绩
  • 天凤对局播报,段位查询
  • 入群欢迎
  • 摸头、互亲、举牌、色图、占卜等图片相关功能
  • 强交互性,提供自定义回复、图片回复和语音回复
  • 以后会有更多……

存在的问题

  1. config.yml编辑后乱码。 (基本候是将 UTF-8 编码保存为 GBK 或者反过来) 解决办法: 将config.yml重新编码 ( 现已全部都使用 utf-8 编码 )
  2. 网络请求超时(网络不好)
  3. 雀魂查询bug(底层设计问题,会换框架重做)

开发计划

[ ] 修复牌理Bug

[ ] 将每个模块都补充完整的注释和文档

[ ] 换框架

其他

语音模块是使用的腾讯云的api,是收费的,默认关闭,有想法可以打开玩玩,一天约 0.02 或 0.03 元 地址

上班了

开源协议

由于 mirai 、 mirai-api-http 、 YiriMirai 均采用了 AGPL-3.0 开源协议,本项目同样采用 AGPL-3.0 协议。

请注意,AGPL-3.0 是传染性协议。如果你的项目引用了或改造了我的项目,请在发布时公开源代码,并同样采用 AGPL-3.0 协议。

项目支持

Mirai : 提供 QQ Android 协议支持的高效率机器人库

YiriMirai : 提供SDK

AnimeThesaurus : 回复语录提供

Lolicon API : 色图支持