PlugSnatcher/ROADMAP.md

6.0 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
    • 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 (High Priority)
    • 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 platform indicators in the UI for available updates
    • Allow manual selection of target platform when multiple are available

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

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