.cursor/rules | ||
.vscode | ||
public | ||
src | ||
src-tauri | ||
.gitignore | ||
index.html | ||
package-lock.json | ||
package.json | ||
README.md | ||
ROADMAP.md | ||
rustup-init.exe | ||
tsconfig.json | ||
tsconfig.node.json | ||
vite.config.ts |
🔧 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 for current progress and upcoming features.
Setup
- Install Rust: https://www.rust-lang.org/tools/install
- Install Node.js and npm: https://nodejs.org/
- Navigate to the PlugSnatcher directory:
cd PlugSnatcher
- Install dependencies:
npm install
- Run the development server:
npm run tauri dev
Building
cd PlugSnatcher
npm run tauri build
Project Structure
PlugSnatcher/src/
- React frontendPlugSnatcher/src-tauri/
- Rust backendROADMAP.md
- Development roadmap and progress
Contributing
Contributions are welcome! Feel free to submit issues and pull requests.
License
Built with 💻 and ☕ using Tauri and React
🔧 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)