Friday, 22 May 2015

MINECRAFT BOT BUILDER

MINECRAFT BOT BUILDER
MINECRAFT BOT BUILDER
MINECRAFT BOT BUILDER
MINECRAFT BOT BUILDER


This bot is meant either for helping with server administration (ie: backup/restore) or for personal use for accelerating & automating monotonous tasks (like digging holes) giving you more time to get creative.

Things the bot can do:
* Draw lines
* Draw cuboids (solid 2D or 3D areas). This means that you can draw cuboids out of blocks (ie: brick) or you can draw negative cuboids (ie: air) to flatten areas, etc.
* Copy & Paste 2D or 3D areas of the map from one part of the map to another, or due to how a chunk of the map is saved to your computer, to other servers.
* Backup & Restore parts of the map. You can selectively restore part of the map to say.. backup12, and then another part of the map to backup13.
* Sponge an area of the map by placing sponges every 5 blocks in 3 dimensions. Doesn't work the best right now since it won't place sponges inside of objects and so won't completely erase all of the water. Works somewhat with .restore in that you first place sponges with .sponge and then .restore them away.
* Erase blocks of a certain type from an area. This is what I'm using to get rid of sponges at the moment if I don't have an area .backup'd.

Example:
Long (9 minute) rambling video of me showing the features all the while spastically flailing the mouse around to induce seizures in the viewers. :


.drawline @0:15
.goaway @1:00
.cuboid @1:05
.sponge @2:05
.erase @2:55
.copy @ 3:20
.paste @ 3:50
.backup @ 5:10
.restore @ 6:00
unflooding water & lava via .restore @ 6:40

Features not shown:
.reset -- for when you mess up placing the brown mushroom to define a cuboid
.abort -- for when you want the bot to immediately stop what it's doing.



Where to get the bot:


Download or check out (with svn) all of the files from here
Save them as something with the .py extension, install the dependencies, run it with python.

or

If you're a fan of downloading .exes from strangers on the internet, I then give you this file:

Insidebot in .exe form. Unzip it and then put it into a folder and then run bot2.exe



Manual Installation (if not using the .exe):
You need to have the following installed on your computer:
Python 2.6 Twisted for Python 2.6
zope.interface for python 2.6
mechanize (unfortunately the installation process is a bit more indepth..)


Once you have all of those installed, you can lunch the bot from the command line. Just follow the onscreen directions.

Configuring the bot:
Limiting who can use the bot:
Create a users.txt file in the same directory as the script with the name of one allowed user per line. If the users.txt file does not exist, then anyone can use the bot. If it exists, then only the people named can use the bot.

Configuring some bot settings:
Open up the bot.py file with notepad and then at the very top, where it says 'User Configuration Section', you can edit some variables. Each variable has a little blurb next to it as to what it does. Do not change anything under the user configuration section part. I won't help you if you do :tongue.gif:

Help, it doesn't work:
The bot doesn't connect
Run the bot from the command line (go to start-> run, type in 'cmd.exe' into the box that pops up. On win7 (and vista?) start->[search programs and files box...] and type in cmd.exe in there.

Once that's open, navigate to the directory where you placed the bot.exe.
cd .. makes you go up a folder
cd folder_name makes you go into that folder. You can type cd fol- and then hit tab and it'll auto complete.

Once you're in the same folder as the bot.exe, just type 'bot.exe' and then the program will start up and the window won't close once it stops running. Copy/paste everything you see in that window and then paste it in a message here and I'll try to figure out what is wrong with the bot.

However, before you do that, make sure you'd typed everything in correctly.

I want to change the server or I don't want to type (or paste) the server hash
Open up (or create info.txt if it doesn't exist yet) and then write in your information in this format:
username-password-hash

Make sure to hit 'y' when it prompts you to store the information in plaintext on your computer (if you don't mind storing your minecraft password in a .txt on your computer) so you don't have to type in everything every time.

I may try to cobble together a GUI to ease this later.
I will also pipe all text to a log file for easier debugging later.

The bot gets kicked for building too fast
Edit config.py and set the build_time to be longer.

Someone else has a bot on the server and when I type .<command here="" name=""></command>, both bots response
Edit config.py and set CMD_PREFIX to some other letter

I don't like that the bot spams so much
Edit config.py and set SILENT_MODE to True (Note the capitalization)

How do I get the bot to move between maps on multi-world servers?
Use .say to force the bot to 'say' the command and thus be moved.
ie: .say /goto map4

I don't want anyone else to use this bot.
Edit users.txt and include one name per line of the people that you want to have access to the bot.

How does .copy/.paste work?
When using .copy, define a 3D (or 2D..) area by placing mushrooms at the diagonals of this space. That area will then be copied into a .chunk file on your computer.

When pasting, .paste will paste that chunk into the server. The orientation will be the same as the original object. You can gauge where from where the bot will start pasting by looking at the (x,y,z) coordinate (if you're using WoM). The bot starts pasting at the lowest x,y,z coordinate.

In conclusion:
If you're using this bot &amp; want more features added to it, I can see what I can do about it.

If you really end up liking this bot, then I'll just say that I haven't bought minecraft yet and well... I hear there are big changes coming to minecraft and multiplayer survival could probably benefit from a bot in one way or another :wink.gif:

Thanks JonasQ/MrScarface of the Electronum servers for buying me a copy :3 I always knew my coding would bring me lots of money and fame (*cough*).