在这个 python 脚本中,我想尝试 Ping 我的 Minecraft Java 服务器,以便它始终保持在线。 我对服务器不太熟悉,尤其是 Minecraft 服务器。 有谁知道如何做到这一点,或者如何修复我的脚本。
import requests
import time
#Minecraft Server Pinger
server_ip="Server.aternos.me"
port={"Server.aternos.me": 12345678910}
# Server IP Port
while True:
time.sleep(280)
server_ping=requests.post(server_ip, port)
print(server_ping)
你对保持 Minecraft 服务器在线的理解存在误解。对服务器执行 ping 操作可以检查它是否处于活动状态,但不能使其保持在线状态。如果服务器已经在线,ping 操作只会告诉你它是否可以访问。
为了让你的 Minecraft 服务器保持在线状态,你需要让它持续运行。Aternos 服务器已经为你处理了这个问题;它们提供了一个始终在线的平台。你不需要为此编写任何脚本。
但是,如果你想定期检查你的 Aternos 服务器是否可访问,你的脚本需要做一些修改。Minecraft 服务器不使用传统的 HTTP 请求,比如你在
requests.post
中使用的。它们使用一个自定义协议。
以下是使用
mcstatus
库检查你的 Minecraft 服务器状态的方法:
from mcstatus import MinecraftServer
import time
server_ip = "Server.aternos.me"
port = 12345678910 # 如果你的服务器使用默认端口,你可以省略这个值
server = MinecraftServer(server_ip, port)
while True:
try:
status = server.status()
print(f"服务器 {server_ip}:{port} 在线 - 版本:{status.version.name} - 玩家:{status.players.online}/{status.players.max}")
except Exception:
print(f"服务器 {server_ip}:{port} 离线")
time.sleep(60) # 每 60 秒检查一次
这个脚本执行以下操作:
-
它导入必要的库 (
mcstatus
和time
)。 - 它定义了你的服务器 IP 和端口。
-
它创建了一个
MinecraftServer
实例。 - 它进入一个循环,每 60 秒尝试获取服务器状态。
- 如果成功,它会打印服务器状态信息。
- 如果出现错误(表示服务器可能离线),它会打印一条消息,说明服务器离线。
要使用此脚本,你需要安装
mcstatus
库:
pip install mcstatus
请记住,这个脚本只 检查 你的服务器状态,并不能使其保持在线状态。Aternos 已经为你处理了这个问题。
标签:python,windows,minecraft From: 70616108