mctools

Minecraft Connection Tools - Python implementations of common Minecraft protocols.

https://github.com/OwenCochell/mctools

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary

Keywords

minecraft minecraft-server-list-ping query rcon
Last synced: 6 months ago · JSON representation

Repository

Minecraft Connection Tools - Python implementations of common Minecraft protocols.

Basic Info
  • Host: GitHub
  • Owner: OwenCochell
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 423 KB
Statistics
  • Stars: 61
  • Watchers: 3
  • Forks: 6
  • Open Issues: 2
  • Releases: 10
Topics
minecraft minecraft-server-list-ping query rcon
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.md

Minecraft Connection Tools

A python implementation for interacting with Minecraft servers.

Documentation Status

Introduction

mctools allows you to interact with Minecraft servers via rcon, query, and server list ping protocol.

This allows you to do the following:

  • Send and receive Minecraft server commands
  • Get player count(max and currently playing)
  • Get server version
  • Get the message of the day
  • Get currently installed plugins
  • And much more!

All of this can be achieved using simple, intuitive calls to mctools. mctools does all the heavy lifting for you! We offer synchronous and asynchronous components, allowing mctools to be used in asyncio event loops. Also, mctools has no external dependencies(Unless you are a windows user and need color support), and only uses the python standard library. Just download and go!

Example

Send a command to the Minecraft server via rcon:

```python from mctools import RCONClient # Import the RCONClient

HOST = 'mc.server.net' # Hostname of the Minecraft server PORT = 1234 # Port number of the RCON server

Create the RCONClient:

rcon = RCONClient(HOST, port=PORT)

Login to RCON:

if rcon.login("password"):

# Send command to RCON - broadcast message to all players:

resp = rcon.command("broadcast Hello RCON!") ```

Installation

You can install mctools via pip:

bash $ pip install mctools

If you are a windows user and want color support, then install mctools like so:

bash $ pip install mctools[color]

For more information on installing mctools, check out the instillation section in our documentation.

Formatting

mctools has support for handling Minecraft formatting codes. You can decide weather mctools replaces formatting characters with intended values, removes them, or leaves them be.

For example, lets say you received the following content during a rcon session:

§e--------- §fHelp: Index (1/40) §e-------------------- §7Use /help [n] to get page n of help. §6Aliases: §fLists command aliases §6Bukkit: §fAll commands for Bukkit §6ClearLag: §fAll commands for ClearLag §6Essentials: §fAll commands for Essentials §6LuckPerms: §fAll commands for LuckPerms §6Minecraft: §fAll commands for Minecraft §6Vault: §fAll commands for Vault §6WorldEdit: §fAll commands for WorldEdit

As you can see, this text is somewhat hard to read. If you told mctools to remove the formatting characters, then the output will look like this:

--------- Help: Index (1/40) -------------------- Use /help [n] to get page n of help. Aliases: Lists command aliases Bukkit: All commands for Bukkit ClearLag: All commands for ClearLag Essentials: All commands for Essentials LuckPerms: All commands for LuckPerms Minecraft: All commands for Minecraft Vault: All commands for Vault WorldEdit: All commands for WorldEdit

Much easier to read and process. mctools handles this operation automatically, so you don't have to. mctools also handles situations where content is sent in ChatObject notation, and can extract messages from the player sample list.

To learn more about formatters, and how to create your own, then please check out the formatting documentation.

MCLI - mctools Command Line Interface

mctools is shipped with a CLI front end called mcli, which you can use to start rcon sessions, get stats via query/ping, check if a Minecraft server is up, ect.

After installing mctools(through pip or setuptools), you can invoke mcli like so:

bash $ mcli --help

You can also run mcli.py(which is located in the parent directory) if you downloaded the source code and did not install via pip/setuptools.

The above command will generate the help menu for mcli. To learn more about mcli, please check out the mcli documentation.

We supply mcli as an executable built using pyinstaller under releases for windows systems that don't have python installed. The exe file provided may be buggy or have some weird quirks, so it is recommended to invoke mcli via python.

Documentation

mctools has an extensive documentation. It contains tutorials, the API reference, and best practice recommendations. You can find the documentation here.

Be sure to also check out the mctools PyPi page for more information.

Bug Reports

If you encounter a bug or any other event that does not seem normal, then please open an issue, or email me personally. I will be sure to get back to you as soon as possible.

Your feedback and reports are appreciated! Your comments and issues are an excellent way to correct issues with mctools.

Contributing

Pull requests are welcome and encouraged :) ! If you want to see a feature in mctools, or have found a bug, a PR will be the quickest way to get your change implemented. Feel free to email me or open an issue if you have any problems.

If you are interested in helping in the development of mctools, then send me an email, and we can get talking! Believe me, there is plenty of work that needs to be done. More help would be greatly appreciated!

Conclusion

mctools offers a pythonic, reliable way to interact with Minecraft servers, without being too complicated. Please check the documentation for more information. More features (hopefully) coming soon!

Thank you for reading!

Owner

  • Name: Owen Cochell
  • Login: OwenCochell
  • Kind: user
  • Location: Possibly In Michigan

Just a fellow human who enjoys using and working with computers.

GitHub Events

Total
  • Create event: 2
  • Release event: 2
  • Issues event: 1
  • Watch event: 6
  • Issue comment event: 2
  • Push event: 2
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 1
Last Year
  • Create event: 2
  • Release event: 2
  • Issues event: 1
  • Watch event: 6
  • Issue comment event: 2
  • Push event: 2
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 33
  • Total Committers: 3
  • Avg Commits per committer: 11.0
  • Development Distribution Score (DDS): 0.061
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Owen-Cochell o****l@g****m 31
Owen Cochell o****n@g****m 1
meXc m****c 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 1
  • Average time to close issues: about 22 hours
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: about 22 hours
  • Average time to close pull requests: 1 day
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • PortalGolem (1)
  • gsgleason (1)
Pull Request Authors
  • ciherrera20 (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

setup.py pypi
  • peppercorn *