Fix crash when something tries to access itemhandler of pattern storage
This commit is contained in:
parent
8dd27d4368
commit
b8bfddfe97
@ -14,12 +14,10 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import ru.dbotthepony.mc.otm.capability.IMatterGridCell;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import ru.dbotthepony.mc.otm.capability.*;
|
||||
import ru.dbotthepony.mc.otm.matter.MatterGrid;
|
||||
import ru.dbotthepony.mc.otm.Registry;
|
||||
import ru.dbotthepony.mc.otm.capability.IMatterHandler;
|
||||
import ru.dbotthepony.mc.otm.capability.IPatternStorage;
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability;
|
||||
import ru.dbotthepony.mc.otm.container.MatteryContainer;
|
||||
import ru.dbotthepony.mc.otm.menu.PatternStorageMenu;
|
||||
|
||||
@ -41,6 +39,10 @@ public class BlockEntityPatternStorage extends BlockEntityMattery implements IMa
|
||||
}
|
||||
};
|
||||
|
||||
private final LazyOptional<IItemHandler> resolver_item = LazyOptional.of(() -> patterns.handler(
|
||||
((slot, stack) -> stack.getCapability(MatteryCapability.PATTERN).isPresent())
|
||||
));
|
||||
|
||||
private void setChangedPatterns() {
|
||||
setChanged();
|
||||
|
||||
@ -118,8 +120,11 @@ public class BlockEntityPatternStorage extends BlockEntityMattery implements IMa
|
||||
@Override
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
||||
if (valid) {
|
||||
if (cap == MatteryCapability.PATTERN || cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || cap == MatteryCapability.MATTER_CELL)
|
||||
if (cap == MatteryCapability.PATTERN || cap == MatteryCapability.MATTER_CELL)
|
||||
return resolver.cast();
|
||||
|
||||
if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||
return resolver_item.cast();
|
||||
}
|
||||
|
||||
return super.getCapability(cap, side);
|
||||
|
Loading…
Reference in New Issue
Block a user