142 lines
6.2 KiB
Markdown
142 lines
6.2 KiB
Markdown
# 🔧 PlugSnatcher - Development Roadmap
|
|
|
|
## Project Setup ✅
|
|
- [x] Create project roadmap
|
|
- [x] Initialize Tauri + React project
|
|
- [x] Setup basic project structure
|
|
- [x] Create Remote repository (optional)
|
|
|
|
## Core Infrastructure (Completed) ✅
|
|
- [x] Setup SQLite or JSON storage for plugin data
|
|
- [x] Create core data models
|
|
- [x] Build server/plugin directory scanner (basic implementation)
|
|
- [x] Implement asynchronous server scanning (non-blocking)
|
|
- [x] Implement JAR file parser for plugin.yml extraction
|
|
|
|
## Plugin Discovery (Completed) ✅
|
|
- [x] Improve server type detection (Paper/Spigot distinction, etc.)
|
|
- [x] Implement plugins folder detection logic
|
|
- [x] Design plugin metadata extraction system
|
|
- [x] Extract basic fields (name, version, author, etc.)
|
|
- [x] Extract website field from plugin.yml
|
|
- [x] Build plugin hash identification system
|
|
- [x] Create plugin matching algorithm
|
|
|
|
## Web Crawler Development (Mostly Completed)
|
|
- [x] Create base web crawler architecture
|
|
- [x] Implement HangarMC crawler
|
|
- [x] Implement SpigotMC data source using SpiGet API
|
|
- [x] Basic implementation
|
|
- [x] Fix version information retrieval issues
|
|
- [ ] Reduce version warning logs and improve caching
|
|
- [x] Handle rate limiting and 403 errors
|
|
- [x] Implement Modrinth crawler
|
|
- [x] Basic implementation
|
|
- [x] Version compatibility checking
|
|
- [x] Fix version number display issues
|
|
- [ ] Handle rate limit issues
|
|
- [x] Implement GitHub releases crawler
|
|
- [x] Basic implementation
|
|
- [x] Enable GitHub search functionality
|
|
- [ ] Add GitHub API authentication for higher rate limits
|
|
|
|
## Update Management (Mostly Completed)
|
|
- [x] Build update detection system (Basic logic)
|
|
- [x] Improve update detection reliability
|
|
- [x] Correctly fetch detailed version information from repositories
|
|
- [x] Implement robust version comparison logic (handling non-SemVer, suffixes, etc.)
|
|
- [x] Implement proper request headers (User-Agent, etc.) to mimic browser behavior
|
|
- [x] Add delays between API requests to mitigate rate limiting
|
|
- [x] Implement automatic retry logic for rate limits (429) and network errors
|
|
- [x] Implement API response caching (reduce requests, improve performance)
|
|
- [x] Implement intelligent name variation searches for plugins
|
|
- [x] Fix SpigotMC version retrieval issues
|
|
- [x] Fix update check progress getting stuck
|
|
- [x] Complete Modrinth integration
|
|
- [x] Fix incorrect plugin matching issues
|
|
- [x] Improve matching algorithm to reduce false positives
|
|
- [x] Complete GitHub integration
|
|
- [ ] Add GitHub API authentication for higher rate limits (environment variable support exists)
|
|
- [x] Fix command parameter naming issues for update checks
|
|
- [x] Fix plugin update checking functionality after UI refactor
|
|
- [x] Fix serverPath not being passed correctly to PluginContext
|
|
- [ ] Optimize duplicate plugin search results (e.g., ViaVersion plugin)
|
|
- [x] Implement changelog extraction
|
|
- [x] Create plugin backup functionality
|
|
- [x] Develop plugin replacement logic
|
|
- [x] Implement plugin source persistence (store identified repo/ID to avoid searching)
|
|
- [ ] Allow manual setting/clearing of persistent source
|
|
- [x] Add plugin update UI integration
|
|
- [x] Add update buttons to plugin listing and details view
|
|
- [x] Show update progress with loading indicators
|
|
- [x] Handle file access errors gracefully
|
|
- [x] Ensure correct version numbering in filenames
|
|
- [x] Display up-to-date version information for all plugins
|
|
- [x] Handle premium plugins with user guidance for manual downloads
|
|
- [ ] Present multiple potential matches for ambiguous plugins
|
|
- [x] Make version numbers clickable links to repository sources
|
|
- [ ] Allow user selection of correct plugin match when multiple are found
|
|
- [x] Server platform compatibility matching
|
|
- [x] Detect server platform and version accurately (Paper, Spigot, Forge, NeoForge, Fabric, etc.)
|
|
- [x] Filter plugin updates to match the server platform
|
|
- [x] Prevent incompatible version updates
|
|
- [x] Add compatibility indicators in the code for available updates
|
|
- [x] Add platform indicators in the UI for available updates
|
|
|
|
## UI Development (In Progress)
|
|
- [x] Design and implement main dashboard
|
|
- [x] Refine plugin list view styling and layout
|
|
- [x] Add progress indicator for server scanning
|
|
- [x] Build server folder selection interface
|
|
- [x] Implement plugin detail view
|
|
- [x] Add update notification system
|
|
- [x] Add per-plugin update check button & loading indicator
|
|
- [x] Add visual feedback for bulk update check (progress, loading state)
|
|
- [x] Implement error handling in UI with user-friendly messages
|
|
- [x] Add premium plugin detection & manual download guidance
|
|
- [ ] Create settings panel
|
|
- [x] Implement dark mode
|
|
- [ ] Implement plugin matching disambiguation UI
|
|
- [x] Add clickable version links to repository pages
|
|
- [ ] Add error recovery UI for failed updates
|
|
- [ ] Add detailed progress logging in UI for debugging
|
|
- [x] Implement application update checking functionality
|
|
- [x] Display application update notifications
|
|
|
|
## Security Features (Upcoming)
|
|
- [ ] Implement sandboxing for network requests
|
|
- [ ] Add SHA256 checksum verification
|
|
- [ ] Create download warning system for unverified sources
|
|
|
|
## Testing & Refinement (Upcoming)
|
|
- [ ] Comprehensive testing with various server setups
|
|
- [ ] Performance optimization (especially concurrent requests)
|
|
- [ ] Error handling improvements (parsing, network, etc.)
|
|
- [ ] User acceptance testing
|
|
- [ ] Add automated tests for critical functionality
|
|
- [ ] Add error telemetry (optional)
|
|
|
|
## Documentation (Upcoming)
|
|
- [ ] Create user documentation
|
|
- [ ] Write developer documentation
|
|
- [ ] Create installation guide
|
|
- [ ] Add troubleshooting guide
|
|
- [ ] Document known limitations and workarounds
|
|
|
|
## Deployment (Upcoming)
|
|
- [ ] Prepare release process
|
|
- [ ] Package application for Windows
|
|
- [ ] Package application for macOS
|
|
- [ ] Package application for Linux
|
|
- [ ] Create project website (optional)
|
|
|
|
## Future Enhancements (v0.2.0+)
|
|
- [ ] Plugin conflict checker
|
|
- [ ] Minecraft version compatibility checker
|
|
- [ ] Server config backup & restore manager
|
|
- [ ] Scheduled plugin update checks
|
|
- [ ] Rollback system
|
|
- [ ] Plugin recommendation system
|
|
- [ ] Discord webhook integration
|
|
- [ ] Plugin search and browse functionality
|
|
- [ ] Plugin install from repository |