Feature: Add Xaero's Minimap & World Map Integration with Shared Maps #1021
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements shared Xaero's Minimap & World Map integration that allows map data to be shared across different modpack instances, preventing duplicates and preserving exploration progress when playing on the same servers.
🎯 Problem Solved
Currently, Xaero's maps are stored per-instance in folders named after saved servers, leading to:
✨ Features Added
🗺️ Shared Map Storage
🌐 Server-Specific Organization
instance.jsonconfiguration⚙️ Configurable Settings
Two new settings added to the launcher:
xaeroMapsShared(default: true) - Enable/disable shared mapsxaeroMapsServerMatching(default: true) - Use server-specific organization🔄 Automatic Lifecycle Management
📁 Directory Structure
🔧 Technical Implementation
New Service Architecture
XaeroMapsService: Core service handling map managementdefinedServices.tsfor automatic initializationruntime-apifor extensibilityIntegration Points
InstanceService: Automatic setup during instance creation/deletionlinkDirectory()andlinkWithTimeoutOrCopy()utilitiesKey Methods
🧪 Testing
Created comprehensive integration tests that verify:
💡 Benefits
🔮 Future Enhancements
servers.datsupport (placeholder implemented)Fixes #1000.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.