205 lines
4.3 KiB
Markdown
205 lines
4.3 KiB
Markdown
# 🔧 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)
|
|
|