Skip to content

Commit 5d5d2f2

Browse files
committed
fixed dispense crash
1 parent 6581169 commit 5d5d2f2

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
- Fixed chat interference with hydration ui
66
- Fixed bamboo pump crash
77
- Fixed puddles compat
8+
- Fixed dispense crash
89
### Changed:
910
-

src/main/java/net/dehydration/mixin/DispenserBlockMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public DispenserBlockMixin(Settings settings) {
3333

3434
@Inject(method = "dispense", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/block/entity/DispenserBlockEntity;getStack(I)Lnet/minecraft/item/ItemStack;"), locals = LocalCapture.CAPTURE_FAILSOFT, cancellable = true)
3535
protected void dispenseMixin(ServerWorld world, BlockState state, BlockPos pos, CallbackInfo info, DispenserBlockEntity dispenserBlockEntity, BlockPointer blockPointer, int i,
36-
ItemStack itemStack) {
36+
ItemStack itemStack) {
3737
BlockPos newPos = pos.offset(state.get(DispenserBlock.FACING));
3838
BlockState blockState = world.getBlockState(newPos);
3939
if (!itemStack.isEmpty()) {
@@ -69,7 +69,7 @@ protected void dispenseMixin(ServerWorld world, BlockState state, BlockPos pos,
6969
world.syncWorldEvent(WorldEvents.DISPENSER_DISPENSES, pos, 0);
7070
info.cancel();
7171
}
72-
} else if (itemStack.getItem() instanceof PotionItem && itemStack.get(DataComponentTypes.POTION_CONTENTS).potion().get() == ItemInit.PURIFIED_WATER) {
72+
} else if (itemStack.getItem() instanceof PotionItem && itemStack.get(DataComponentTypes.POTION_CONTENTS) != null && itemStack.get(DataComponentTypes.POTION_CONTENTS).potion().isPresent() && itemStack.get(DataComponentTypes.POTION_CONTENTS).potion().get() == ItemInit.PURIFIED_WATER) {
7373
if (blockState.isOf(BlockInit.COPPER_CAULDRON_BLOCK)) {
7474
itemStack.decrement(1);
7575
dispenserBlockEntity.setStack(i, new ItemStack(Items.GLASS_BOTTLE));

0 commit comments

Comments
 (0)