Joseta is a multipurpose, single server, Discord bot made with in Java with the JDA library.
This bot original purpose is to only be used in the official Mindustry France Discord server. It was made without support for multiple servers nor to be for public usage. This could change in the future.
This bot is not yet fully usable for personal use due to multiple hardcoded values that are now mostly removed with the configuration menu. If you wish to use it you are free to do so, but we do not give any support as of now.
We could have used JavaScript, Python or literally any other common languages, but due to personal preferences we chose Java. The JDA library was a library we already had experience with on top of being popular.
Being multipurpose and not centered around one specific category or idea. All features implemented, updated or removed are based of our needs.
Below is non-exhaustive list of the features this bot currently has:
-
An Image-based Welcome for new members (or message in case the image is disabled or not properly loaded).
-
A Goodbye Message for leaving members.
-
Rules + an Acceptation System, acting as verification too (not yet configurable).
-
An Auto Response for common questions (not yet configurable but can be disabled).
-
A Counting Channel to let users count until infinity.
-
Multiple commands:
Category Commands Use /configConfigure the bot variables for your server. Use a GUI like comoponent message. Misc. /pingGet the bot and Discord API ping in milliseconds. /multiManually send the multiplayer help message. /markov(Not implemented!) Generate a pseudo-random message using messages sent on the server. /reminderAdd or list reminders. Moderation /modlogGet a member current moderation history. /(un)ban(Un)Ban a member from the server. /kickKick a member from the server. /(un)timeout(Un)Timeout a member on the server. /(un)warn(Un)Warn a member on the server. /clearClear messages in the channel.
The current plans and ideas for this bot are the following, in the likely order in which they will be made:
-
Add a Logging system (PR #15):
-
Add a Ticket system (probably PR 17 or 18).
-
Add permissions check
-
Collect and display statistics (message count, user join/leave)
-
Message leaderboard + levels (?).
-
Add translation for messages & logging (mainly to lower string repetitions and to have it all in one file)
-
Support multi-server:
- Mainly to make it usable outside our server.
- Make it actually usable for others.
Building requires JDK 21 or later.
At the root of the project, use the following command:
./gradlew shadowJar
Once the build process is finished, the output will be present in ./build/libs/JosetaBot.jar.
You will first need to follow the instructions in the .env.template file before being able to run the bot.
This is mandatory.
Then, you can execute this command: java -jar build/libs/JosetaBot.jar with the following arguments: (after the .jar)
- Default: run the bot normally. (Log level is info level)
--debug: run the bot in debug mode. (Log level is debug level & intended for testing)--server: run the bot in server mode. (Log level is debug level & save log file up to 14 days)
You can also run the runShadow Gradle task with ./gradlew runShadow, which is the same as running the jar with the --debug argument.
Thanks goes to these wonderful people (emoji key):
Jojo 💻 🤔 🚧 🚇 |
ZetaMap 💻 |
Patou 💻 |
l4p1n (Mathias B.) 💻 🤔 🧑🏫 |
|||
|
|
||||||
This project follows the all-contributors specification. Contributions of any kind welcome!