package com.thebrokenrail.slightlyvanilla.dispenser; import com.thebrokenrail.slightlyvanilla.SlightlyVanilla; import com.thebrokenrail.slightlyvanilla.entity.SlimeballEntity; import net.minecraft.block.dispenser.DispenserBehavior; import net.minecraft.block.dispenser.ItemDispenserBehavior; import net.minecraft.block.dispenser.ProjectileDispenserBehavior; import net.minecraft.entity.projectile.ProjectileEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPointer; import net.minecraft.util.math.Position; import net.minecraft.world.World; public class SlimeballDispenserBehavior implements DispenserBehavior { private static class Default extends ItemDispenserBehavior { } private static class Modified extends ProjectileDispenserBehavior { @Override protected ProjectileEntity createProjectile(World position, Position stack, ItemStack itemStack) { SlimeballEntity entity = new SlimeballEntity(position, stack.getX(), stack.getY(), stack.getZ()); entity.setItem(itemStack); return entity; } } @Override public ItemStack dispense(BlockPointer pointer, ItemStack stack) { if (SlightlyVanilla.getConfig().throwableSlimeballs.dispenser) { return new Modified().dispense(pointer, stack); } else { return new Default().dispense(pointer, stack); } } }