Skip to main content

Genshin player cards plugin for NoneBot2

Project description

NoneBot Plugin GsPanel


🤖 用于展示原神游戏内角色展柜数据的 NoneBot2 插件


license pypi python QQ Chat Group
Code style: black Imports: isort Lint: flake8 pre-commit


琴 刻晴 妮露

安装方法

如果你正在使用 2.0.0.beta1 以上版本 NoneBot2,推荐使用以下命令安装:

# 从 nb_cli 安装
nb plugin install nonebot-plugin-gspanel

Yunzai @realhuhu/py-plugin 插件用户安装方法请查看 #38,插件不保证完全可用,请尽量自行解决相关问题。

使用须知

  • 插件的圣遗物评分计算规则、卡片样式均来自 @yoimiya-kokomi/miao-plugin。插件移植时对 评分规则 主要做了以下修改:

    • 以角色生命值、攻击力、防御力的实际基础值进行词条得分计算,导致固定值的生命值、攻击力、防御力词条评分相较原版有小幅度波动
    • 于面板数据区域展示圣遗物评分使用的词条权重规则,插件尚未自定义词条权重规则的角色使用默认规则(攻击力 75、暴击率 100、暴击伤害 100
    • 于面板数据区域展示角色最高的伤害加成数据,该属性与角色实际伤害属性不一致时区别显示词条权重规则
    • 对元素属性异常的空之杯进行评分惩罚,扣除该圣遗物总分的 50%(最大扣除比例)
  • 插件返回「暂时无法访问面板数据接口..」可能的原因有:Bot 与 Enka.Network 的连接不稳定;Enka.Network 服务器暂时故障等。

  • 插件首次生成某个角色的面板图片时,会尝试从 Enka.Network 下载该角色的抽卡大图、命座图片、技能图片、圣遗物及武器图片等素材图片,生成面板图片的时间由 Bot 与 Enka.Network 的连接质量决定。素材图片下载至本地后将不再从远程下载,生成面板图片的时间将大幅缩短。

  • 一般来说,插件安装完成后无需设置环境变量,只需重启 Bot 即可开始使用。你也可以在 NoneBot2 当前使用的 .env 文件中添加下表给出的环境变量,对插件进行更多配置。环境变量修改后需要重启 Bot 才能生效。

    环境变量 必需 默认 说明
    gspanel_alias ["面板"] 插件响应词别名,多个别名按 ["面面", "板板"] 格式填写
    gspanel_scale 1.5 浏览器缩放比例,此值越大返回图片的分辨率越高
    resources_dir /path/to/bot/data/ 插件数据缓存目录的父文件夹,包含 gspanel 文件夹的上级文件夹路径
    resources_mirror https://enka.network/ui/ 素材图片下载镜像,需提供 UI_Talent_S_Nilou_01.png 形式的图片地址,可选镜像:
    https://api.ambr.top/assets/UI/(安柏计划)
    https://cdn.monsterx.cn/genshin/(插件作者)
  • 插件图片生成采用 @kexue-z/nonebot-plugin-htmlrender,若插件自动安装运行 Chromium 所需的额外依赖失败,请参考 @SK-415/HarukaBot 给出的以下解决方案:

    • Ubuntu:python3 -m playwright install-deps
    • CentOS(仅供参考):yum install -y atk at-spi2-atk cups-libs libxkbcommon libXcomposite libXdamage libXrandr mesa-libgbm gtk3
    • 其他非 Ubuntu 系统:@microsoft/playwright/issues

    其他 Playwright 相关问题也请尽量自行解决,或者前往 @kexue-z/nonebot-plugin-htmlrender/issues / @microsoft/playwright/issues 搜索提问。你硬要问我的话,大概也只能得到一句「哇嘎拉乃哟」

命令说明

角色面板

插件响应以 panel / 面板 开头的消息,下面仅以 面板 为例:

* 如果定义了环境变量 gspanel_alias 则以环境变量定义的命令别名为准,默认情况下该环境变量会使插件响应 面板 开头的消息。

  • 面板绑定100123456 / 面板绑定100123456 @某人 / 面板绑定2334556789 100123456

    绑定 UID 100123456 至发送此指令的 QQ,QQ 已被绑定过则会更新绑定的 UID。

    Bot 管理员可以通过在此指令后紧跟 2334556789 或附带 @某人 的方式将 UID 100123456 绑定至指定的 QQ。

  • 面板 / 面板@某人 / 面板100123456

    查找 QQ 绑定的 UID / UID 100123456 角色展柜中展示的所有角色(图片)。

  • 面板夜兰 / 面板夜兰@某人 / 面板夜兰100123456 / 面板100123456夜兰

    查找 QQ 绑定的 UID / UID 100123456 的夜兰面板(图片)。

* 所有指令都可以用空格将关键词分割开来,如果你喜欢的话。

队伍伤害

插件响应以 teamdmg / 队伍伤害 开头的消息,下面仅以 队伍伤害 为例:

  • 队伍伤害 / 队伍伤害100123456 / 队伍伤害@某人

    查找指定 UID 角色展柜中前四个角色组成的队伍伤害。

    默认隐藏了伤害过程表格,如需查看具体伤害过程可以使用 队伍伤害详情 / 队伍伤害过程 / 队伍伤害全图 来强制显示全部数据(并不是单独返回伤害过程表格)。

    当仅发送 队伍伤害 时将尝试使用发送此指令的 QQ 绑定的 UID;附带 9 位数字时尝试使用该 UID;附带 @某人 时将尝试使用指定 QQ 绑定的 UID。

  • 队伍伤害雷九万班 / 队伍伤害 雷神 九条 万叶 班尼特 / 队伍伤害雷神 九条 万叶 班尼特@某人

    查找雷电将军、九条裟罗、枫原万叶、班尼特组成的队伍伤害。注意角色名之间必须使用空格分开。含有 旅行者 的配队暂时无法查询。队伍角色只要使用 面板 指令查询过或者正在展柜中摆放即可配队(即所有查询过的角色都有缓存,使用 面板 指令查看所有可用的角色)。

    为此形式的命令指定 UID 方式与上面相同。

    队伍别名支持可能不全请见谅,如果有十分流行的配队未能支持请前往 discussions 提出。

* 队伍伤害为 实验性功能,计算结果可能存在问题。欢迎附带详细日志提交 issue 帮助改进此功能。

特别鸣谢

@nonebot/nonebot2 | @Mrs4s/go-cqhttp | @yoimiya-kokomi/miao-plugin | @kexue-z/nonebot-plugin-htmlrender | @UIGF-org/UIGF-API | @DGP-Studio/Snap.Metadata | Enka.Network | Miniprogram Teyvat Helper | @MiniGrayGay

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_gspanel-0.2.25.tar.gz (29.3 kB view hashes)

Uploaded Source

Built Distribution

nonebot_plugin_gspanel-0.2.25-py3-none-any.whl (28.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page