-
Notifications
You must be signed in to change notification settings - Fork 1
Home
EARLY ACCESS -> MIGHT CRASH AT ANY TIME |
---|
I shall call this project 'chrani-bot' or just 'the bot' for the remainder of this wiki
- Player-data is being monitored and can be used throughout the bot
- IP-Checks can be integrated with an external tool, free for moderate usage: https://ipinfo.io/
- Actions can be created that the bot will execute
- by chat-command
- by telnet-event
- periodically
- Players can be checked against certain criteria during log-in, issuing actions before they have entered the world.
With these mechanisms, a lot of functions are possible. The following have been integrated already:
- Password authentication
- Several authentication levels
- Different permissions per authentication level
- Locations can be created
- Secure lobby for new players
- Player-homes
- Named PoI
- A whitelist can be set up
- Players with ASCII names can be kicked during log-in
- Players from blacklisted countries can be kicked during log-in
- Players with URL-Style names can be kicked during log-in
The bot will run periodic polls to get current player-data and all telnet-lines/chat-commands. Actions can be tied to chat-commands, monitors can be set up to fire actions when specific conditions are met.
Actions and events can be configured on a user-rank basis.
A lobby system is in place to fetch new players and keep them in any specified area, artificially confined or open. A players position will be monitored and they will be teleported back to the lobby whenever they leave it's specified area. There is no way around this other than authenticating with the bot. The system will jump into action as soon as a lobby is placed.
Provide 'home' commands. You can set a home and return to it, if a players permissions allow it. The home can have a few options, like a variable size and teleport-spot, which can be set anywhere inside the home-area. Players will be notified on entering and leaving of such an area in the games chat.
Provide location commands. You can set locations that act pretty much like a home does. Locations can have warning messages set for an inner and an outer perimeter and distinguishes between entering an leaving.
Locations, like homes, can have a protected core, teleporting every player but the owner out.
Several small goodies are included like a leg-fixer, a health buff command, kicking and banning, listing players, going to your backpack after death and more. These are just for fun and may be removed at any time
The chrani-bot is about easy installation and unobtrusive integration.
Though it is meant to be installed on the same server as the game itself, it will work perfectly from any remote location. You can basically run it in any python (2.7x) console with network-access: For Example, development on the bot is done via PyCharm's python console and the game running on our remote root server.
The bot has not been tested. It works for me and a few others have tried it, but no real testing has been done. I have no clue if or how well the bot will scale. A test server has been running successfully for several weeks now. Never had more than four players at the same time though.
Judging from my personal tests, the basic functions work well. Set up correctly, it will survive server-restarts as well as bot-restarts.
Lobby and home command are pretty solid, simple locations are working as well.
I am currently working on making the code-design easier to follow and extend. I am currently learning Python, this is my first and only project with it. There's been a lot of questionable design decisions I am now ironing out.
For now, please refer to my blog posts about the bot on my servers website ^^