mirror of
https://github.com/JonasunderscoreJones/Minecraft-server-Status.git
synced 2025-10-22 18:29:17 +02:00
83 lines
2.6 KiB
Python
83 lines
2.6 KiB
Python
from mcstatus import JavaServer
|
|
from time import sleep
|
|
|
|
ip = input("Please Enter server IP: ")
|
|
port = input("Enter Port (press enter for default port 25565, enter * if unknown): ")
|
|
q_port = input("Enter Query Port (press enter for matching or if unknown): ") # added query port input
|
|
delay = input("How many seconds do you want in between status updates?: ")
|
|
|
|
if delay == "":
|
|
delay = "0"
|
|
|
|
delay_int = int(delay)
|
|
|
|
if port == "":
|
|
port = "25565"
|
|
|
|
# query port set to default if empty
|
|
if q_port == "":
|
|
q_port = port
|
|
|
|
if port == "*":
|
|
server = JavaServer.lookup(ip)
|
|
else:
|
|
server = JavaServer.lookup(ip + ":" + port)
|
|
|
|
try:
|
|
server.query(query_port=int(q_port))
|
|
query = True
|
|
except:
|
|
print("Query port is wrong or query is disabled.")
|
|
query = False
|
|
|
|
if port == "*":
|
|
while True:
|
|
status = server.status()
|
|
query = server.query()
|
|
ping = server.ping()
|
|
|
|
# for every if statement here, print query fetched information only if query is enabled
|
|
if query:
|
|
print("---------- " + ip + ":" + f"{query.raw['hostport']}" + " ----------")
|
|
else:
|
|
print("---------- " + ip + ":" + port + " ----------")
|
|
|
|
print(f"Version: v{status.version.name} (protocol {status.version.protocol})")
|
|
print(f'Description: "{status.description}"')
|
|
|
|
if query:
|
|
print(f"Host: {query.raw['hostip']}:{query.raw['hostport']}")
|
|
print(f"Software: v{query.software.version} {query.software.brand}")
|
|
print(f"Plugins: {query.software.plugins}")
|
|
|
|
print(f"Ping: {ping} ms")
|
|
print(f"Players: {status.players.online}/{status.players.max}")
|
|
|
|
if query:
|
|
print(f"Players Online: {query.players.names}")
|
|
print("\n")
|
|
sleep(delay_int)
|
|
|
|
if port != "*":
|
|
while True:
|
|
status = server.status()
|
|
query = server.query()
|
|
ping = server.ping()
|
|
print("---------- " + ip + ":" + port + " ----------")
|
|
print(f"Version: v{status.version.name} (protocol {status.version.protocol})")
|
|
print(f'Description: "{status.description}"')
|
|
|
|
if query:
|
|
print(f"Host: {query.raw['hostip']}:{query.raw['hostport']}")
|
|
print(f"Software: v{query.software.version} {query.software.brand}")
|
|
print(f"Plugins: {query.software.plugins}")
|
|
|
|
print(f"Ping: {ping} ms")
|
|
print(f"Players: {status.players.online}/{status.players.max}")
|
|
|
|
if query:
|
|
print(f"Players Online: {query.players.names}")
|
|
|
|
print("\n")
|
|
sleep(delay_int)
|
|
|