Hi, the server rules regarding botting have been unclear and have changed over time, so here are some clear rules.
Chat-only bots are allowed.
Other bots are only allowed if you do not profit/benefit more than insignificantly from using them.
Bots cannot use commands that modify the server, like /requestrestart or /cancelrestart
Bots cannot connect automatically to the server. The bot logging in must be initiated by a real person.
The idea about saying you can't use them for profit is to allow people to use bots only for fun. You can test bots, you can mess around with bots, but you can't use bots to do things for you.
Some examples:
Using a bot to travel long distances while you're AFK: Not allowed.
Making a bot solve mazes for fun: Allowed.
Using a bot to mine for you: Not allowed.
Having a pvp bot fight voluntary players, with no exchange of items: Allowed.
Using a bot to build things/map art for you automatically: Not allowed.
Using a pvp bot in real/serious pvp fights: Not allowed.
One more thing to clarify is bots having "weird" movement. Some of you may have seen chatbots that can't be pushed or otherwise moved. This is not necessarily a cheat or against the rules. Movement is (mostly) handled client-side. Clients that aren't based on the vanilla game client may not properly implement things such as movement. This is sometimes unfortunate, but it's unreasonable to expect bot creators to perfectly match vanilla game behavior. This does not mean you are allowed to use mods that make your client behave the same.