# ๐Ÿ”ง PlugSnatcher A powerful Minecraft plugin manager for server administrators. ## Features - **Plugin Discovery**: Automatically detect installed plugins in your server - **Update Management**: Keep your plugins up-to-date with minimal effort - **Multi-Source Support**: Find plugins across HangarMC, SpigotMC, Modrinth, GitHub, and more - **Plugin Intelligence**: Smart matching of plugins for accurate updates - **Dark Mode**: Easy on the eyes for those late-night server maintenance sessions ## Development Status PlugSnatcher is currently in early development (v0.1.0). Check our [ROADMAP.md](ROADMAP.md) for current progress and upcoming features. ## Setup 1. Install Rust: https://www.rust-lang.org/tools/install 2. Install Node.js and npm: https://nodejs.org/ 3. Navigate to the PlugSnatcher directory: ``` cd PlugSnatcher ``` 4. Install dependencies: ``` npm install ``` 5. Run the development server: ``` npm run tauri dev ``` ## Building ``` cd PlugSnatcher npm run tauri build ``` ## Project Structure - `PlugSnatcher/src/` - React frontend - `PlugSnatcher/src-tauri/` - Rust backend - `ROADMAP.md` - Development roadmap and progress ## Contributing Contributions are welcome! Feel free to submit issues and pull requests. ## License [MIT](LICENSE) --- Built with ๐Ÿ’ป and โ˜• using [Tauri](https://tauri.app/) and [React](https://reactjs.org/) ๐Ÿ”ง Minecraft Plugin Manager - Desktop App Spec Sheet Codename: PlugSnatcher Version: 0.1.0 (initial dev) Target Platforms: Windows, Linux, macOS (Electron / Tauri) ๐Ÿง  Core Features ๐Ÿ” Plugin Discovery Auto-detect server type: Paper, Spigot, Velocity, Bukkit Locate /plugins/ folder based on selected server root Parse installed .jar files Extract plugin metadata: Name Version Description Authors API version Source URL (if embedded or in plugin.yml) Fallback to hash-based identification (SHA256 of JAR) ๐ŸŒ Plugin Intelligence Web Crawler Crawl and parse: HangarMC SpigotMC.org Modrinth GitHub releases + tags CurseForge if you hate yourself Smart matching: Fuzzy match plugin name + author Use plugin.yml metadata for confidence scoring GitHub fallback for obscure shit ๐Ÿ”„ Update Management Notify user of available updates Changelog/commit messages when available Prompt user to confirm update Automatically replace .jar in /plugins/ directory Optional plugin data backup (zip old plugin + config) Restart server after update (optional checkbox) ๐Ÿงฐ Tech Stack ๐Ÿ–ฅ๏ธ Frontend Tauri + Svelte/React (blazingly sexy and native AF) Dark mode default (because we're not monsters) ๐Ÿง  Backend Rust or Node.js for system access + networking Plugin parser using: ZIP extraction (JAR = ZIP) โ†’ plugin.yml YAML parser Web crawler/scraper: Puppeteer/Playwright for JavaScript-heavy sites Regex + HTML parser for faster sites ๐Ÿ“ฆ Storage Local SQLite DB or JSON for cache (plugin registry, version history) Logs for updates, errors, changelogs ๐Ÿ›ก๏ธ Permissions & Security Sandboxed (no outbound requests unless plugin sources are being queried) All downloads via HTTPS Optional SHA256 checksum verification Download warning if unverified source (manual override possible) ๐Ÿค– Extra Features (Future Roadmap) Plugin conflict checker (API version mismatches, dupe commands) Compatibility checker for Minecraft versions Server config backup + restore manager Scheduled plugin update check (daily, weekly, etc.) Rollback system (previous plugin version restore) Plugin recommendation system based on existing server meta Discord webhook for plugin update logs ๐Ÿงช Example Flow User launches PlugSnatcher, selects server folder App lists all plugins, shows current version vs latest User clicks "Check for Updates" App crawls the web like an info-hungry stalker Update found โ†’ Prompt user User says "ye" โ†’ Old plugin backed up, new one slotted in Optional: Server restarts, all is good in blockyland ๐Ÿงผ UX Expectations Drag & drop server folder Clear plugin list UI with version indicators One-click updates with optional review Update logs saved per session Error messages that don't suck ๐Ÿ‘น Known Challenges Some plugins are unlisted or distributed on Discord/GitHub only No consistent plugin metadata across sites (we'll brute force it) API rate limits (user token support for GitHub)