Bot/Proxy for Minecraft
- Support for 1.4.7 protocol version 51
- Running under PyPy
- Clean flake8 with long lines
- Optional (mandatory for proxy mode) PyCrypto dependency if you want the datastream to be encrypted. Configurable in config.
- pywin32 dependency under Windows in proxy mode - not supplied.
- Rest of the dependencies is included in "libs" directory.
- Client side artificial player for Minecraft that runs on vanilla server in offline mode. No modification on server/client side needed.
- Basic pathfinding
- Solid block awareness
- Avoiding lava, web and cactus
- Reasonable handeling of vines, ladders and water
- No active interaction with the world. That is no digging, placing blocks, open/close doors, etc.
- Use signs to set up points to rotate -> details below
- Configure using command line arguments or modifying twistedbot/config.py
- In the idle state bot just stares at you, turning his head and body.
By default connects to localhost
pypy bot.py -h
In game commands
If your username (commander) is set, then you can use chat to send commands to bot.
- "look at me" stands still and looks at you
- "rotate 'group'" rotates (after the end, goes back to the beginning) between signs -> details below
- "circulate 'group'" circulates (at the end, goes backward towards the beginnings) between signs -> details below
- "go 'name'" go to specific waypoint identified by name, or if name is group and order separated with space
- "show 'name'" show in chat waypoint, group or waypoints in group
- "follow me" bot starts following you
- "cancel" cancel current activity
Use signs as a waypoints. When you want the sign to be part of waypoints that bot can travel between do the following, all without quotes:
- place sign
- line 1: 'waypoint'
- line 2: If number, for example '1', '2' or '3.5', it will be used as an order of how to sort the waypoints in group (if line 3 contains text). Otherwise parsed as a name that waypoint can be addressed directly.
- line 3: Groupname, if given number on line 2, this name groups waypoints.
- line 4: Name, if number on line 2 and groupname on line 3, then has same function as name in line 2.
- Intercepts network traffic between client and server, usefull for debugging and figuring out how Minecraft works.
- If you are runnig server, proxy and client on the same machine, have quad core.
- Keep in mind that thanks to the encryption, proxy has to first decrypt and then encrypt again. This may cause a noticeable delay.
To run with defaults, server is localhost:25565 and proxy is listening on localhost:25566. Then connect your client to localhost:25566.
When you close proxy, it prints packet statistics before exit.
pypy proxy.py -h
To make your own filter, look in twistedbot.proxy_processors.default for an example.