Files
mcstatus/README.md
2022-01-28 20:53:53 -06:00

104 lines
3.2 KiB
Markdown

![travis build status](https://img.shields.io/travis/Dinnerbone/mcstatus/master.svg)
![current version](https://img.shields.io/pypi/v/mcstatus.svg)
![supported python versions](https://img.shields.io/pypi/pyversions/mcstatus.svg)
[![discord chat](https://img.shields.io/discord/936788458939224094.svg?logo=Discord)](https://discord.gg/C2wX7zduxC)
mcstatus
========
`mcstatus` provides an easy way to query Minecraft servers for any information they can expose.
It provides three modes of access (`query`, `status` and `ping`), the differences of which are listed below in usage.
Usage
-----
Java Edition
```python
from mcstatus import MinecraftServer
# If you know the host and port, you may skip this and use MinecraftServer("example.org", 1234)
server = MinecraftServer.lookup("example.org:1234")
# 'status' is supported by all Minecraft servers that are version 1.7 or higher.
status = server.status()
print(f"The server has {status.players.online} players and replied in {status.latency} ms")
# 'ping' is supported by all Minecraft servers that are version 1.7 or higher.
# It is included in a 'status' call, but is 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 servers' 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)}")
```
Bedrock Edition
```python
from mcstatus import MinecraftBedrockServer
# If you know the host and port, you may skip this and use MinecraftBedrockServer("example.org", 19132)
server = MinecraftBedrockServer.lookup("example.org:19132")
# 'status' is the only feature that is supported by Bedrock at this time.
# In this case status includes players_online, latency, motd, map, gamemode, and players_max. (ex: status.gamemode)
status = server.status()
print(f"The server has {status.players_online} players online and replied in {status.latency} ms")
```
Command Line Interface
```
$ mcstatus
Usage: mcstatus [OPTIONS] ADDRESS COMMAND [ARGS]...
mcstatus provides an easy way to query Minecraft servers for any
information they can expose. It provides three modes of access: query,
status, and ping.
Examples:
$ mcstatus example.org ping
21.120ms
$ mcstatus example.org:1234 ping
159.903ms
$ mcstatus example.org status
version: v1.8.8 (protocol 47)
description: "A Minecraft Server"
players: 1/20 ['Dinnerbone (61699b2e-d327-4a01-9f1e-0ea8c3f06bc6)']
$ mcstatus example.org query
host: 93.148.216.34:25565
software: v1.8.8 vanilla
plugins: []
motd: "A Minecraft Server"
players: 1/20 ['Dinnerbone (61699b2e-d327-4a01-9f1e-0ea8c3f06bc6)']
Options:
-h, --help Show this message and exit.
Commands:
json combination of several other commands with json formatting
ping prints server latency
query detailed server information
status basic server information
```
Installation
------------
mcstatus is available on pypi, and can be installed trivially with:
```bash
python3 -m pip install mcstatus
```
Alternatively, just clone this repo!
License
-------
mcstatus is licensed under Apache 2.0.