{"id":28500848,"url":"https://github.com/xjectro/java-discord-bot","last_synced_at":"2025-07-04T12:31:19.609Z","repository":{"id":297612406,"uuid":"996780707","full_name":"Xjectro/java-discord-bot","owner":"Xjectro","description":"🤖 A customizable Discord bot developed with Java.","archived":false,"fork":false,"pushed_at":"2025-06-06T11:22:48.000Z","size":56,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-06T12:29:52.235Z","etag":null,"topics":["boilerplate","bot","bots","discord","discord-api","discord-app","discord-bot","discord-bot-template","discord-java","discordbot","discordjava","example","gradle","java","java-8","jda","mongodb","sharding","starter","template"],"latest_commit_sha":null,"homepage":"https://xjectro.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xjectro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-06-05T13:02:33.000Z","updated_at":"2025-06-06T11:25:11.000Z","dependencies_parsed_at":"2025-06-06T12:32:43.176Z","dependency_job_id":"b4a7be53-2f70-4d05-aef9-351ccb1e8767","html_url":"https://github.com/Xjectro/java-discord-bot","commit_stats":null,"previous_names":["xjectro/java-discord-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Xjectro/java-discord-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xjectro%2Fjava-discord-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xjectro%2Fjava-discord-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xjectro%2Fjava-discord-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xjectro%2Fjava-discord-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xjectro","download_url":"https://codeload.github.com/Xjectro/java-discord-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xjectro%2Fjava-discord-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263539617,"owners_count":23477454,"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":["boilerplate","bot","bots","discord","discord-api","discord-app","discord-bot","discord-bot-template","discord-java","discordbot","discordjava","example","gradle","java","java-8","jda","mongodb","sharding","starter","template"],"created_at":"2025-06-08T15:07:53.027Z","updated_at":"2025-07-04T12:31:19.603Z","avatar_url":"https://github.com/Xjectro.png","language":"Java","readme":"# 🤖 java-discord-bot\n\nA customizable Discord bot developed with Java.\n\n## ✨ Features\n- 📝 Command-based structure\n- ⚡ Event listeners\n- 🧩 Easily extensible architecture\n- 🛠️ Modern Java and Gradle usage\n\n## ⚙️ Installation\n\n### 📋 Requirements\n- ☕ Java 17 or higher\n- 🛠️ [Gradle](https://gradle.org/) (or local setup with `gradlew`)\n- 🔑 A Discord bot token ([Discord Developer Portal](https://discord.com/developers/applications))\n\n### 🚦 Steps\n1. 📥 Clone the repository:\n   ```sh\ngit clone https://github.com/Xjectro/java-discord-bot.git\ncd java-discord-bot\n```\n2. 📦 Install dependencies and build:\n   ```sh\n./gradlew build\n```\n3. 🔐 Add your bot token and (optionally) database connection string to the `app/.env` file. Example:\n   ```env\nDISCORD_TOKEN=YOUR_DISCORD_BOT_TOKEN\nMONGO_URI=mongodb://localhost:27017\n```\n4. 🚀 Start the bot:\n   ```sh\n./gradlew run\n```\n\n## 🕹️ Usage\nAfter adding the bot to your server, you can use the following commands:\n\n### 👑 Auto Role System\n- `!autorole \u003cenabled|disabled\u003e [@role1 @role2 ...]`\n  - 🔄 Enables or disables the auto role system and sets the roles to assign.\n  - 💡 Example: `!autorole enabled @Member @Registered`\n- You can also use it as a slash command:\n  - `/autorole status:\u003cenabled|disabled\u003e roles:@role1,@role2,...`\n  - 💡 Example: `/autorole status:enabled roles:@Member,@Registered`\n\n\u003e ⚠️ You need the **Manage Roles** permission to use these commands.\n\n### 🏓 Ping Command\n- `!ping` — Checks if the bot is running.\n\n### 🛠️ Add Your Own Commands\n- 🗂️ To add new commands, create a new class in the `app/src/main/java/org/example/commands/` directory.\n\n## 🤝 Contributing\nContributions are welcome! Please open an issue before submitting a pull request.\n\n## 📄 License\nThis project is licensed under the [MIT License](LICENSE).\n\n## 📬 Contact\n- 👤 Developer: [Xjectro](https://github.com/Xjectro)\n- 🔗 Project Link: [github.com/Xjectro/java-discord-bot](https://github.com/Xjectro/java-discord-bot)\n\n## 🚀 Architecture \u0026 Technologies Used\n\n- ☕ **Java 17+**: Main programming language.\n- 🛠️ **Gradle**: Build and project management tool.\n- 🤖 **JDA (Java Discord API)**: Core library for Discord bot functionality.\n- 🍃 **MongoDB**: NoSQL database for storing server-specific settings and data.\n- 🟢 **Morphia**: ORM library for easy data access between Java and MongoDB.\n- 🗝️ **dotenv-java**: Loads environment variables from `.env` files.\n\n### 🏗️ Architecture\n- 📝 **Command System**: All commands are in the `org.example.commands` package, making it easy to add new ones.\n- ⚡ **Event System**: Handles Discord events under `org.example.events`.\n- 🗄️ **Database Management**: MongoDB connection and models are under `org.example.database`. Server-specific settings (e.g., auto role) are stored in MongoDB.\n- ⚙️ **Configuration**: Database settings are in `app/src/main/resources/META-INF/morphia-config.properties`, and the connection string is in `app/.env`.\n\n### 🗃️ Example Database Model\nServer-specific auto role settings are stored in MongoDB as follows:\n- 🆔 Server ID\n- 🔄 Auto role enabled/disabled status\n- 🏷️ IDs of roles to assign\n\n### 📦 Main Libraries Used\n- [🤖 JDA](https://github.com/DV8FromTheWorld/JDA)\n- [🟢 Morphia](https://morphia.dev/)\n- [🗝️ dotenv-java](https://github.com/cdimascio/dotenv-java)\n- [🍃 MongoDB Java Driver](https://mongodb.github.io/mongo-java-driver/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxjectro%2Fjava-discord-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxjectro%2Fjava-discord-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxjectro%2Fjava-discord-bot/lists"}