Package: minestat
MineStatMineStat is a Minecraft server status checker library for Python, supporting a wide range of Minecraft servers:Java Edition since Minecraft version Beta 1.8 (September 2011),Bedrock Edition starting with Minecraft version 0.14 (March 2018), maybe earlier.SupportsMinecraft SRV record resolution,
which requires the packagednspython.
This mechanism allows server operators to use a custom port or host without the player having to type it.
One common server utilizing this feature example is2b2t: The actual server is atconnect.2b2t.org, while users simply use2bt2.org.
MineStat supports querying both, ifdnspythonis installed.Python exampleTo use the PyPI package:pip install minestatimportminestatms=minestat.MineStat('minecraft.frag.land',25565)print('Minecraft server status of%son port%d:'%(ms.address,ms.port))ifms.online:print('Server is online running version%swith%sout of%splayers.'%(ms.version,ms.current_players,ms.max_players))# Bedrock-specific attribute:ifms.gamemode:print('Game mode:%s'%ms.gamemode)print('Message of the day:%s'%ms.motd)print('Message of the day without formatting:%s'%ms.stripped_motd)print('Latency:%sms'%ms.latency)print('Connected using protocol:%s'%ms.slp_protocol)else:print('Server is offline!')Available parametersThe following parameters exist for theMineStatobject:address: str,Hostname or IP address of the Minecraft server.port: int = 0,Optional port of the Minecraft server. Defaults to auto detection (25565 for Java Edition, 19132 for Bedrock/MCPE).timeout: int = DEFAULT_TIMEOUT,Optional timeout in seconds for each connection attempt. Defaults to 5 seconds.query_protocol: SlpProtocols = SlpProtocols.ALL,Optional protocol to use. See minestat.SlpProtocols for available choices. Defaults to auto detection.resolve_srv: Optional[bool] = NoneOptional, whether to resolve Minecraft SRV records. Requires dnspython to be installed.Minimal example with port auto-detection:importminestatms=minestat.MineStat('minecraft.frag.land')print(f"Is online?{ms.online=}")Available attributesThe following attributes are available on theMineStatobject:online: boolWhether the server is online and reachable with the specified protocol. True if online.address: strAddresss (domain or IP-address) of the server to connect to.port: intPort of the server to connect to.version: strString describing the server Minecraft version. In vanilla servers the version number (e.g. 1.18.2),
may be modified by the server (e.g. by ViaVersion). On Bedrock servers includes the Edition (MCEE/MCPE)
and the server info.motd: strThe raw MOTD returned by the server. May include formatting codes (§) or JSON chat components.Examples (Seehttps://github.com/FragLand/minestat/issues/84#issuecomment-895375890):With formatting codes:§6~~§r §3§lM§7§lA§2§lG§9§lI§4§lC§r1.16 v3§6~~§rJSON chat components:{"extra": [{"color": "gold", "text": "~~"}, {"text": " "}, {"bold": true, "color": "dark_aqua", "text": "M"}, {"bold": true, "color": "gray", "text": "A"}, {"bold": true, "color": "dark_green", "text": "G"}, {"bold": true, "color": "blue", "text": "I"}, {"bold": true, "color": "dark_red", "text": "C"}, {"text": "1.16 v3"}, {"color": "gold", "text": "~~"}], "text": ""}stripped_motd: strThe MOTD with all formatting removed ("human readable").Example (Seehttps://github.com/FragLand/minestat/issues/84#issuecomment-895375890)Above MOTD example:~~ MAGIC1.16 v3~~current_players: intCount of players currently online on the server.max_players: intCount of maximum allowed players as reported by the server.latency: intTime in milliseconds the server took to respond to the information request.slp_protocol: minestat.SlpProtocolProtocol used to retrieve information from the server.connection_status: minestat.ConnStatusStatus of connection ("SUCCESS", "CONNFAIL", "TIMEOUT", or "UNKNOWN").srv_record: boolwether the server has a SRV record.Extra attributesThe following attributes are not availabe with every protocol.player_list: list[str] (UT3/GS4 Query specific)List of online players, may be empty even ifcurrent_playersis over 0.plugins: list[str] (UT3/GS4 Query specific)List of plugins returned by the Query protcol.map: str (UT3/GS4 Query specific)The name of the map the server is running on.gamemode: str (Bedrock specific)Gamemode currently active on the server (Creative/Survival/Adventure).favicon_b64: str (SLP 1.7/JSON specific)Base64-encoded favicon.favicon: str (SLP 1.7/JSON specific)Decoded favicon data.