Skip to content

Commit

Permalink
Don't initialize ItemStack on DispenserBlock
Browse files Browse the repository at this point in the history
Signed-off-by: Gabriel Harris-Rouquette <gabizou@me.com>
  • Loading branch information
gabizou committed Jul 28, 2021
1 parent af4922f commit 6bccc65
Showing 1 changed file with 11 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@
package org.spongepowered.common.mixin.tracker.world.level.block;

import com.google.common.collect.ImmutableList;
import net.minecraft.core.BlockPos;
import net.minecraft.core.BlockSourceImpl;
import net.minecraft.core.dispenser.DispenseItemBehavior;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.world.level.block.entity.DispenserBlockEntity;
import org.spongepowered.api.event.CauseStackManager;
import org.spongepowered.api.event.SpongeEventFactory;
import org.spongepowered.api.event.item.inventory.DropItemEvent;
Expand All @@ -48,17 +55,10 @@

import java.util.ArrayList;
import java.util.List;
import net.minecraft.core.BlockPos;
import net.minecraft.core.BlockSourceImpl;
import net.minecraft.core.dispenser.DispenseItemBehavior;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.world.level.block.entity.DispenserBlockEntity;

@Mixin(DispenserBlock.class)
public class DispenserBlockMixin_Tracker {
private ItemStack tracker$originalItem = ItemStack.EMPTY;
private ItemStack tracker$originalItem;
private PhaseContext<?> tracker$context = PhaseContext.empty();

@Inject(method = "dispenseFrom", at = @At(value = "HEAD"))
Expand Down Expand Up @@ -117,6 +117,9 @@ public class DispenserBlockMixin_Tracker {
final DropItemEvent.Pre dropEvent = SpongeEventFactory.createDropItemEventPre(frame.currentCause(), ImmutableList.of(snapshot), original);
SpongeCommon.post(dropEvent);
if (dropEvent.isCancelled()) {
if (this.tracker$originalItem == null) {
this.tracker$originalItem = ItemStack.EMPTY;
}
dispenserTileEntity.setItem(index, this.tracker$originalItem);
return;
}
Expand Down

0 comments on commit 6bccc65

Please sign in to comment.