如何使用 Discord py 检查 Minecraft 服务器是否在线并获取统计信息(如在线玩家数量)

How to check if a minecraft server is online and get info of stats (like number of players online) using Discord py

我有一个在 minecraft 服务器的 discord 服务器中工作的机器人。 我想使用机器人的命令之一来 ping Minecraft 服务器以检查它是否已启动(或者甚至获取玩家数量等统计数据)。

有人知道可以 ping mc 服务器甚至从所述服务器获取统计信息的方法吗?

您可以使用 SourceQuery 来做到这一点 - 从 github 中选择代码,您可以将其导入您的 DC Bot,它会为您提供任何 GoldSRC 服务器可以为您提供的所有信息,MC 也可以使用它.

https://github.com/olli-e/ISRT-Insurgency-Sandstorm-RCON-Query-Tool/blob/main/bin/SourceQuery.py

您将在脚本末尾找到示例用法。

您也可以使用 mcrcon,但我假设您想将其包装在 python。

这是可能的!您可以使用 Dinnerbone 的 own implementation.

这个基本的 Python 脚本应该可以满足您的需求(以 hypixel 为例):

from mcstatus import MinecraftServer

server = MinecraftServer.lookup("mc.hypixel.net")
status = server.status()
print("The server has {0} players and replied in {1} ms".format(status.players.online, status.latency))

latency = server.ping()
print("The server replied in {0} ms".format(latency))

还有很多事情可以做,看看吧:https://github.com/Dinnerbone/mcstatus

你可以通过运行安装这个包:

python3 -m pip install mcstatus

另请注意,根据 Github 存储库,这仅适用于 1.7 版以上的服务器:)