【问题标题】:How to check if a minecraft server is online and get info of stats (like number of players online) using Discord py如何使用 Discord py 检查我的世界服务器是否在线并获取统计信息(如在线玩家数量)
【发布时间】:2020-12-06 19:19:30
【问题描述】:

我有一个在我的世界服务器的不和谐服务器中工作的机器人。 我想做一个机器人的命令来 ping minecraft 服务器以检查它是否已启动(甚至获取玩家数量等统计数据)。

有人知道如何 ping mc 服务器甚至从该服务器获取统计信息吗?

【问题讨论】:

  • 也许看看this api?
  • 它似乎可以工作,但我需要找到一种方法将其从 php 更改为 python

标签: python discord.py minecraft


【解决方案1】:

这是可能的!您可以使用 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 版以上的服务器:)

【讨论】:

【解决方案2】:

您可以使用 SourceQuery 执行此操作 - 从 github 选择代码,然后将其导入 DC Bot,它会为您提供任何 GoldSRC 服务器可以为您提供的所有信息,MC 也可以使用它。

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

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

你也可以使用 mcrcon,但我假设你想用 python 包装它。

【讨论】:

    猜你喜欢
    • 2020-02-03
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2019-11-10
    • 2011-12-19
    • 2021-11-19
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多