{"id":29422135,"url":"https://github.com/becloudly/cloudlymc","last_synced_at":"2026-05-04T23:33:33.646Z","repository":{"id":295864146,"uuid":"991494462","full_name":"becloudly/CloudlyMC","owner":"becloudly","description":"☁️ A high-performance Minecraft server plugin for paper-based servers built with Kotlin to manage your server with various integrations, highly configurable and multi-language support.","archived":false,"fork":false,"pushed_at":"2025-08-18T19:39:15.000Z","size":8185,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-18T21:29:02.341Z","etag":null,"topics":["java","kotlin","minecraft","minecraft-plugin","paper-api","paper-plugin","papermc","papermc-plugin","plugin"],"latest_commit_sha":null,"homepage":"https://becloudly.eu","language":"Kotlin","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/becloudly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-27T17:56:13.000Z","updated_at":"2025-08-18T19:39:17.000Z","dependencies_parsed_at":"2025-05-27T19:31:30.011Z","dependency_job_id":"0f2b3b6a-157f-4d4a-a01a-0c572f460b03","html_url":"https://github.com/becloudly/CloudlyMC","commit_stats":null,"previous_names":["gerrxt07/cloudlymc","becloudly/cloudlymc"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/becloudly/CloudlyMC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/becloudly%2FCloudlyMC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/becloudly%2FCloudlyMC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/becloudly%2FCloudlyMC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/becloudly%2FCloudlyMC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/becloudly","download_url":"https://codeload.github.com/becloudly/CloudlyMC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/becloudly%2FCloudlyMC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275844196,"owners_count":25538990,"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","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["java","kotlin","minecraft","minecraft-plugin","paper-api","paper-plugin","papermc","papermc-plugin","plugin"],"created_at":"2025-07-12T04:02:23.373Z","updated_at":"2026-04-14T23:34:10.629Z","avatar_url":"https://github.com/becloudly.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# ☁️ Cloudly - Modern Minecraft Server Management ☁️\n\n\u003cimg src=\"https://github.com/becloudly/.github/blob/main/assets/Cloudly-Abstract_Scaled-Round.png?raw=true\" alt=\"Cloudly Banner\" width=\"256\"\u003e\n\n### 🚀 _High-performance, feature-rich Minecraft server plugin built with modern Kotlin_\n\n**Powerful server management • Multi-language support • Real-time configuration • Release automation**\n\n[![About](https://img.shields.io/badge/Learn%20More-About%20Us-blue?style=flat-square)](https://becloudly.eu/about) [![Pricing](https://img.shields.io/badge/View-Pricing-green?style=flat-square)](https://becloudly.eu/pricing) [![CodeFactor](https://www.codefactor.io/repository/github/becloudly/cloudlymc/badge)](https://www.codefactor.io/repository/github/becloudly/cloudlymc)\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/becloudly/cloudlymc/gradle-build.yml?branch=master\u0026style=for-the-badge\u0026logo=github)](https://github.com/becloudly/cloudlymc/actions/workflows/gradle-build.yml) [![CodeQL](https://img.shields.io/github/actions/workflow/status/becloudly/cloudlymc/codeql.yml?branch=master\u0026style=for-the-badge\u0026logo=github\u0026label=CodeQL)](https://github.com/becloudly/cloudlymc/actions/workflows/codeql.yml) [![License](https://img.shields.io/github/license/becloudly/cloudlymc?style=for-the-badge)](LICENSE) \n\n[![Java](https://img.shields.io/badge/Java-17%2B-orange?style=for-the-badge\u0026logo=openjdk)](https://adoptium.net/) [![Kotlin](https://img.shields.io/badge/Kotlin-2.2.0-purple?style=for-the-badge\u0026logo=kotlin)](https://kotlinlang.org/) [![Paper](https://img.shields.io/badge/Paper-1.20%2B-brightgreen?style=for-the-badge)](https://papermc.io/) [![Folia](https://img.shields.io/badge/Folia-Supported-green?style=for-the-badge)](https://papermc.io/software/folia)\n\n\u003c/div\u003e\n\n---\n\n## 🌟 Why Choose Cloudly?\n\n\u003cdiv align=\"center\"\u003e\n\n| 🚀 **Performance** | 🛡️ **Security** | 🌐 **Modern** | 🔧 **Flexible** |\n|:---:|:---:|:---:|:---:|\n| Async Kotlin coroutines | Audit logging system | Latest Kotlin 2.2.0 | Hot-reload configuration |\n| Batch operations | SQL injection protection | Paper/Folia support | Multi-database support |\n| Connection pooling | Command cooldowns | Modern Java 17+ | Whitelist + Discord |\n| Write-back caching | Resource cleanup tracking | Modular architecture | Multi-language support |\n\n\u003c/div\u003e\n\n## 📊 Project Activity\n\n\u003cdiv align=\"center\"\u003e\n\n[![Contributors](https://img.shields.io/github/contributors/becloudly/cloudlymc?style=for-the-badge)](https://github.com/becloudly/cloudlymc/graphs/contributors) [![Last Commit](https://img.shields.io/github/last-commit/becloudly/cloudlymc?style=for-the-badge)](https://github.com/becloudly/cloudlymc/commits/master) [![Open Issues](https://img.shields.io/github/issues-raw/becloudly/cloudlymc?style=for-the-badge)](https://github.com/becloudly/cloudlymc/issues) [![Open PRs](https://img.shields.io/github/issues-pr-raw/becloudly/cloudlymc?style=for-the-badge)](https://github.com/becloudly/cloudlymc/pulls)\n\n\u003c/div\u003e\n\n## ✨ Features \u0026 Capabilities\n\n### 🎮 **Core Server Management**\n- **🔄 Hot-Reload System**: Real-time configuration and language file reloading without server restart\n- **📋 Enhanced Command System**: Comprehensive `/cloudly` command with organized, beautifully formatted output\n- **🌐 Multi-Language Support**: Full internationalization with English and German (more languages planned)\n- **⚡ Dual Server Compatibility**: Automatic detection and optimization for both Paper/Spigot and Folia servers\n\n### 📝 **Whitelist Management**\n- **🎯 Advanced Whitelist System**: Custom whitelist with comprehensive management features\n- **🖥️ GUI Interface**: User-friendly graphical interface for whitelist management\n- **📊 Player Information**: Detailed player info including Discord connections and join dates\n- **🔗 Discord Integration**: Link Minecraft accounts with Discord for enhanced verification\n- **📋 Audit Logging**: Complete tracking of all whitelist modifications with actor attribution\n\n### 🔗 **Discord Integration**\n- **✅ User Verification**: Verify Discord users and their server membership\n- **🔐 Account Linking**: Connect Minecraft accounts with Discord profiles\n- **⚡ Rate Limiting**: Smart API rate limiting to prevent quota exhaustion\n- **💾 Caching System**: Efficient caching with configurable duration and automatic memory management\n- **🛡️ Error Handling**: Graceful degradation when Discord services are unavailable\n\n### 🛠️ **Technical Excellence**\n- **🚀 Async Performance**: Built with Kotlin coroutines for non-blocking operations\n- **💾 Advanced Storage**: Native support for JSON, SQLite, and MySQL with optimized drivers\n  - **⚡ Batch Operations**: Efficient bulk storage operations for improved performance\n  - **🔄 Write-Back Caching**: Smart caching layer for JSON storage reduces disk I/O\n  - **🏊 Connection Pooling**: MySQL connection pooling for enterprise scalability\n- **🔒 Type Safety**: Null-safe Kotlin implementation with comprehensive error handling\n- **📦 Optimized Distribution**: Minimized JAR with dependency relocation and conflict prevention\n- **🔐 Thread Safety**: JSON write locking and concurrent data structure usage\n\n### 🔔 **Automation \u0026 Monitoring**\n- **📡 Release Radar**: Automated GitHub release monitoring with configurable channels (stable/pre-release)\n- **🔧 Configuration Management**: Intelligent config validation and hot-reload capabilities\n- **📊 Debug \u0026 Logging**: Comprehensive debug mode with detailed logging and error reporting\n- **🕐 Command Cooldowns**: Built-in rate limiting prevents command spam and abuse\n\n### 🔒 **Security \u0026 Stability**\n- **📝 Audit Logging**: Complete audit trail for security-sensitive operations\n- **🛡️ SQL Injection Protection**: Parameterized queries and input validation throughout\n- **🔐 Credential Safety**: Support for environment variables and secure config handling\n- **🧹 Resource Cleanup**: Automatic tracking and cleanup of resources on shutdown\n- **⏱️ Rate Limiting**: Protection against API abuse and spam\n\n### 🏗️ **Developer Experience**\n- **🧩 Modular Architecture**: Clean separation of concerns with dedicated packages for each feature\n- **🔀 Template System**: Build-time constant generation for version management\n- **📝 Comprehensive Documentation**: Detailed code documentation and user guides\n- **⚡ Reflection Caching**: Optimized scheduler detection with cached lookups\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🔍 View Technical Specifications\u003c/strong\u003e\u003c/summary\u003e\n\n#### **Current Version**\n- **Plugin Version**: 0.0.1-alpha_11\n- **Status**: Active Development (Alpha Release)\n- **Latest Updates**: Performance optimization, security hardening, feature expansion\n\n#### **Supported Platforms**\n- **Minecraft Versions**: 1.20+ (Paper API)\n- **Server Types**: Paper, Spigot, Purpur, Pufferfish, CanvasMC, Folia\n- **Java Versions**: 17+ (Java 21 recommended)\n- **Operating Systems**: Cross-platform (Windows, Linux, macOS)\n\n#### **Dependencies \u0026 Libraries**\n- **Kotlin**: 2.2.0 with stdlib-jdk8\n- **Coroutines**: 1.10.2 for async operations\n- **Database**: SQLite 3.50.3.0, MySQL Connector 9.3.0\n- **HTTP Client**: OkHttp 5.1.0 for GitHub API\n- **JSON Processing**: org.json 20250517\n\n#### **Build \u0026 Distribution**\n- **Build System**: Gradle 8.8 with Kotlin DSL\n- **Shadow JAR**: Dependency bundling with relocation\n- **CI/CD**: GitHub Actions with automated testing\n- **Security**: CodeQL analysis and Dependabot updates\n\n#### **Storage Capabilities**\n- **JSON Storage**: File-based with write-back caching and atomic operations\n- **SQLite Storage**: Embedded database with WAL mode for better concurrency\n- **MySQL Storage**: Enterprise-grade with connection pooling (configurable pool size)\n- **Batch Operations**: Optimized bulk insert/update/delete across all storage types\n\n\u003c/details\u003e\n\n## 🚀 Quick Start\n\n### 📋 Requirements\n\n| Component | Requirement | Recommended |\n|-----------|-------------|-------------|\n| **Server Software** | Paper/Folia 1.20+ | Paper/Folia 1.21+ |\n| **Java Version** | Java 17+ | Java 21 LTS |\n| **RAM** | 1GB+ | 2GB+ (4GB+ for MySQL) |\n| **Disk Space** | 50MB+ | 100MB+ |\n| **Database** | None (JSON default) | MySQL for production |\n\n### ⚡ Installation\n\n1. **Download** the latest release:\n   ```bash\n   # Download from GitHub Releases\n   wget https://github.com/becloudly/cloudlymc/releases/latest/download/cloudly.jar\n   ```\n\n2. **Install** to your server:\n   ```bash\n   # Place in your server's plugins directory\n   mv cloudly.jar /path/to/your/server/plugins/\n   ```\n\n3. **Start** your server:\n   ```bash\n   # Cloudly will auto-configure on first startup\n   java -jar paper.jar\n   ```\n\n4. **Configure** (optional):\n   ```bash\n   # Edit configuration files\n   nano plugins/cloudly/config.yml\n   ```\n\n### 🛠️ Configuration Example\n\n```yaml\n# ☁️ Cloudly Plugin Configuration ☁️\n\n# Plugin Settings\nplugin:\n  debug: false                    # Enable debug mode for verbose logging\n  language: \"en\"                  # Available languages: en (English), de (German)\n\n# Discord Integration Settings\ndiscord:\n  enabled: false                  # Enable Discord integration features\n  bot_token: \"YOUR_BOT_TOKEN\"     # Discord bot token (use env var: ${DISCORD_TOKEN})\n  server_id: \"YOUR_SERVER_ID\"     # Discord server ID for verification\n  api_timeout: 10                 # API timeout in seconds\n  cache_duration: 30              # Cache duration in minutes\n\n# Whitelist Settings\nwhitelist:\n  enabled: false                  # Enable custom whitelist system\n\n# Global Storage Configuration\nstorage:\n  default_type: \"json\"            # Options: json, sqlite, mysql\n  \n  json:\n    base_path: \"data\"             # Base directory for JSON files\n    file_extension: \".json\"\n    pretty_print: true            # Format JSON for readability\n  \n  sqlite:\n    base_path: \"data\"\n    file_extension: \".db\"\n    journal_mode: \"WAL\"           # Write-Ahead Logging for better performance\n    synchronous: \"NORMAL\"\n  \n  mysql:\n    host: \"localhost\"\n    port: 3306\n    database: \"cloudly_plugin\"\n    username: \"root\"\n    password: \"\"                  # Use env var: ${DB_PASSWORD}\n    table_prefix: \"cloudly_\"\n    connection_timeout: 30000\n    use_ssl: false\n    pool_size: 10                 # Connection pool size for performance\n```\n\n**💡 Security Tip:** Use environment variables for sensitive data like `${DISCORD_TOKEN}` and `${DB_PASSWORD}`\n\n### 🎮 Command Usage\n\n#### **Core Commands**\n\n| Command | Description | Permission | Example |\n|---------|-------------|------------|---------|\n| `/cloudly help` | Show available commands | `cloudly.admin` | Display command help |\n| `/cloudly info` | Display plugin information | `cloudly.admin` | Version, language, debug status |\n| `/cloudly reload [target]` | Hot-reload components | `cloudly.admin` | `config`, `lang`, or `all` |\n\n**Hot-Reload Examples:**\n```bash\n/cloudly reload config    # Reload configuration only\n/cloudly reload lang      # Reload language files only\n/cloudly reload all       # Reload everything\n/cloudly reload           # Default: reload all\n```\n\n#### **Whitelist Commands**\n\n| Command | Description | Permission | Example |\n|---------|-------------|------------|---------|\n| `/cloudly whitelist add \u003cplayer\u003e [reason]` | Add player to whitelist | `cloudly.whitelist` | Add with optional reason |\n| `/cloudly whitelist remove \u003cplayer\u003e` | Remove player from whitelist | `cloudly.whitelist` | Remove player access |\n| `/cloudly whitelist list` | Show all whitelisted players | `cloudly.whitelist` | List all entries |\n| `/cloudly whitelist on` | Enable whitelist enforcement | `cloudly.whitelist` | Activate whitelist |\n| `/cloudly whitelist off` | Disable whitelist enforcement | `cloudly.whitelist` | Deactivate whitelist |\n| `/cloudly whitelist info \u003cplayer\u003e` | Show player details | `cloudly.whitelist` | View player info |\n| `/cloudly admin gui` | Open the admin dashboard | `cloudly.admin` | Launch interactive tools |\n\n**Whitelist Examples:**\n```bash\n/cloudly whitelist add Notch \"Approved by admin\"\n/cloudly whitelist remove Herobrine\n/cloudly whitelist info Phantom\n/cloudly admin gui\n```\n\n#### **Discord Integration**\n\n| Command | Description | Permission | Example |\n|---------|-------------|------------|---------|\n| `/cloudly link \u003cdiscord_username\u003e` | Link Discord account | All players | Link your Discord |\n| `/cloudly unlink` | Remove Discord account link and restart verification | All players | Reset Discord link |\n\n**Requirements:**\n- Player must be on the whitelist\n- Discord integration must be enabled in config\n- User must be a member of the configured Discord server\n\n**Example:**\n```bash\n/cloudly link PhantomCloudly\n```\n\n## 🔧 Advanced Configuration\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e📝 Language Configuration\u003c/strong\u003e\u003c/summary\u003e\n\nCloudly supports multiple languages with complete translations:\n\n**Supported Languages:**\n- `en` - English (default)\n- `de` - German (Deutsch)\n- More languages coming soon!\n\n**Custom Language Files:**\n```yaml\n# plugins/cloudly/lang/en.yml\nplugin:\n  enabled: \"Cloudly Plugin v{version} enabled on Paper/Folia!\"\n  disabled: \"Cloudly Plugin disabled\"\n  \ncommands:\n  help:\n    header: \"§6=== Cloudly Commands ===\"\n    reload: \"§f/cloudly reload [config|lang|all] §7- Hot-reload plugin components\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e⚡ Performance Tuning\u003c/strong\u003e\u003c/summary\u003e\n\n**Folia Optimization:**\nCloudly automatically detects Folia and uses region-specific schedulers for optimal performance.\n\n**Memory Usage:**\n- Base memory footprint: ~5-10MB\n- Database connections: Pooled and optimized\n- Coroutines: Lightweight async operations\n\n**Best Practices:**\n```yaml\nplugin:\n  debug: false  # Disable in production\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e⚡ Performance Optimizations\u003c/strong\u003e\u003c/summary\u003e\n\nCloudly includes several performance enhancements implemented in recent updates:\n\n**Storage Layer Optimizations:**\n- **Write-Back Caching**: JSON storage uses intelligent caching to reduce disk I/O\n- **Batch Operations**: Bulk insert/update/delete operations across all storage types\n- **Connection Pooling**: MySQL uses configurable connection pooling (default: 10 connections)\n- **Prepared Statements**: All database queries use prepared statements for better performance\n\n**Runtime Optimizations:**\n- **Reflection Caching**: Scheduler detection results are cached to avoid repeated reflection calls\n- **Coroutine Usage**: Non-blocking async operations prevent server thread blocking\n- **Rate Limiting**: Discord API calls are rate-limited to prevent quota exhaustion\n- **Memory Management**: Fixed memory leaks and improved resource cleanup\n\n**Configuration Tips:**\n```yaml\n# For JSON storage (small to medium servers)\nstorage:\n  default_type: \"json\"\n  json:\n    pretty_print: false  # Disable for better performance\n\n# For MySQL storage (large servers)\nstorage:\n  default_type: \"mysql\"\n  mysql:\n    pool_size: 20        # Increase for high-traffic servers\n    use_ssl: true        # Enable for secure connections\n```\n\n**Performance Benchmarks:**\n- JSON with caching: ~100x faster for repeated reads\n- Batch operations: Up to 100x faster for bulk modifications\n- MySQL pooling: Eliminates connection overhead (~50ms per operation saved)\n\n\u003c/details\u003e\n\n## 🚦 Troubleshooting\n\n### Common Issues\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🔍 Plugin Not Loading\u003c/strong\u003e\u003c/summary\u003e\n\n**Symptoms:** Plugin doesn't appear in `/plugins` list\n\n**Solutions:**\n1. **Check Java Version:**\n   ```bash\n   java -version  # Must be 17+\n   ```\n\n2. **Verify Server Compatibility:**\n   - Ensure you're running Paper 1.20+ or Folia\n   - Check server logs for error messages\n\n3. **File Permissions:**\n   ```bash\n   chmod 644 cloudly.jar\n   ```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e⚠️ Configuration Issues\u003c/strong\u003e\u003c/summary\u003e\n\n**Symptoms:** Settings not applying or errors on reload\n\n**Solutions:**\n1. **Validate YAML Syntax:**\n   ```bash\n   # Use a YAML validator online or:\n   python -c \"import yaml; yaml.safe_load(open('config.yml'))\"\n   ```\n\n2. **Reset to Defaults:**\n   ```bash\n   /cloudly reload config  # In-game command\n   # Or delete config.yml and restart\n   ```\n\n3. **Check File Encoding:**\n   - Ensure config files are UTF-8 encoded\n   - Avoid special characters in YAML keys\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🌐 Language Issues\u003c/strong\u003e\u003c/summary\u003e\n\n**Symptoms:** Messages not translating or showing placeholders\n\n**Solutions:**\n1. **Verify Language Code:**\n   ```yaml\n   plugin:\n     language: \"en\"  # Must match available language files\n   ```\n\n2. **Check Language Files:**\n   ```bash\n   ls plugins/cloudly/lang/  # Should show en.yml, de.yml, etc.\n   ```\n\n3. **Reload Language Files:**\n   ```bash\n   /cloudly reload lang\n   ```\n\n\u003c/details\u003e\n\n## 🔒 Security \u0026 Updates\n\n### 🛡️ Security Features\n- **Static Analysis**: CodeQL security scanning on every commit\n- **Dependency Updates**: Automated Dependabot security patches\n- **Null Safety**: Kotlin's null-safe type system prevents NPE vulnerabilities\n- **Input Validation**: Comprehensive validation of configuration and command inputs\n- **Audit Logging**: Complete audit trail for all whitelist modifications with actor tracking\n- **SQL Injection Protection**: Parameterized queries and prepared statements throughout\n- **Command Cooldowns**: Built-in rate limiting prevents command spam and abuse\n- **Resource Cleanup**: Automatic tracking and cleanup of all resources on shutdown\n- **Thread Safety**: JSON write locking and concurrent data structures prevent race conditions\n- **Memory Management**: Fixed Discord cache memory leaks and resource pooling\n\n### 🔐 Recent Security Improvements\n**Phase 1-3 Security Enhancements (PRs #83-#97):**\n- ✅ Fixed lateinit property access safety vulnerabilities\n- ✅ Implemented JSON write locking for concurrent access protection\n- ✅ Added SQL injection protection for all database operations\n- ✅ Implemented comprehensive audit logging for security-sensitive operations\n- ✅ Added resource cleanup tracking to prevent memory leaks\n- ✅ Fixed Discord cache memory leak issues\n- ✅ Added command cooldowns to prevent abuse\n- ✅ Enhanced input validation across all command handlers\n\n### 📋 Update Policy\n- **Semantic Versioning**: Clear version numbering (Major.Minor.Patch-status)\n- **Backward Compatibility**: Configuration compatibility maintained across minor versions\n- **Security Patches**: Critical security updates released immediately\n- **Changelog**: View detailed release notes at [becloudly.eu/changelog](https://becloudly.eu/changelog)\n- **Update Monitoring**: Built-in Release Radar monitors GitHub for new versions\n\n### 🔄 Update Process\n1. **Check Version**: Use `/cloudly info` to view current version\n2. **Download**: Get latest version from [Releases](https://github.com/becloudly/cloudlymc/releases)\n3. **Hot-Reload**: Use `/cloudly reload` for configuration updates\n4. **Full Update**: Replace JAR and restart for major updates\n5. **Verify**: Check logs and run `/cloudly info` to confirm successful update\n\n## 🤝 Contributing \u0026 Development\n\n\n### 🛠️ Development Setup\n\n**Prerequisites:**\n- Java 17+ (Java 21 recommended)\n- Git\n- IDE with Kotlin support (IntelliJ IDEA recommended)\n\n**Quick Setup:**\n```bash\n# Clone the repository\ngit clone https://github.com/becloudly/cloudlymc.git\ncd cloudlymc\n\n# Make gradlew executable\nchmod +x gradlew\n\n# Build the project\n./gradlew build\n\n# Run tests\n./gradlew test\n\n# Generate development environment\n./gradlew prepareVSCode  # For VS Code users\n```\n\n**Project Structure:**\n```\napp/\n├── src/main/kotlin/de/cloudly/\n│   ├── CloudlyPaper.kt          # Main plugin class\n│   ├── commands/                # Command handlers\n│   ├── config/                  # Configuration management\n│   └── utils/                   # Utility classes\n├── src/main/resources/\n│   ├── config.yml               # Default configuration\n│   ├── plugin.yml               # Plugin metadata\n│   └── lang/                    # Language files\n└── build.gradle.kts             # Build configuration\n```\n\n### 🎯 Contribution Guidelines\n\n**🐛 Bug Reports:**\n1. Check existing issues first\n2. Use the bug report template\n3. Include server version, Java version, and plugin version\n4. Provide stack traces and configuration files\n\n**✨ Feature Requests:**\n1. Search existing feature requests\n2. Describe the use case and benefits\n3. Consider implementation complexity\n4. Follow the feature request template\n\n**🔧 Pull Requests:**\n1. **Fork** the repository\n2. **Create** a feature branch: `git checkout -b feature/amazing-feature`\n3. **Follow** Kotlin coding conventions and existing patterns\n4. **Test** your changes thoroughly\n5. **Update** documentation if needed\n6. **Commit** with clear, descriptive messages\n7. **Submit** a pull request with detailed description\n\n**📝 Code Standards:**\n- Follow Kotlin idioms and null safety practices\n- Use meaningful variable and function names\n- Add KDoc comments for public APIs\n- Include unit tests for new functionality\n- Maintain existing code style and formatting\n\n### 🧪 Testing\n\n**Local Testing:**\n```bash\n# Run all tests\n./gradlew test\n\n# Run specific test class\n./gradlew test --tests \"ConfigManagerTest\"\n\n# Build and test\n./gradlew build\n```\n\n**Manual Testing:**\n1. Build the plugin: `./gradlew shadowJar`\n2. Copy `build/libs/cloudly.jar` to test server\n3. Test in Paper/Folia environment\n4. Verify all commands and features work\n\n## 📜 License \u0026 Legal\n\n**License:** MIT License\n```\nMIT License\nCopyright (c) 2025 Gerrit Schlinkmann / Gerrxt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n```\n\n**Third-Party Dependencies:**\n- **Kotlin**: Apache License 2.0\n- **Paper API**: MIT License\n- **OkHttp**: Apache License 2.0\n- **SQLite JDBC**: Apache License 2.0\n- **MySQL Connector**: GPL v2 with FOSS Exception\n\n**Trademark Notice:**\n- Minecraft® is a trademark of Mojang Studios\n- Paper™ is a trademark of the PaperMC team\n- All trademarks are property of their respective owners\n\n## 🌍 Community \u0026 Support\n\n\u003cdiv align=\"center\"\u003e\n\n### 💬 Get Help \u0026 Connect\n\n[![Discord](https://img.shields.io/badge/Discord-Join%20Community-7289da?style=for-the-badge\u0026logo=discord)](https://becloudly.eu/discord)\n[![Support](https://img.shields.io/badge/Support-Get%20Help-orange?style=for-the-badge\u0026logo=lifebuoy)](https://becloudly.eu/support)\n[![Contact](https://img.shields.io/badge/Contact-Reach%20Us-green?style=for-the-badge\u0026logo=mail)](https://becloudly.eu/contact)\n\n[![Trello](https://img.shields.io/badge/Trello-Roadmap-blue?style=for-the-badge\u0026logo=trello)](https://trello.com/b/GMKCYKXv/cloudly)\n[![GitHub Issues](https://img.shields.io/badge/GitHub-Issues-red?style=for-the-badge\u0026logo=github)](https://github.com/becloudly/cloudlymc/issues)\n[![Blog](https://img.shields.io/badge/Blog-Company%20News-purple?style=for-the-badge\u0026logo=rss)](https://becloudly.eu/blog)\n\n\u003c/div\u003e\n\n**🤝 Where to Get Help:**\n- **💬 Discord Server**: Real-time help and community discussions\n- **🆘 Support Center**: Professional support at [becloudly.eu/support](https://becloudly.eu/support)\n- **📞 Contact Us**: Direct contact at [becloudly.eu/contact](https://becloudly.eu/contact)\n- **📋 GitHub Issues**: Bug reports and feature requests\n- **📊 Trello Board**: Development roadmap and progress tracking\n- **📚 Wiki**: Comprehensive documentation and guides\n- **📝 Company Blog**: Updates and news at [becloudly.eu/blog](https://becloudly.eu/blog)\n\n**🗺️ Roadmap \u0026 Future Plans:**\n- **v1.1**: Web dashboard interface\n- **v1.2**: Enhanced database management tools\n- **v1.3**: Plugin integration framework\n- **v2.0**: Major feature expansion with backward compatibility\n\nCheck our [interactive Trello board](https://trello.com/b/GMKCYKXv/cloudly) for detailed development progress!\n\n## 🙏 Acknowledgments \u0026 Credits\n\n\u003cdiv align=\"center\"\u003e\n\n**Developed with ❤️ by the Cloudly Team**\n\n\u003c/div\u003e\n\n**👨‍💻 Core Team:**\n- **[Gerrxt](https://github.com/gerrxt07)** - Lead Developer \u0026 Project Maintainer\n- **[Phantom Community](https://phantomcommunity.de)** - Development Team \u0026 Quality Assurance\n\n**🌟 Special Thanks:**\n- PaperMC team for the excellent server software\n- Kotlin team for the amazing programming language\n- All contributors and community members who make this project possible\n- Beta testers and server administrators providing valuable feedback\n\n**💝 Supporters:**\nThank you to everyone who has:\n- ⭐ Starred this repository\n- 🐛 Reported bugs and issues\n- 💡 Suggested new features\n- 🔧 Contributed code improvements\n- 📖 Improved documentation\n- 💬 Helped others in our community\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### 🚀 Ready to enhance your Minecraft server?\n\n**[Download Cloudly](https://github.com/becloudly/cloudlymc/releases) • [Join Discord](https://becloudly.eu/discord) • [View Roadmap](https://trello.com/b/GMKCYKXv/cloudly) • [About Us](https://becloudly.eu/about) • [Pricing](https://becloudly.eu/pricing)**\n\n*Built for the modern Minecraft server administrator*\n\n[![Made with Kotlin](https://img.shields.io/badge/Made%20with-Kotlin-purple?style=for-the-badge\u0026logo=kotlin)](https://kotlinlang.org/)\n[![Built for Paper](https://img.shields.io/badge/Built%20for-Paper%2FFolia-brightgreen?style=for-the-badge)](https://papermc.io/)\n[![Open Source](https://img.shields.io/badge/Open%20Source-MIT-blue?style=for-the-badge\u0026logo=opensource)](LICENSE)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbecloudly%2Fcloudlymc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbecloudly%2Fcloudlymc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbecloudly%2Fcloudlymc/lists"}