6.2 KiB
6.2 KiB
🔧 PlugSnatcher - Development Roadmap
Project Setup ✅
- Create project roadmap
- Initialize Tauri + React project
- Setup basic project structure
- Create Remote repository (optional)
Core Infrastructure (Completed) ✅
- Setup SQLite or JSON storage for plugin data
- Create core data models
- Build server/plugin directory scanner (basic implementation)
- Implement asynchronous server scanning (non-blocking)
- Implement JAR file parser for plugin.yml extraction
Plugin Discovery (Completed) ✅
- Improve server type detection (Paper/Spigot distinction, etc.)
- Implement plugins folder detection logic
- Design plugin metadata extraction system
- Extract basic fields (name, version, author, etc.)
- Extract website field from plugin.yml
- Build plugin hash identification system
- Create plugin matching algorithm
Web Crawler Development (Mostly Completed)
- Create base web crawler architecture
- Implement HangarMC crawler
- Implement SpigotMC data source using SpiGet API
- Basic implementation
- Fix version information retrieval issues
- Reduce version warning logs and improve caching
- Handle rate limiting and 403 errors
- Implement Modrinth crawler
- Basic implementation
- Version compatibility checking
- Fix version number display issues
- Handle rate limit issues
- Implement GitHub releases crawler
- Basic implementation
- Enable GitHub search functionality
- Add GitHub API authentication for higher rate limits
Update Management (Mostly Completed)
- Build update detection system (Basic logic)
- Improve update detection reliability
- Correctly fetch detailed version information from repositories
- Implement robust version comparison logic (handling non-SemVer, suffixes, etc.)
- Implement proper request headers (User-Agent, etc.) to mimic browser behavior
- Add delays between API requests to mitigate rate limiting
- Implement automatic retry logic for rate limits (429) and network errors
- Implement API response caching (reduce requests, improve performance)
- Implement intelligent name variation searches for plugins
- Fix SpigotMC version retrieval issues
- Fix update check progress getting stuck
- Complete Modrinth integration
- Fix incorrect plugin matching issues
- Improve matching algorithm to reduce false positives
- Complete GitHub integration
- Add GitHub API authentication for higher rate limits (environment variable support exists)
- Fix command parameter naming issues for update checks
- Fix plugin update checking functionality after UI refactor
- Fix serverPath not being passed correctly to PluginContext
- Optimize duplicate plugin search results (e.g., ViaVersion plugin)
- Implement changelog extraction
- Create plugin backup functionality
- Develop plugin replacement logic
- Implement plugin source persistence (store identified repo/ID to avoid searching)
- Allow manual setting/clearing of persistent source
- Add plugin update UI integration
- Add update buttons to plugin listing and details view
- Show update progress with loading indicators
- Handle file access errors gracefully
- Ensure correct version numbering in filenames
- Display up-to-date version information for all plugins
- Handle premium plugins with user guidance for manual downloads
- Present multiple potential matches for ambiguous plugins
- Make version numbers clickable links to repository sources
- Allow user selection of correct plugin match when multiple are found
- Server platform compatibility matching
- Detect server platform and version accurately (Paper, Spigot, Forge, NeoForge, Fabric, etc.)
- Filter plugin updates to match the server platform
- Prevent incompatible version updates
- Add compatibility indicators in the code for available updates
- Add platform indicators in the UI for available updates
UI Development (In Progress)
- Design and implement main dashboard
- Refine plugin list view styling and layout
- Add progress indicator for server scanning
- Build server folder selection interface
- Implement plugin detail view
- Add update notification system
- Add per-plugin update check button & loading indicator
- Add visual feedback for bulk update check (progress, loading state)
- Implement error handling in UI with user-friendly messages
- Add premium plugin detection & manual download guidance
- Create settings panel
- Implement dark mode
- Implement plugin matching disambiguation UI
- Add clickable version links to repository pages
- Add error recovery UI for failed updates
- Add detailed progress logging in UI for debugging
- Implement application update checking functionality
- 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