Skip to content

cryfly666/astrbot_plugin_mcmcmc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minecraft服务器监控插件

这是一个基于AstrBot框架开发的Minecraft服务器监控插件,可以定时检测服务器状态变化并发送通知。
作者使用的简幻欢服务器不支持建站,因此使用AI制作了此工具。
!!大部分代码都由ai完成!!我自己本人基本够用了,所以即使存在很多问题也并没有去修正,如果对你有帮助的话我感到很荣幸,也很感谢各位对该工具的修正!
作者的qq:1002887282
只适配java版!如果需要基岩版请前往:https://github.com/cryfly666/astrbot_plugin_apimcmc

功能特性

  • 🔄 智能监控: 定时检测服务器状态,只在有变化时发送通知
  • 📊 详细信息: 显示在线玩家数量、版本信息、玩家列表等
  • 实时查询: 支持即时查询服务器当前状态
  • ⚙️ 灵活配置: 支持通过WebUI配置目标群、服务器地址、检查间隔等
  • 🚀 自动启动: 可配置插件加载时自动启动监控(延迟5秒启动)
  • 💬 一言集成: 消息推送时附带一言句子,更有趣味性
  • 🔌 零依赖: 使用原生Socket协议直接与服务器通信,无需外部API或服务端插件
  • 🎮 Java版支持: 支持Minecraft Java版服务器(基岩版暂不支持)

配置选项

通过AstrBot的WebUI可以配置以下参数:

配置项 说明 类型 默认值 必填
target_group QQ群号 字符串/数字
server_name 服务器名称 字符串 "Minecraft服务器"
server_ip 服务器IP地址 字符串
server_port 服务器端口 数字 25565
check_interval 监控检查间隔(秒) 数字 10
enable_auto_monitor 插件加载时自动启动监控 布尔值 false

可用指令

监控控制指令

  • /start_server_monitor - 启动定时监控任务
  • /stop_server_monitor - 停止监控任务
  • /reset_monitor - 重置监控状态缓存(清除首次检测标记)

查询指令

  • /查询 - 立即查询服务器当前状态(附带一言句子)

配置指令

  • /set_group <群号> - 动态设置目标群号

监控逻辑

智能变化检测

插件使用状态缓存机制,只在以下情况发生时推送通知:

  1. 首次启动监控

    • 如果有玩家在线,发送"服务器监控已启动,当前有玩家在线"
    • 如果无玩家在线,发送"服务器监控已启动"
  2. 玩家加入服务器

    • 显示具体加入的玩家名称
    • 格式:� [玩家名] 加入了服务器 (+1)
  3. 玩家离开服务器

    • 显示具体离开的玩家名称
    • 格式:📉 [玩家名] 离开了服务器 (-1)

通知消息格式

当检测到变化时,将发送包含以下内容的消息:

🔔 服务器状态变化:
[变化描述]

📊 当前状态:
[服务器详细信息]

💬 [一言句子]

状态缓存

  • last_player_count: 上次的玩家数量(None表示未初始化)
  • last_player_list: 上次的玩家列表 使用 /reset_monitor 可以清除缓存,下次检测将视为首次检测。

技术特性

  • 异步架构: 基于 asyncioaiohttp,性能优异
  • 直接连接: 使用Minecraft Server List Ping协议直接与服务器通信,无需外部API
  • 零依赖: 无需在服务端安装插件或配置RCON,适用于原版及大多数服务端(Spigot, Paper, Fabric, Forge等)
  • 直接推送: 通过 AIOCQHTTP 客户端的 send_group_msg 接口直接发送群消息
  • 错误处理: 完整的异常处理和超时机制(连接超时5秒)
  • 日志系统: 详细的日志记录,便于调试和监控
  • 状态管理: 智能的状态缓存机制,避免重复通知

安装使用

1. 配置插件

在 AstrBot WebUI 的插件配置页面设置以下参数:

  • target_group: 你的QQ群号
  • server_ip: Minecraft服务器IP
  • server_port: 服务器端口(Java版默认25565)
  • server_name: 自定义服务器名称(可选)
  • check_interval: 检查间隔,建议10-60秒
  • enable_auto_monitor: 是否自动启动监控

2. 启动监控

方式一:在配置中启用 enable_auto_monitor,插件加载后自动启动(延迟5秒)

方式二:手动在群内发送 /start_server_monitor 指令启动

3. 测试

使用 /查询 指令测试插件功能是否正常

支持说明:

  • Java版: 完全支持,适用于原版及大多数服务端(Spigot, Paper, Fabric, Forge等)
  • 基岩版: 暂不支持(基岩版使用不同的RakNet协议,计划在未来版本中添加支持)

一言API

请求URL: https://v1.hitokoto.cn/?encode=text

返回纯文本格式的随机句子。

注意事项

  • ⚠️ 确保配置的QQ群号正确且机器人已加入该群
  • ⚠️ 建议检查间隔不要设置过短,避免频繁查询服务器
  • ⚠️ 确保监控多服务器时填写时所用的分号为英文分号!

常见问题

Q: 消息没有发送到群里?
A: 使用 /查询 测试,检查群号是否正确,机器人是否有发送权限。

Q: 需要在 MC 服务器安装插件吗?
A: 不需要。本插件通过 Minecraft Server List Ping 协议直接查询,适用于Java版原版及大多数服务端(Spigot, Paper, Fabric, Forge 等)。

Q: 支持基岩版服务器吗?
A: 当前版本仅支持Java版服务器。基岩版使用不同的协议,可使用此插件https://github.com/cryfly666/astrbot_plugin_apimcmc。

Q: 玩家名为什么会变成Anonymous Player?
A: 这似乎是由mc自身bug(https://bugs.mojang.com/browse/MC/issues/MC-264233)导致的。可选择以下方式应对:a.开启插件的仅进监控人数开关,b.尝试在服务器中加入修复mod来解决(如https://www.mcmod.cn/class/15728.html

更新日志

2026年3月20日
加入仅监控人数开关 以在一定程度上应对某些版本mc服务器玩家名变成Anonymous Player。

2026年3月15日
添加对多服务器监控的支持

About

这是一个基于AstrBot框架开发的Minecraft服务器(java版)监控插件,可以定时检测服务器状态变化并发送通知。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Generated from Soulter/helloworld