-
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
- from the webinterface
- Players can be checked against certain criteria during log-in, issuing actions before they have entered the world.
- Integrated socket-based web-interface
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 can be remote controlled via the web-interface
- set players permission groups
- port players home / to the lobby
- kick and ban players
- list their locations and if they are in them or not
- put players on the whitelist or remove them from it
- switch whitelist on or off
- pause the bot's game-interface (only webinterface-actions will work)
- delete all known player-data
- view locations and players on a map
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 and his friends 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
Authenticating with the bot will also enable access to the web-interface with the same set of commands available in-game (where applicable) and more!
The chrani-bot is about easy installation and unobtrusive integration to allow an easy, worry free admin and player experience. Weed out the unwanted in a safe and easy fashion!
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 will never add functions the game already has. There will be no second economy system to pay-gate commands. There will be no bot friendslist or bot-friends for bot features. It does make use of the games friendslist, like for protected locations
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, can be controlled remotely (stop/start/shutdown). Updates, once set up correctly, consist of a simple "git pull"
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. As I still 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 ^^