- 56
- 4
- 3
вроде звучит просто, а как сделать придумать не могу.
у меня есть вот такой код, он работает, но я не могу придумать каким образом выдать пол стака предметов например. был вариант просто нафлудить выдачу предметов, и это бы сработало, но такой костыль... можно же как-то более рационально сделать, наверное
предметы выдаются по одному, а мне нужно 32 предмета. я нигде не прописывал количество, потому что не нашел, куда это вообще вписать. пробовал вместо addItemStackToInventory заюзать add, но там тоже count негде выставить
у меня есть вот такой код, он работает, но я не могу придумать каким образом выдать пол стака предметов например. был вариант просто нафлудить выдачу предметов, и это бы сработало, но такой костыль... можно же как-то более рационально сделать, наверное
Java:
@SuppressWarnings("deprecation")
@Override
public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand hand,
BlockRayTraceResult hit) {
if(player.getHeldItem(hand).getItem() == CoSRPGItems.CosoriteScrap.get()) {
if (!worldIn.isRemote()) {
BlockPos YblockPos = new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ());
BlockState Yblock = worldIn.getBlockState(YblockPos);
if(Yblock.getBlock() == Blocks.SKELETON_SKULL || Yblock.getBlock() == Blocks.WITHER_SKELETON_SKULL) {
if (!player.isCreative())
player.getHeldItem(hand).shrink(1);
worldIn.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(),
SoundEvents.PARTICLE_SOUL_ESCAPE, SoundCategory.BLOCKS, 1.7f, 0.7f);
worldIn.setBlockState(pos.up(1), Blocks.AIR.getDefaultState());
if (!player.inventory.addItemStackToInventory(new ItemStack(CoSRPGItems.Cosorite.get()))) // вот тут, я не знаю как выдавать определенное количество
player.dropItem(new ItemStack(CoSRPGItems.Cosorite.get()), false); // ну и тут
}
}
else return ActionResultType.FAIL;
}
if (player.getHeldItem(hand).getItem() == Items.WITHER_SKELETON_SKULL || player.getHeldItem(hand).getItem() == Items.SKELETON_SKULL) {
return ActionResultType.PASS;
}
return ActionResultType.CONSUME;
}
предметы выдаются по одному, а мне нужно 32 предмета. я нигде не прописывал количество, потому что не нашел, куда это вообще вписать. пробовал вместо addItemStackToInventory заюзать add, но там тоже count негде выставить