Skip to main content

A NoneBot2 plugin generates a pic from a Minecraft server's MOTD

Project description

NoneBotPluginLogo

NoneBotPluginText

NoneBot-Plugin-PicMCStat

✨ Minecraft 服务器 MOTD 查询 图片版 ✨

python pdm-managed wakatime
Pydantic Version 1 Or 2 license pypi pypi download

📖 介绍

插件实际上是可以展示 玩家列表Mod 端信息 以及 Mod 列表(还未测试) 的,这里没有找到合适的例子所以没在效果图里展示出来,如果遇到问题可以发 issue

插件包体内并没有自带图片内 Unifont 字体,需要的话请参考 这里 安装字体

效果图

example
example

💿 安装

插件

以下提到的方法 任选其一 即可

[推荐] 使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-picmcstat
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip
pip install nonebot-plugin-picmcstat
pdm
pdm add nonebot-plugin-picmcstat
poetry
poetry add nonebot-plugin-picmcstat
conda
conda install nonebot-plugin-picmcstat

打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分的 plugins 项里追加写入

[tool.nonebot]
plugins = [
    # ...
    "nonebot_plugin_picmcstat"
]

字体

字体文件请自行去自行去 这里 下载

将字体文件直接安装在系统中即可
如果不行,请尝试右键字体文件点击 为所有用户安装
如果还是不行,请尝试修改插件字体配置

⚙️ 配置

MCSTAT_FONT - 使用的字体名称 / 路径

默认:unifont

请按需自行更改

MCSTAT_SHOW_ADDR - 是否在生成的图片中显示服务器地址

默认:False

MCSTAT_SHOW_DELAY - 是否显示测试延迟

默认:True

MCSTAT_SHOW_MODS - 是否在生成的图片中显示 Mod 列表

默认:False

由于某些整合包服务器的 Mod 数量过多,导致图片生成时间过长,且容易炸内存,所以默认不显示

MCSTAT_REPLY_TARGET - 是否回复指令发送者

默认:True

MCSTAT_SHORTCUTS - 快捷指令列表

这个配置项能够帮助你简化一些查询指令

此配置项的类型是一个列表,里面的元素需要为一个特定结构的字典:

  • regex - 用于匹配指令的正则,例如 ^查服$
    (注意,nb2 以 JSON 格式解析配置项,所以当你要在正则表达式里表示\时,你需要将其转义为\\
  • host - 要查询的服务器地址,格式为 <IP>[:端口]
    例如 hypixel.netexample.com:1919
  • type - 要查询服务器的类型,je 表示 Java 版服,be 表示基岩版服
  • whitelist - (仅支持 OneBot V11 适配器)群聊白名单,只有里面列出的群号可以查询,可以不填来对所有群开放查询

最终的配置项看起来是这样子的,当你发送 查服 时,机器人会把 EaseCation 服务器的状态发送出来

MCSTAT_SHORTCUTS='
[
  {"regex": "^查服$", "host": "asia.easecation.net", "type": "be"}
]
'

MCSTAT_RESOLVE_DNS - 是否由插件解析 DNS 记录

默认:True

是否由插件解析一遍 DNS 记录后再进行查询,
如果你的服务器在运行 Clash 等拦截了 DNS 解析的软件,且查询部分地址时遇到了问题,请尝试关闭此配置项
此配置项不影响 Java 服务器的 SRV 记录解析

MCSTAT_QUERY_TWICE - 是否查询两遍服务器状态

默认:True

由于第一次测得的延迟一般不准,所以做了这个配置,
开启后每次查询时,会丢掉第一次的结果再查询一次,且使用第二次查询到的结果

🎉 使用

发送 motd 指令 查看使用指南

usage

📞 联系

QQ:3076823485
Telegram:@lgc2333
吹水群:1105946125
邮箱:lgc2333@126.com

💡 鸣谢

pil-utils

超好用的 Pillow 辅助库,wq 佬是叠!快去用 awa

💰 赞助

感谢大家的赞助!你们的赞助将是我继续创作的动力!

  • 爱发电

  • 赞助二维码(点击展开)

    讨饭

📝 更新日志

0.6.0

  • 适配 Pydantic V1 & V2

0.5.1

  • 修复 玩家 / Mod 列表 中出现的一些 Bug 果然又出 Bug 了
  • 添加配置项 MCSTAT_SHOW_DELAYMCSTAT_QUERY_TWICE

0.5.0

  • 换用 Alconna 支持多平台
  • 快捷指令支持多平台(whitelist 依然仅支持 OneBot V11)
  • 添加配置项 MCSTAT_RESOLVE_DNS
  • 部分代码重构 Bug 海与屎山代码又增加了

0.4.0

  • 修复修复无法解析中文域名 IP 的错误(#13
  • 使用 SAA 支持多适配器(shortcut 依然仅支持 OB V11)
  • 添加配置项 MCSTAT_REPLY_TARGET

0.3.5

  • 修复上个版本的小 Bug

0.3.4

  • 修复无法正常绘制 Mod 列表的情况
  • 增加显示 Mod 列表的配置项 (MCSTAT_SHOW_MODS)

0.3.3

  • 修复特殊情况下玩家列表排版错误的问题(虽然现在使用其他字体的情况下还是有点问题)
  • 添加显示服务器地址的配置项 (MCSTAT_SHOW_ADDR)

0.3.2

  • 🎉 NoneBot 2.0 🚀

0.3.1

  • 修复文本内含有 §k 时报错的问题

0.3.0

  • 弃用 nonebot-plugin-imageutils,换用 pil-utils
  • 支持了更多字体样式
  • 支持自定义字体

0.2.7

  • 修复 shortcutwhitelist 的奇怪表现

0.2.6

  • 修复 shortcut 中没有 whitelist 项会报错的问题

0.2.5

  • shortcut 加入 whitelist 项配置触发群白名单

0.2.4

  • 修复玩家列表底下的多余空行

0.2.3

  • 修复 JE 服务器 Motd 中粗体意外显示为蓝色的 bug

0.2.2

  • 修复 motd 前后留的空去不干净的问题
  • 优化玩家列表显示效果

0.2.1

  • 修复当最大人数为 0 时出错的问题

0.2.0

  • 加入快捷指令,详见配置项
  • 修复某些 JE 服无法正确显示 Motd 的问题

0.1.1

  • 将查 JE 服时的 游戏延迟 字样 改为 测试延迟

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_picmcstat-0.6.0.tar.gz (31.9 kB view hashes)

Uploaded Source

Built Distribution

nonebot_plugin_picmcstat-0.6.0-py3-none-any.whl (29.6 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