40 lines
2.0 KiB
Python
40 lines
2.0 KiB
Python
# Copyright (C) 2023 zyphlar
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
#
|
|
from mcstatus import JavaServer
|
|
import json
|
|
|
|
# You can pass the same address you'd enter into the address field in minecraft into the 'lookup' function
|
|
# If you know the host and port, you may skip this and use JavaServer("example.org", 1234)
|
|
server = JavaServer.lookup("your.minecraft.server.hostname.here")
|
|
|
|
# 'status' is supported by all Minecraft servers that are version 1.7 or higher.
|
|
# Don't expect the player list to always be complete, because many servers run
|
|
# plugins that hide this information or limit the number of players returned or even
|
|
# alter this list to contain fake players for purposes of having a custom message here.
|
|
status = server.status()
|
|
print(json.dumps({'players': status.players.online, 'ms': status.latency}))
|
|
#print(f"{{""players"": {status.players.online}, ""ms"": {status.latency} }}")
|
|
|
|
# 'ping' is supported by all Minecraft servers that are version 1.7 or higher.
|
|
# It is included in a 'status' call, but is also exposed separate if you do not require the additional info.
|
|
#latency = server.ping()
|
|
#print(f"The server replied in {latency} ms")
|
|
|
|
# 'query' has to be enabled in a server's server.properties file!
|
|
# It may give more information than a ping, such as a full player list or mod information.
|
|
#query = server.query()
|
|
#print(f"The server has the following players online: {', '.join(query.players.names)}")
|