A lightweight Minecraft client for querying the status data of a Minecraft server.


Keywords
client, libary, minecraft, minecraft-ping, minecraft-query, minecraft-server, minecraft-server-pinger, minecraft-slp, pip, python, python3, tcp, tcp-client
License
MIT
Install
pip install mcclient-lib==1.1.0

Documentation

MCClient-lib

Downloads PyPI

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

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.