Skip to content

alexissdev/caduceus

Repository files navigation

I will create a comprehensive README.md file for the Caduceus project, detailing its purpose, architecture (Spigot plugin with an API layer), and key features like dependency injection, HTTP integration, and user management.

# Caduceus

Caduceus is a sophisticated Minecraft Spigot plugin designed with a robust modular architecture. It leverages dependency injection and a dedicated API layer to manage user statistics, synchronization, and remote HTTP interactions efficiently.

## 🚀 Features**Modular Architecture**: Split into `api` and `plugin` modules for better separation of concerns and reusability.
— **Dependency Injection**: Utilizes `unnamed-inject` for clean, maintainable, and testable code.
- **HTTP Integration**: Built-in support for remote API communication, including
  - Authentication via Interceptors.
  - JWT/Security Token management (Creation, Validation, Updating).
  — Retrofit-style request patterns.
- **User Management**:
— Remote user loading and creation.
  – Synchronization between local and remote data.
  – Comprehensive user statistics and economy tracking.
- **Translation System**: Support for localized messages.
- **Configurable**: Easy configuration via YAML files.

## 🛠️ Project Structure

- `api/`: Contains the core interfaces, models, and logic for HTTP communication, user data structures, and services.
- `plugin/`: The Spigot implementation, handling Bukkit events, commands, and plugin lifecycle management.

## 📋 Requirements

— Java 8
— A Spigot/Paper Minecraft server
– Gradle for building the project.

## 🔧 Installation & Setup

1. **Clone the repository**:
   ```bash
   git clone https://github.com/alexissdev/caduceus.git
   cd caduceus
  1. Build the project:

    ./gradlew clean shadowJar

    The compiled JAR will be located in plugin/build/libs/.

  2. Deploy: Place the generated caduceus-plugin.jar into your server's plugins folder.

  3. Configuration: Upon first run, the plugin will generate a http.yml file. Configure your API credentials and endpoints there.

💻 Technical Details

The project uses several modern libraries and patterns:

  • Injection: team.unnamed:inject
  • Networking: OkHttp / Custom HTTP Layer
  • JSON: Gson
  • Commands: team.unnamed.command

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an issue for any bugs or feature requests.

📄 License

MIT LICENCES

About

Caduceus is a Minecraft plugin that uses our Hermes backend to communicate

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages