KaellyBOT aims to provide useful commands for DOFUS community (FR/EN/ES)! If you have questions, suggestions or just want to say hello, feel free to join the discord support server :)
Invite KaellyBOT to your server
There is a running official instance used by 8000+ discord servers and 380.000+ users. Just click here, follow the discord instructions and that's it!
Commands
Developer section
This section is dedicated for developers. If you're not, please use the official instance described above. Note: this repository is considered as deprecated: you can find some explanations just below.
Current structure
Java 8 project based on Discord4J V3.0.15
Built with Maven
Commands detection with regex
Store data into SQLite database
Start it with java -jar Kaellybot.jar
Limitations
With the time and the growing usage, a lot of new problems appear:
The use of file database is limited and adapted for small bots
No smart caching for stored data
No use of Reactor project to optimize the performances
Permissions needed to send a message are not well checked
Commands arguments are not well divided: all behaviour described in the command class
Almanax, RSS and Twitter events are not well managed for large bots (it breaks very often)
Usage of tmux/screen to host it
Some of these previous limitations require more RAM and so increase the cost to host it
All these factors push me to put this project as deprecated and to think about a new architecture.
Kaelly-core is the equivalent of this one with the following structure:
Java 15 project based on SpringBoot V2.X and Discord4J V3.1.X.
Built with Maven
Dockerized with Jib
Massive use of Reactor
Massive use of Annotations to describe the commands
Massive use of CDI: everything is injectable
Commands arguments detection with regex
Store data into MongoDB database
Microservices and dedicated libraries built for it
This version is still in development and is partially used by the official instance (DofusRoom feature is the only one available).
Kaelly-portals is a SpringBoot microservice to manage the portals positions from different sources like dofus-portals.fr. It is currently used by the official instance.
Kaelly-commons is a SpringBoot library to bring some commons entities or tools, currently used by Kaelly-core and Kaelly-portals.
Kaelly-dashboard is a first draft of a dashboard website (Node/Express/DiscordJS) to configure KaellyBot on your server. This project is paused, not prior and not used. The chosen technologies are not totally defined and will probably change in the future.
Kaelly-environment is the place to store some docker-compose files and automate easily the launch of KaellyBot (partially or entirely) on a new machine.
There is still a lot to do, but I'm working actively on it! If you wanna help, feel free to join the discord support server and discuss! :)