{"id":23257399,"url":"https://github.com/jojofr1/joseta","last_synced_at":"2025-08-20T15:31:50.650Z","repository":{"id":263115183,"uuid":"889154297","full_name":"JojoFR1/Joseta","owner":"JojoFR1","description":"A Discord bot made in Java with the JDA library.","archived":false,"fork":false,"pushed_at":"2024-12-13T23:43:33.000Z","size":284,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-14T00:26:45.954Z","etag":null,"topics":["discord-bot","java","jda"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JojoFR1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-15T18:03:35.000Z","updated_at":"2024-12-13T23:43:37.000Z","dependencies_parsed_at":"2024-12-14T00:23:56.287Z","dependency_job_id":"3dbee19d-bba6-4431-96d6-be0c47d184d7","html_url":"https://github.com/JojoFR1/Joseta","commit_stats":null,"previous_names":["jojofr1/joseta"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JojoFR1%2FJoseta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JojoFR1%2FJoseta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JojoFR1%2FJoseta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JojoFR1%2FJoseta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JojoFR1","download_url":"https://codeload.github.com/JojoFR1/Joseta/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230434821,"owners_count":18225393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord-bot","java","jda"],"created_at":"2024-12-19T12:34:41.056Z","updated_at":"2025-08-20T15:31:50.642Z","avatar_url":"https://github.com/JojoFR1.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Joseta\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/JojoFR1/Joseta/build.yml?logo=githubactions\u0026style=for-the-badge)\n\n## Project\n\nJoseta is a multipurpose, single server, Discord bot made with the [JDA](https://github.com/discord-jda/JDA) library.\n\n### Why single server?\n\nThis bot original purpose is to only be used in the official [Mindustry France](https://discord.com/invite/hzGPWhZSGV) Discord server only - so it was made without any plans to support multiple servers nor to be a public bot for now, this could change in the future. Features are only implemented based of our needs.\n\nThis bot is not *yet* fully usable for personal use due to multiple hardcoded values that are mostly now removed with the configuration command. If you wish to use it you are free to do so buy we do not give any support as of now.\n\n### Why Java and JDA?\n\nWe could have used JavaScript or Python or literally any other languages, but due to personal preferences we have chosen Java and the JDA library as it was a library we already had experience with. Discussion for a possible Kotlin transition will be explored.\n\n## Features\n\nThis is a multipurpose bot and is not centered around one specific category or idea, all features implemented (updated or removed) are based only on our needs. See below for a list of all the features this bot currently has:\n\n- An **Image-based Welcome** for new members (or message in case the image is disabled or not properly loaded).\n- A **Goodbye Message** for leaving members.\n- A **Counting Channel** to count until infinity.\n- **Rules** + an **Acceptation System**, acting as verification too (not *yet* configurable).\n- An **Auto Response** for common questions (not *yet* configurable but can be disabled).\n- A **Counting Channel** to let users count until infinity.\n- Multiple commands:\n\n  | Category   | Commands       | Use                                                                 |\n  |:-----------|:---------------|:--------------------------------------------------------------------|\n  | Admin      | `/admin`       | Admin related commands (rules, counting managing).                  |\n  |            | `/config`      | Configure the bot variables for your server.                        |\n  | Misc.      | `/ping`        | Get the bot and Discord API ping in milliseconds.                   |\n  |            | `/multi`       | Manually send the multiplayer help message.                         |\n  |            | `/markov`      | Generate a pseudo-random message using messages sent on the server. |\n  |            | `/reminder`    | Add or list reminders.                                              |\n  | Moderation | `/modlog`      | Get a member current moderation history.                            |\n  |            | `/(un)ban`     | (Un)Ban a member from the server.                                   |\n  |            | `/kick`        | Kick a member from the server.                                      |\n  |            | `/(un)timeout` | (Un)Timeout a member on the server.                                 |\n  |            | `/(un)warn`    | (Un)Warn a member on the server.                                    |\n  |            | `/clear`       | Clear messages in the channel.                                      |\n\n## Plans\n\nThe current plans and ideas for this bot are the following, in the likely order in which they will be made:\n\n- Message leaderboard + levels (?).\n\n- Rework config command to use embed instead of multiple arguments command\n\n- Add translation for messages \u0026 logging (mainly to lower string repetitions and to have it all in one file)\n\n- Refactor the Event system\n  - Could do like one single global `ListenerAdapter` and add in the appropriate event the function we want to execute\n  - Maybe use annotations system (could do the same for commands)\n  - Other implementations could be explored (but I do not have any idea for now)\n\n- Add a Logging system (currently on pause, see [PR #6](https://github.com/JojoFR1/Joseta/pull/6)):\n  - Log the warns of the bot.\n\n- Support multi-server:\n  - Mainly to make it usable outside our server.\n  - Make it actually usable for others.\n\n## How to build\n\nBuilding requires **JDK 17** or later.\n\nAt the root of the project, use the following command:\n`./gradlew shadowJar`\n\nOnce the build process is finished, the output will be present in `./build/libs/JosetaBot.jar`.\n\n## How to run\n\nYou will first need to follow the instructions in the `secret_template.cfg` file before being able to run the bot.\n\nAfter this, starting the bot is very easy. You need to execute this command: `java -jar build/libs/JosetaBot.jar`\n\nThe following arguments (after the `.jar`) are available to use:\n\n- Default: run the bot normally. (Log level is info level)\n- `--debug`: run the bot in debug mode. (Log level is debug level \u0026 intended for testing)\n- `--server`: run the bot in server mode. (Log level is debug level \u0026 save log file up to 7 days)\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/JojoFR1\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/110781915?v=4?s=100\" width=\"100px;\" alt=\"Jojo\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJojo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JojoFR1/Joseta/commits?author=JojoFR1\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-JojoFR1\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#maintenance-JojoFR1\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://zetamap.fr/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/56844734?v=4?s=100\" width=\"100px;\" alt=\"ZetaMap\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZetaMap\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JojoFR1/Joseta/commits?author=ZetaMap\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://xorblo-doitus.github.io/projects/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/75997617?v=4?s=100\" width=\"100px;\" alt=\"Patou\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePatou\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JojoFR1/Joseta/commits?author=xorblo-doitus\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://l4p1n.ch/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3647174?v=4?s=100\" width=\"100px;\" alt=\"l4p1n (Mathias B.)\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003el4p1n (Mathias B.)\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JojoFR1/Joseta/commits?author=lapin-b\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-lapin-b\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#mentoring-lapin-b\" title=\"Mentoring\"\u003e🧑‍🏫\u003c/a\u003e \u003ca href=\"#infra-lapin-b\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n  \u003ctfoot\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" size=\"13px\" colspan=\"7\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg\"\u003e\n          \u003ca href=\"https://all-contributors.js.org/docs/en/bot/usage\"\u003eAdd your contributions\u003c/a\u003e\n        \u003c/img\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tfoot\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjojofr1%2Fjoseta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjojofr1%2Fjoseta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjojofr1%2Fjoseta/lists"}