# ๐Ÿ”ง 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)