UC makes Block implement InventoryProvider, which triggers LBA's sanity check when adding compatibility wrappers for InventoryProvider - which causes crashes like https://github.com/AlexIIL/SimplePipes/issues/43.
UC uses mixins to provider UC -> LBA compatibility, which were broken in LBA 0.7.0. I can submit a PR to make UC use LBA's existing API for adding compatibility wrappers instead of mixins though.
For the first issue I can think of two fixes:
UC stops making every block potentially an inventory, and instead takes a different path for providing UC -> vanilla compatibility. I don't know how feasible this is though, or what this would mean for UC users. (LBA currently requires every block that provides an inventory to implement InventoryProvider themselves if they want vanilla users to see it's inventory, I guess that implies UC users would need to do the same).
LBA downgrades the sanity check to a warning rather than a crash when adding "compatibility" wrappers. I'd prefer not to do this as I think pretending every Block is an inventory bad idea (and will prevent any later wrappers from adding compatibility), but it's technically the simplest solution.
There are 2 problems:
Block
implementInventoryProvider
, which triggers LBA's sanity check when adding compatibility wrappers forInventoryProvider
- which causes crashes like https://github.com/AlexIIL/SimplePipes/issues/43.For the first issue I can think of two fixes:
InventoryProvider
themselves if they want vanilla users to see it's inventory, I guess that implies UC users would need to do the same).Block
is an inventory bad idea (and will prevent any later wrappers from adding compatibility), but it's technically the simplest solution.