1.2.1
Compatibility
Changes
š What's New in ArtSnap v1.2
šÆ Major New Features
Double Chest Support
⢠Complete Implementation: Full support for both single (27 slot) and double (54 slot) chests ⢠Smart Detection: Automatically detects adjacent chests using ChestType.LEFT/RIGHT enumeration ⢠Unified Interface: New ChestInventory wrapper class handles all chest types seamlessly ⢠Slot Mapping: Proper slot mapping (0-26 ā primary, 27-53 ā secondary) with validation
Enhanced Formatting Preservation
⢠Perfect Restoration: Complete serialization of ItemStack data for flawless item recovery ⢠Multi-tier System: 3-tier restoration process (perfect ā enhanced ā basic ā emergency fallback) ⢠Complete Metadata: Preserves custom names, lore, enchantments, colors, and all styling (§ codes) ⢠Backward Compatible: Existing map pieces continue to work without modification
š§ Technical Improvements
Map Data Management
⢠Smart ID Remapping: Automatic conflict resolution when importing to foreign worlds ⢠Persistent Author Names: Author attribution preserved even for offline players ⢠UUID-based Exports: Concurrent-safe export system with unique identifiers ⢠Atomic File Operations: Robust file handling with atomic writes and validation
Performance & Stability
⢠Author Caching: Fixed performance crashes in load commands with intelligent caching ⢠Concurrent Safety: Thread-safe operations for multiplayer environments ⢠Enhanced Debug Logging: Comprehensive logging for troubleshooting and development
š Critical Bug Fixes
Chest & Slot Management
⢠Fixed double chest slot ordering issues ⢠Added secondary validation for slot usage ⢠Corrected slot mapping for double chest configurations ⢠Enhanced validation for all chest loading operations
Map Data Integrity
⢠Fixed MAP_ID restoration during import operations ⢠Resolved .dat file import issues with idcounts.dat integration ⢠Corrected map ID assignment starting from 0 in empty worlds ⢠Enhanced map data loading with proper validation
Export/Import System
⢠Fixed export author suggestions and .dat file copying ⢠Resolved UUID display issues for offline players ⢠Enhanced export system with actual .dat file copying to export directories ⢠Improved import error handling and recovery
š Enhanced Commands
All 5 core command functions now support double chests:
⢠/artsnap save - Enhanced with double chest detection ⢠/artsnap save <author> - Improved author attribution ⢠/artsnap load - Smart chest validation and slot mapping ⢠/artsnap export - UUID-based with concurrent safety ⢠/artsnap import - Enhanced with better error recovery
š File System Improvements
⢠Atomic Writes: Prevents corruption during save operations ⢠Robust Validation: Enhanced file integrity checking ⢠Smart Cleanup: Configurable cleanup of unused cloned files ⢠Better Organization: Improved directory structure and file management
šØ User Experience
⢠Better Feedback: Enhanced debug output and status messages ⢠Error Recovery: Graceful handling of edge cases and errors ⢠Performance: Faster load times with caching optimizations ⢠Reliability: More stable operation in multiplayer environments
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TwpL00Cj:oi1kQopl"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TwpL00Cj:oi1kQopl"
}

