MCClient-lib
A lightweight Minecraft client for querying the status data of a Minecraft server.
Supported Mincraft versions
- Minecraft Java (v1.4.0 and later)
- Minecraft Bedrock
Supported protocols
- ServerListPing for Minecraft java servers
- Legacy ServerListPing for Minecraft java servers before 1.4
- Query Protocol for Minecraft java servers (this needs to be enabled on the server)
- Bedrock ServerListPing for Bedrock servers
Installation
pypi
pip3 install mcclient-lib
pip + github
You can also install the package directly from github.
pip3 install git+https://github.com/Sch8ill/MCClient-lib.git
Usage
ServerListPing
from mcclient import SLPClient
# for Minecraft Java servers from 1.7.* and newer
slp_client = SLPClient("mc.example.com", port=12345)
res = slp_client.get_status()
Query
from mcclient import QueryClient
# for Minecraft Java servers (needs to be enabled on the server)
query_client = QueryClient("mc.example.com", port=12345)
res = query_client.get_status()
Bedrock ServerListPing
from mcclient import BedrockSLPClient
# for Minecraft Bedrock servers
bedrock_slp_client = BedrockSLPClient("mc.example.com", port=12345)
res = bedrock_slp_client.get_status()
Response
How to handle the returned response object
# The server address and port
host = res.host
port = host.port
motd = res.motd
online_players = res.players.online
max_players = res.players.max
player_list = res.players.list
version = res.version.name
protocol_version = res.version.protocol
# only for query responses
plugins = res.plugins
# only for basic ServerListPing
has_favicon = res.favicon
# only for query and Bedrock
gametype = res.gametype
# only for query and bedrock
map = res.map
# only for bedrock
server_id = res.server_id
# timestamp of the request
timestamp = res.timestamp
# the reponse as a dictonary with some further infomation
# the keys are named like the values in the response object
res_dictionary = res.res
Queryable data
- motd
- online player count
- max player count
- player list
- server version
- server protocol version
- mods and plugins
- has a favicon
- name of map
- hostport and hostip
- gametype
- server id
Note: not every field is queryable with every protocol.
Documentation
You can find more documentation here, feel free to look into the source if you can't find enough.