promotional bannermobile promotional banner

Illegal Quarry - end of life -

Automated mining system with modular upgrades and fuel mechanics. Inspired by the Ender Quarry from Minecraft

File Details

IllegalQuarry-0.1.173.jar

  • R
  • Jan 25, 2026
  • 348.79 KB
  • 181
  • Early Access

File Name

IllegalQuarry-0.1.173.jar

Supported Versions

  • Early Access

Changelog - Illegal Quarry

[0.1.173] - 2026-01-25

MAJOR: Pure ECS Persistence System πŸš€

BREAKING CHANGE: Migrated from CSV-based persistence to 100% game-internal ECS persistence.

New Files

  • QuarryDataManager.java - In-memory cache + disk I/O system for quarry persistence

    • Methods: saveQuarry(), loadQuarry(), removeQuarry(), persistToDisk(), loadFromDisk()
    • File: mods/tiffy-IllegalQuarry/quarries.dat (replaces quarry.csv)
    • Format: Pipe-delimited NBT strings (one per line)
  • QuarryInitializer.java - ECS system for restoring persisted quarries on startup

    • Waits 20 ticks for world to fully load
    • Deserializes and creates ECS entities from cache
    • Quarries resume mining immediately with preserved state

Modified Files

  • QuarryComponent.java - βœ… Added serialization

    • toNBTString() - Serialize to pipe-delimited format
    • fromNBTString() - Deserialize from pipe-delimited format
    • Format: id:Q-xxx|owner:name|pos:x,y,z|speed:3|tier:2|tick:45|fuel:1200|filters:Ore_Mithril;Ore_Gold
  • QuarryPlugin.java - βœ… Removed QuarryManager, added ECS lifecycle

    • Calls QuarryDataManager.loadFromDisk() in setup()
    • Registers QuarryInitializer for automatic restoration
    • Calls QuarryDataManager.persistToDisk() in shutdown()
    • Added debug logging in start()
  • QuarryListener.java - βœ… Complete refactor

    • Removed all QuarryManager dependencies
    • Added countQuarriesByPlayer() for player limits
    • Added getQuarriesNear() for adjacent quarry detection
    • All events now use QuarryDataManager
  • QuarryMiningSystem.java - βœ… Added persistence

    • Fuel state saved every 100 ticks
    • Immediate save after fuel refill
    • Max fuel loss on crash: ~5 seconds
  • IllegalQuarryCommand.java - βœ… Updated persistence calls

    • /iq and /iq clear now query QuarryDataManager
    • Shows fuel + filter count in info display
  • IllegalQuarryListCommand.java - βœ… Updated persistence calls

    • /iqlist iterates QuarryDataManager.getAllQuarries()
    • Updated storage location message

Deleted Files

  • QuarryManager.java ❌ REMOVED - Replaced by lighter QuarryDataManager

Persistence Features

  • βœ… Fuel Persistence: Fuel balance survives restart (100-tick save interval + immediate on refill)
  • βœ… Filter Persistence: Active filters restored after restart
  • βœ… Speed Persistence: Speed level maintained across restarts
  • βœ… Tick Counter Persistence: Mining progress preserved
  • βœ… Zero CSV Files: No quarry.csv - 100% game-internal storage
  • βœ… Atomic Writes: Entire cache written atomically on shutdown
  • βœ… Instant Resume: Quarries resume mining immediately on startup with previous state
  • βœ… Crash Resilience: Max 500 tick fuel loss (~25 seconds) on force kill

Migration Notes

  • ⚠️ Breaking Change: Existing quarry.csv data is NOT imported
  • Recommendation: Fresh start - players must re-place quarries
  • Rationale: Fuel/filter data not in CSV; clean slate preferred for pre-release
  • Benefit: No data loss after v0.1.173 (all state now persisted)

Technical Details

  • Storage: mods/tiffy-IllegalQuarry/quarries.dat
  • Format: Pipe-delimited key:value pairs (human-readable)
  • Thread Safety: ConcurrentHashMap-based caching (proven pattern from IllegalPipe)
  • Lifecycle: Load setup() β†’ Restore startup() β†’ Save runtime changes β†’ Persist shutdown()
  • Performance: One-time load + periodic saves (not per-tick overhead)

Build Status

  • βœ… Build #173: SUCCESSFUL
  • βœ… Compile errors: 0
  • βœ… Warnings: 5 (BlockState deprecation - external API)
  • βœ… JAR size: 349KB