[![Documentation Status](https://readthedocs.org/projects/mcipc/badge/?version=latest)](https://mcipc.readthedocs.io/en/latest/?badge=latest)
# mcipc
A Minecraft inter-process communication API implementing the [RCON](http://wiki.vg/RCON) and [Query](http://wiki.vg/Query) protocols.
## News
### 2020-12-21 - mcipc-2.0
Great news: `mcipc` is now available in version 2.
The version 2 update includes the outsourcing of the RCON protocol and client implementation into an [own project](https://github.com/conqp/rcon).
This allowes for the RCON library to be used independently of mcipc, e.g. for other games which support the RCON protocol.
Furthermore `mcipc`'s RCON client implementations have been overhauled. They now provide functions to interact with the respective server.
It was therefor necessary to not have one implementation of `mcipc.rcon.Client`, but three:
* `mcipc.rcon.be.Client` Client for Bedrock Edition servers.
* `mcipc.rcon.ee.Client` Client for Education Edition servers.
* `mcipc.rcon.je.Client` Client for Java Edition servers.
To provide some backwards compatibility, the `mcipc.rcon.Client` is now an alias for `mcipc.rcon.je.Client`.
You'll find a full documentation of each client's capabilities, i.e. methods in the [documentation](https://mcipc.readthedocs.io/en/latest).
## Requirements
`mcipc` requires Python 3.9 or higher.
It also depends on [rcon](https://github.com/conqp/rcon) which has been split from this project.
If you install `mcicp` via `pip`, it will automatically be installed as a dependency.
## Documentation
Documentation is available on [readthedocs](https://mcipc.readthedocs.io/en/latest).
## Quick start
Install mcipc from the [AUR](https://aur.archlinux.org/packages/python-mcipc/) or via:
pip install mcipc
### Query protocol
The `Query` protcol is used to query a Minecraft server for server information.
The Minecraft query protocol has two query modes: *basic stats* and *full stats*.
```python
from mcipc.query import Client
with Client('127.0.0.1', 25565) as client:
basic_stats = client.stats() # Get basic stats.
full_stats = client.stats(full=True) # Get full stats.
print(basic_stats)
print(full_stats)
```
### RCON protocol
The `RCON` protocol is used to remotely control a Minecraft server, i.e. execute
commands on a Minecraft server and receive the respective results.
```python
from mcipc.rcon.je import Biome, Client # For Java Edition servers.
#from mcipc.rcon.be import Client # For Bedrock Edition servers.
#from mcipc.rcon.ee import Client # For Education Edition servers.
with Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:
seed = client.seed # Get the server's seed.
players = client.list() # Get the server's players info.
mansion = client.locate('mansion') # Get the next mansion's location.
badlands = client.locatebiome(Biome.BADLANDS) # Get the next location of a badlands biome.
print(seed)
print(players)
print(mansion)
print(badlands)
```
Example output of the above commands with a Java Edition client:
```python
-8217057902979500137
Players(online=1, max=20, players=[Player(name='coNQP', uuid=None, state=None)])
Location(name='mansion', x=-7216, y=None, z=-1952, distance=7479)
Location(name='minecraft:badlands', x=1512, y=None, z=3388, distance=3634)
```
## Credits
Many thanks to all contributers to the [Minecraft Wiki](https://minecraft.gamepedia.com/) and the [Wiki.vg](https://wiki.vg/Main_Page).
## License
Copyright (C) 2018-2021 Richard Neumann <mail at richard dash neumann period de>
mcipc 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.
mcipc 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 mcipc. If not, see <http://www.gnu.org/licenses/>.
## Legal
Minecraft content and materials are trademarks and copyrights of
Mojang and its licensors. All rights reserved.
This program is free software and is not affiliated with Mojang.
Raw data
{
"_id": null,
"home_page": "https://github.com/conqp/mcipc",
"name": "mcipc",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "minecraft python server rcon query",
"author": "Richard Neumann",
"author_email": "mail@richard-neumann.de",
"download_url": "https://files.pythonhosted.org/packages/72/03/be382784dd025555df9fff1e52817f4168706c4d4bdcb7f842c70bb2a968/mcipc-2.4.2.tar.gz",
"platform": null,
"description": "[![Documentation Status](https://readthedocs.org/projects/mcipc/badge/?version=latest)](https://mcipc.readthedocs.io/en/latest/?badge=latest)\n\n# mcipc\nA Minecraft inter-process communication API implementing the [RCON](http://wiki.vg/RCON) and [Query](http://wiki.vg/Query) protocols.\n\n## News\n\n### 2020-12-21 - mcipc-2.0\nGreat news: `mcipc` is now available in version 2.\nThe version 2 update includes the outsourcing of the RCON protocol and client implementation into an [own project](https://github.com/conqp/rcon).\nThis allowes for the RCON library to be used independently of mcipc, e.g. for other games which support the RCON protocol.\nFurthermore `mcipc`'s RCON client implementations have been overhauled. They now provide functions to interact with the respective server.\nIt was therefor necessary to not have one implementation of `mcipc.rcon.Client`, but three:\n\n* `mcipc.rcon.be.Client` Client for Bedrock Edition servers.\n* `mcipc.rcon.ee.Client` Client for Education Edition servers.\n* `mcipc.rcon.je.Client` Client for Java Edition servers.\n\nTo provide some backwards compatibility, the `mcipc.rcon.Client` is now an alias for `mcipc.rcon.je.Client`.\nYou'll find a full documentation of each client's capabilities, i.e. methods in the [documentation](https://mcipc.readthedocs.io/en/latest).\n\n## Requirements\n`mcipc` requires Python 3.9 or higher.\nIt also depends on [rcon](https://github.com/conqp/rcon) which has been split from this project.\nIf you install `mcicp` via `pip`, it will automatically be installed as a dependency.\n\n## Documentation\nDocumentation is available on [readthedocs](https://mcipc.readthedocs.io/en/latest).\n\n## Quick start\n\nInstall mcipc from the [AUR](https://aur.archlinux.org/packages/python-mcipc/) or via:\n\n pip install mcipc\n\n### Query protocol\nThe `Query` protcol is used to query a Minecraft server for server information.\nThe Minecraft query protocol has two query modes: *basic stats* and *full stats*.\n\n```python\nfrom mcipc.query import Client\n\nwith Client('127.0.0.1', 25565) as client:\n basic_stats = client.stats() # Get basic stats.\n full_stats = client.stats(full=True) # Get full stats.\n\nprint(basic_stats)\nprint(full_stats)\n```\n\n### RCON protocol\nThe `RCON` protocol is used to remotely control a Minecraft server, i.e. execute\ncommands on a Minecraft server and receive the respective results.\n\n```python\nfrom mcipc.rcon.je import Biome, Client # For Java Edition servers.\n#from mcipc.rcon.be import Client # For Bedrock Edition servers.\n#from mcipc.rcon.ee import Client # For Education Edition servers.\n\nwith Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:\n seed = client.seed # Get the server's seed.\n players = client.list() # Get the server's players info.\n mansion = client.locate('mansion') # Get the next mansion's location.\n badlands = client.locatebiome(Biome.BADLANDS) # Get the next location of a badlands biome.\n\nprint(seed)\nprint(players)\nprint(mansion)\nprint(badlands)\n```\n\nExample output of the above commands with a Java Edition client:\n\n```python\n-8217057902979500137\nPlayers(online=1, max=20, players=[Player(name='coNQP', uuid=None, state=None)])\nLocation(name='mansion', x=-7216, y=None, z=-1952, distance=7479)\nLocation(name='minecraft:badlands', x=1512, y=None, z=3388, distance=3634)\n```\n\n## Credits\nMany thanks to all contributers to the [Minecraft Wiki](https://minecraft.gamepedia.com/) and the [Wiki.vg](https://wiki.vg/Main_Page).\n\n## License\nCopyright (C) 2018-2021 Richard Neumann <mail at richard dash neumann period de>\n\nmcipc is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nmcipc is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with mcipc. If not, see <http://www.gnu.org/licenses/>.\n\n## Legal\nMinecraft content and materials are trademarks and copyrights of\nMojang and its licensors. All rights reserved.\nThis program is free software and is not affiliated with Mojang.\n\n\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "A Minecraft server inter-process communication library.",
"version": "2.4.2",
"project_urls": {
"Homepage": "https://github.com/conqp/mcipc"
},
"split_keywords": [
"minecraft",
"python",
"server",
"rcon",
"query"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f1c603a85f19488df0a1f7b37af45460c464b969758fc0bd8f00bd42f20eef61",
"md5": "95159b5a8047d1b3caf43478c220aa63",
"sha256": "a1a14d06956ab8e7a0571b2dc0f9a2ea509f44c1c49845b27355d7c116d8c580"
},
"downloads": -1,
"filename": "mcipc-2.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "95159b5a8047d1b3caf43478c220aa63",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 127904,
"upload_time": "2022-08-22T09:20:06",
"upload_time_iso_8601": "2022-08-22T09:20:06.530925Z",
"url": "https://files.pythonhosted.org/packages/f1/c6/03a85f19488df0a1f7b37af45460c464b969758fc0bd8f00bd42f20eef61/mcipc-2.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7203be382784dd025555df9fff1e52817f4168706c4d4bdcb7f842c70bb2a968",
"md5": "37555697fa27bb1e32cc78798b62419b",
"sha256": "b2899b5749f12c26a477e7d8cdcea65bc96c65b795728825d24fed3447af43dc"
},
"downloads": -1,
"filename": "mcipc-2.4.2.tar.gz",
"has_sig": false,
"md5_digest": "37555697fa27bb1e32cc78798b62419b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 105415,
"upload_time": "2022-08-22T09:20:09",
"upload_time_iso_8601": "2022-08-22T09:20:09.892346Z",
"url": "https://files.pythonhosted.org/packages/72/03/be382784dd025555df9fff1e52817f4168706c4d4bdcb7f842c70bb2a968/mcipc-2.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-08-22 09:20:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "conqp",
"github_project": "mcipc",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "rcon",
"specs": []
}
],
"lcname": "mcipc"
}