You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Tanner Collin 3aa766926b Update requirements 3 years ago
jobs Split jobs.py into files 3 years ago
protocol Detect disconnection and exit the script 3 years ago
.gitignore Rename data module to mcdata 3 years ago
LICENSE Initial commit 4 years ago
README.md Add list of commands to readme 3 years ago
blocks.py Simplify handling block and item ids 3 years ago
bot.py Split jobs.py into files 3 years ago
download_mcdata.sh Rename data module to mcdata 3 years ago
game.py Manage needed items and item counts better 3 years ago
items.py Simplify handling block and item ids 3 years ago
job.py Split jobs.py into files 3 years ago
main.py Add state machine for eating food 3 years ago
mcdata.py Finish executing the villager trade 3 years ago
mobs.py Rename data module to mcdata 3 years ago
monkey_patch.py Detect disconnection and exit the script 3 years ago
path.py Program the bot to crawl, fix wood farming bugs 3 years ago
requirements.txt Update requirements 3 years ago
test_pycraft.py Rename test script 4 years ago
utils.py Rename data module to mcdata 3 years ago
vector.py Move to our own vector module instead of Panda3D 3 years ago

README.md

Minecraft Bot

Setup

Assuming Debian / Ubuntu based distro:

$ sudo apt update
$ sudo apt install build-essential python3 python3-dev python3-pip python3-virtualenv git

$ git clone https://git.tannercollin.com/tanner/minecraft-bot.git
$ cd minecraft-bot/
$ bash download_mcdata.sh
$ virtualenv -p python3 env
$ source env/bin/activate
(env) $ pip install -r requirements.txt

Always make sure the virtual environment is running (env).

Running

(env) $ USERNAME=you@domain.com PASSWORD=supersecret SERVER=example.com python main.py

Commands

Talking to bot (All commands can be found in "game.py" under "public commands", starting around line 494)

Use prefix (in this case, "1") to call to attention before giving command. (EX. 1ping, 1here, etc.)

ping

Will respond "pong" if active and listening

pos

Will respond with current position

afk

Will afk (if not already)

unafk

Will unafk (if afk)

error


inv

Will list inventory (in terminal)

time


count


loaded


players


objects


mobs


monsters


villagers


threats


spiral


sand slice


zzz

Will afk if in overworld, and if not already afk

tree


block


temporary workarounds

Add "?" to line 457, which is "match1 = re.match(r'<(\w+)> (.*)', text)"

It should now look like this "match1 = re.match(r'<?(\w+)> (.*)', text)" This allows the bot to react to commands made by someone else than the creator of code (Tanner6)