File Details
obscuras_simple_storage-v1.2.0
- R
- Mar 8, 2026
- 1.89 MB
- 1.9K
- 1.21.1
- Fabric
File Name
obscuras_simple_storage-v1.2.0.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
# Obscura's Simple Storage — v1.2.0 ## Bug Fixes ### 🔴 Critical — Vanilla blocks not dropping items when broken Crafting tables, furnaces, chests, barrels, and other vanilla blocks with inventories were silently swallowing their drop when broken if this mod was installed. **Root cause:** Our block-break event handler called Cardinal Components' `ComponentKey.get()` on *every* broken block entity — including vanilla ones. For vanilla blocks CCA throws a `NoSuchElementException`, which aborted execution before Minecraft's loot table drop code ran. The block was destroyed but the item never spawned. **Fixed:** Switched to `getNullable()` with a null guard in all three affected call sites. --- ### 🟠Stability — Race condition crashing cable network cache Under multithreaded config or rapid network changes, the cable network could throw a `ConcurrentModificationException` due to a plain `HashMap` being accessed from multiple threads. Replaced with `ConcurrentHashMap`. ### 🟠Stability — Null pointer in inventory cache access Two race conditions in `BlockInventoryAccess` where the `cache` field could be set to `null` by `markInvalid()` between the null check and its use, causing a `NullPointerException`. Fixed by capturing the field into a local variable before use. ### 🟡 Stability — Null pointer in hopper block entity on load `AbstractInventoryHopperBlockEntity.onLoad()` accessed `level` without a null guard. Added a proper null check to prevent a potential `NullPointerException` during edge-case block entity lifecycle events. ### 🟢 Code Quality — Replaced debug stack trace dump with proper logging Recursive storage access detection was printing a raw stack trace to stdout via `new Throwable().printStackTrace()`. Now logs a clean warning through the mod logger instead. --- ## Version - Bumped mod version: `v1.1.0` → `v1.2.0`

