Example usage for net.minecraftforge.event.entity.player FillBucketEvent FillBucketEvent

List of usage examples for net.minecraftforge.event.entity.player FillBucketEvent FillBucketEvent

Introduction

In this page you can find the example usage for net.minecraftforge.event.entity.player FillBucketEvent FillBucketEvent.

Prototype

public FillBucketEvent(PlayerEntity player, @Nonnull ItemStack current, World world,
            @Nullable RayTraceResult target) 

Source Link

Usage

From source file:advancedbrewing.item.ItemBucketPotion.java

License:Minecraft Mod Public

@Override
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World,
            par3EntityPlayer, false);/*from w  w w .  j  av a  2s .  c  o m*/

    if (movingobjectposition == null) {
        return par1ItemStack;
    } else {
        FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World,
                movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return par1ItemStack;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (par3EntityPlayer.capabilities.isCreativeMode) {
                return par1ItemStack;
            }

            if (--par1ItemStack.stackSize <= 0) {
                return event.result;
            }

            if (!par3EntityPlayer.inventory.addItemStackToInventory(event.result)) {
                par3EntityPlayer.dropPlayerItem(event.result);
            }

            return par1ItemStack;
        }

        if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {
            int i = movingobjectposition.blockX;
            int j = movingobjectposition.blockY;
            int k = movingobjectposition.blockZ;

            if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) {
                return par1ItemStack;
            }

            if (movingobjectposition.sideHit == 0) {
                --j;
            }

            if (movingobjectposition.sideHit == 1) {
                ++j;
            }

            if (movingobjectposition.sideHit == 2) {
                --k;
            }

            if (movingobjectposition.sideHit == 3) {
                ++k;
            }

            if (movingobjectposition.sideHit == 4) {
                --i;
            }

            if (movingobjectposition.sideHit == 5) {
                ++i;
            }

            if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) {
                return par1ItemStack;
            }

            if (this.tryPlaceContainedLiquid(par2World, i, j, k, par1ItemStack)
                    && !par3EntityPlayer.capabilities.isCreativeMode) {
                return new ItemStack(Item.bucketEmpty);
            }
        }

        return par1ItemStack;
    }
}

From source file:arekkuusu.grimoireOfAlice.item.ItemIbarakiBoxEmpty.java

License:Open Source License

@Override
public ItemStack onItemRightClick(ItemStack stack_, World world, EntityPlayer player) {
    boolean flag = this.isFull == Blocks.air;
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag);

    if (movingobjectposition == null) {
        return stack_;
    } else {/*from  www .  j a  v  a2  s  .  c  o  m*/
        FillBucketEvent event = new FillBucketEvent(player, stack_, world, movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return stack_;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (player.capabilities.isCreativeMode) {
                return stack_;
            }

            if (--stack_.stackSize <= 0) {
                return event.result;
            }

            if (!player.inventory.addItemStackToInventory(event.result)) {
                player.dropPlayerItemWithRandomChoice(event.result, false);
            }

            return stack_;
        }
        if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            int i = movingobjectposition.blockX;
            int j = movingobjectposition.blockY;
            int k = movingobjectposition.blockZ;

            if (!world.canMineBlock(player, i, j, k)) {
                return stack_;
            }

            if (flag) {
                if (!player.canPlayerEdit(i, j, k, movingobjectposition.sideHit, stack_)) {
                    return stack_;
                }

                Material material = world.getBlock(i, j, k).getMaterial();
                int l = world.getBlockMetadata(i, j, k);

                if (material == Material.water && l == 0) {
                    world.setBlockToAir(i, j, k);
                    return this.func_150910_a(stack_, player, GOAItem.ibarakiBoxFilled);
                }

                if (material == Material.lava && l == 0) {
                    world.setBlockToAir(i, j, k);
                    return this.func_150910_a(stack_, player, GOAItem.ibarakiBoxFilled);
                }
            } else {
                if (this.isFull == Blocks.air) {
                    return new ItemStack(this);
                }
            }
        }

        return stack_;
    }
}

From source file:com.savageboy74.savagetech.item.DiamondBucket.java

License:Open Source License

public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
    boolean flag = this.isFull == Blocks.air;
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag);

    if (movingobjectposition == null) {
        return itemStack;
    } else {/*from   w  w  w  .j a  v  a  2s .c  o m*/
        FillBucketEvent event = new FillBucketEvent(player, itemStack, world, movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return itemStack;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (player.capabilities.isCreativeMode) {
                return itemStack;
            }

            if (--itemStack.stackSize <= 0) {
                return event.result;
            }

            if (!player.inventory.addItemStackToInventory(event.result)) {
                player.dropPlayerItemWithRandomChoice(event.result, false);
            }

            return itemStack;
        }
        if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            int i = movingobjectposition.blockX;
            int j = movingobjectposition.blockY;
            int k = movingobjectposition.blockZ;

            if (!world.canMineBlock(player, i, j, k)) {
                return itemStack;
            }

            if (flag) {
                if (!player.canPlayerEdit(i, j, k, movingobjectposition.sideHit, itemStack)) {
                    return itemStack;
                }

                Material material = world.getBlock(i, j, k).getMaterial();
                int l = world.getBlockMetadata(i, j, k);

                if (material == Material.water && l == 0) {
                    world.setBlockToAir(i, j, k);
                    return this.func_150910_a(itemStack, player, ItemRegistry.diamondWaterBucket);
                }

                else if (material == Material.lava && l == 0) {
                    world.setBlockToAir(i, j, k);
                    return this.func_150910_a(itemStack, player, ItemRegistry.diamondLavaBucket);
                }
            }
        }

        return itemStack;
    }
}

From source file:dokutoku.lead.zotonic.item.MagicBucket.java

License:Open Source License

public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    float f = 1.0F;
    double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f;
    double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f
            + 1.62D - (double) par3EntityPlayer.yOffset;
    double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f;
    boolean flag = false;
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World,
            par3EntityPlayer, flag);/*from  w ww .j av  a 2s .c  om*/

    if (movingobjectposition == null) {
        return par1ItemStack;
    }
    FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World,
            movingobjectposition);
    if (MinecraftForge.EVENT_BUS.post(event)) {
        return par1ItemStack;
    }

    if (event.getResult() == Event.Result.ALLOW) {
        if (par3EntityPlayer.capabilities.isCreativeMode) {
            return par1ItemStack;
        }

        if (--par1ItemStack.stackSize <= 0) {
            return event.result;
        }

        if (!par3EntityPlayer.inventory.addItemStackToInventory(event.result)) {
            par3EntityPlayer.dropPlayerItem(event.result);
        }

        return par1ItemStack;
    }

    if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {

        int i = movingobjectposition.blockX;
        int j = movingobjectposition.blockY;
        int k = movingobjectposition.blockZ;
        if (par2World.getBlockMaterial(i, j, k) == Material.water) {
            System.out.println("True");
        }

        if (movingobjectposition.sideHit == 0) {
            --j;
        }

        if (movingobjectposition.sideHit == 1) {
            ++j;
        }

        if (movingobjectposition.sideHit == 2) {
            --k;
        }

        if (movingobjectposition.sideHit == 3) {
            ++k;
        }

        if (movingobjectposition.sideHit == 4) {
            --i;
        }

        if (movingobjectposition.sideHit == 5) {
            ++i;
        }

        if (par2World.getBlockMaterial(i, j, k).isLiquid() && par2World.getBlockMetadata(i, j, k) == 0) {
            par2World.setBlockToAir(i, j, k);

        } else {

            if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) {
                return par1ItemStack;
            }

            if (this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k)
                    && !par3EntityPlayer.capabilities.isCreativeMode) {
                return new ItemStack(this);
            }
        }
    }

    return par1ItemStack;
}

From source file:EJ.Fluids.emeraldFluidBucket.java

License:LGPL

@Override
public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player) {
    // TODO Auto-generated method stub
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, true);

    if (movingobjectposition == null) {
        return item;
    } else {//from   w w  w . jav  a  2  s .com
        FillBucketEvent event = new FillBucketEvent(player, item, world, movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return item;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (player.capabilities.isCreativeMode) {
                return item;
            }

            if (--item.stackSize <= 0) {
                return event.result;
            }

            if (!player.inventory.addItemStackToInventory(event.result)) {
                player.dropPlayerItem(event.result);
            }

            return item;
        }

        if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {
            int x = movingobjectposition.blockX;
            int y = movingobjectposition.blockY;
            int z = movingobjectposition.blockZ;

            if (!world.canMineBlock(player, x, y, z)) {
                return item;
            }

            if (movingobjectposition.sideHit == 0) {
                --y;
            }

            if (movingobjectposition.sideHit == 1) {
                ++y;
            }

            if (movingobjectposition.sideHit == 2) {
                --z;
            }

            if (movingobjectposition.sideHit == 3) {
                ++z;
            }

            if (movingobjectposition.sideHit == 4) {
                --x;
            }

            if (movingobjectposition.sideHit == 5) {
                ++x;
            }

            if (!player.canPlayerEdit(x, y, z, movingobjectposition.sideHit, item)) {
                return item;
            }

            if (this.tryPlaceContainedLiquid(world, x, y, z) && !player.capabilities.isCreativeMode) {
                return new ItemStack(Item.bucketEmpty);
            }

        }

        return item;
    }
}

From source file:emris.bctfccrossover.items.ItemBuckets.java

License:Open Source License

@Override
public ItemStack onItemRightClick(ItemStack bucket, World world, EntityPlayer player) {
    MovingObjectPosition mop = PlayerUtils.getTargetBlock(player);
    if (mop != null) {
        int X = mop.blockX;
        int Y = mop.blockY;
        int Z = mop.blockZ;
        if (!world.canMineBlock(player, X, Y, Z)) {
            return bucket;
        }/*  w  ww.ja  va  2 s  .  c  o m*/

        if (mop.typeOfHit == MovingObjectType.BLOCK) {
            if (bucket.getItemDamage() == 1 || bucket.getItemDamage() == 5) {
                if (!player.canPlayerEdit(X, Y, Z, mop.sideHit, bucket))
                    return bucket;

                FillBucketEvent event = new FillBucketEvent(player, bucket, world, mop);
                if (event.isCanceled())
                    return bucket;

                Block fluid = world.getBlock(X, Y, Z);
                //Pickup Salt Water
                if (isSaltWater(fluid) && bucket.getItemDamage() == 1) {
                    if (!player.capabilities.isCreativeMode)
                        world.setBlockToAir(X, Y, Z);
                    return new ItemStack(BCTFCItems.Buckets, 1, 2);
                }
                //Pickup Fresh Water
                else if (isFreshWater(fluid) && bucket.getItemDamage() == 1) {
                    if (!player.capabilities.isCreativeMode)
                        world.setBlockToAir(X, Y, Z);
                    return new ItemStack(BCTFCItems.Buckets, 1, 3);
                }
                //Pickup Hot Water
                else if (isHotWater(fluid) && bucket.getItemDamage() == 1) {
                    ItemStack hotBucket = new ItemStack(BCTFCItems.Buckets, 1, 4);
                    NBTTagCompound nbttc = new NBTTagCompound();
                    nbttc.setFloat("temperature", 480);
                    hotBucket.setTagCompound(nbttc);
                    if (!player.capabilities.isCreativeMode)
                        world.setBlockToAir(X, Y, Z);
                    return hotBucket;
                }
                //Pickup Oil
                else if (fluid == BuildCraftEnergy.blockOil && bucket.getItemDamage() == 5) {
                    if (!player.capabilities.isCreativeMode)
                        world.setBlockToAir(X, Y, Z);
                    return new ItemStack(BCTFCItems.Buckets, 1, 6);
                }
                //Pickup Fuel
                else if (fluid == BuildCraftEnergy.blockFuel && bucket.getItemDamage() == 5) {
                    if (!player.capabilities.isCreativeMode)
                        world.setBlockToAir(X, Y, Z);
                    return new ItemStack(BCTFCItems.Buckets, 1, 7);
                }
            }

            if (bucket.getItemDamage() == 2 || bucket.getItemDamage() == 3 || bucket.getItemDamage() == 4) {
                if (mop.sideHit == 0) {
                    --Y;
                } else if (mop.sideHit == 1) {
                    ++Y;
                } else if (mop.sideHit == 2) {
                    --Z;
                } else if (mop.sideHit == 3) {
                    ++Z;
                } else if (mop.sideHit == 4) {
                    --X;
                } else if (mop.sideHit == 5) {
                    ++X;
                }

                if (!player.canPlayerEdit(X, Y, Z, mop.sideHit, bucket))
                    return bucket;

                if (world.isAirBlock(X, Y, Z) || !world.getBlock(X, Y, Z).getMaterial().isSolid()) {
                    if (world.provider.isHellWorld && bucket.getItemDamage() == 2) {
                        world.playSoundEffect(X + 0.5D, Y + 0.5D, Z + 0.5D, "random.fizz", 0.5F,
                                2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F);
                        for (int i = 0; i < 8; ++i)
                            world.spawnParticle("largesmoke", X + Math.random(), Y + Math.random(),
                                    Z + Math.random(), 0.0D, 0.0D, 0.0D);
                    }
                    //Put Salt Water
                    else if (bucket.getItemDamage() == 2) {
                        world.setBlock(X, Y, Z, TFCBlocks.saltWaterStationary);
                        if (player.capabilities.isCreativeMode)
                            return bucket;
                        return new ItemStack(BCTFCItems.Buckets, 1, 1);
                    }
                    //Put Fresh Water
                    else if (bucket.getItemDamage() == 3) {
                        world.setBlock(X, Y, Z, TFCBlocks.freshWaterStationary);
                        if (player.capabilities.isCreativeMode)
                            return bucket;
                        return new ItemStack(BCTFCItems.Buckets, 1, 1);
                    }
                    //Put Hot Water
                    else if (bucket.getItemDamage() == 4) {
                        world.setBlock(X, Y, Z, TFCBlocks.hotWaterStationary);
                        if (player.capabilities.isCreativeMode)
                            return bucket;
                        return new ItemStack(BCTFCItems.Buckets, 1, 1);
                    }
                    //Put Oil
                    else if (bucket.getItemDamage() == 6) {
                        world.setBlock(X, Y, Z, BuildCraftEnergy.blockOil);
                        if (player.capabilities.isCreativeMode)
                            return bucket;
                        return new ItemStack(BCTFCItems.Buckets, 1, 5);
                    }
                }
            }
        }
    }
    return bucket;
}

From source file:net.jamcraft.chowtime.core.items.CTItemBucket.java

License:Open Source License

/**
 * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
 *//*w w  w  .  j ava 2s.co m*/
public ItemStack onItemRightClick(ItemStack stack, World par2World, EntityPlayer par3EntityPlayer) {
    boolean flag = liquid == Blocks.air;
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World,
            par3EntityPlayer, flag);

    if (movingobjectposition == null) {
        return stack;
    } else {
        FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, stack, par2World, movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return stack;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (par3EntityPlayer.capabilities.isCreativeMode) {
                return stack;
            }

            if (--stack.stackSize <= 0) {
                return event.result;
            }

            if (!par3EntityPlayer.inventory.addItemStackToInventory(event.result)) {
                par3EntityPlayer.dropPlayerItemWithRandomChoice(event.result, false);
            }

            return stack;
        }
        if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            int i = movingobjectposition.blockX;
            int j = movingobjectposition.blockY;
            int k = movingobjectposition.blockZ;

            if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) {
                return stack;
            }

            if (flag) {
                if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, stack)) {
                    return stack;
                }

                par2World.setBlockToAir(i, j, k);
                return this.placeBucketInInv(stack, par3EntityPlayer, bucket);
            } else {
                if (liquid == Blocks.air) {
                    return new ItemStack(Items.bucket);
                }

                if (movingobjectposition.sideHit == 0) {
                    --j;
                }

                if (movingobjectposition.sideHit == 1) {
                    ++j;
                }

                if (movingobjectposition.sideHit == 2) {
                    --k;
                }

                if (movingobjectposition.sideHit == 3) {
                    ++k;
                }

                if (movingobjectposition.sideHit == 4) {
                    --i;
                }

                if (movingobjectposition.sideHit == 5) {
                    ++i;
                }

                if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, stack)) {
                    return stack;
                }

                try {
                    if (this.tryPlaceContainedLiquid(par2World, i, j, k, stack)
                            && !par3EntityPlayer.capabilities.isCreativeMode) {
                        return new ItemStack(Items.bucket);
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

        return stack;
    }
}

From source file:superhemi.SMOA.item.ItemOsmiumBucket.java

License:LGPL

/**
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
*///from w  ww . j a  v a  2  s . co m
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    float f = 1.0F;
    double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f;
    double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f
            + 1.62D - (double) par3EntityPlayer.yOffset;
    double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f;
    boolean flag = this.isFull == 0;
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World,
            par3EntityPlayer, flag);

    if (movingobjectposition == null) {
        return par1ItemStack;
    } else {
        FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World,
                movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return par1ItemStack;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (par3EntityPlayer.capabilities.isCreativeMode) {
                return par1ItemStack;
            }

            if (--par1ItemStack.stackSize <= 0) {
                return event.result;
            }

            if (!par3EntityPlayer.inventory.addItemStackToInventory(event.result)) {
                par3EntityPlayer.dropPlayerItem(event.result);
            }

            return par1ItemStack;
        }

        if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {
            int i = movingobjectposition.blockX;
            int j = movingobjectposition.blockY;
            int k = movingobjectposition.blockZ;

            if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) {
                return par1ItemStack;
            }

            if (this.isFull == 0) {
                if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) {
                    return par1ItemStack;
                }

                if (par2World.getBlockMaterial(i, j, k) == Material.water
                        && par2World.getBlockMetadata(i, j, k) == 0) {
                    par2World.setBlockToAir(i, j, k);

                    if (par3EntityPlayer.capabilities.isCreativeMode) {
                        return par1ItemStack;
                    }

                    if (--par1ItemStack.stackSize <= 0) {
                        return new ItemStack(Item.bucketWater);
                    }

                    if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketWater))) {
                        par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketWater.itemID, 1, 0));
                    }

                    return par1ItemStack;
                }

                if (par2World.getBlockMaterial(i, j, k) == Material.lava
                        && par2World.getBlockMetadata(i, j, k) == 0) {
                    par2World.setBlockToAir(i, j, k);

                    if (par3EntityPlayer.capabilities.isCreativeMode) {
                        return par1ItemStack;
                    }

                    if (--par1ItemStack.stackSize <= 0) {
                        return new ItemStack(Item.bucketLava);
                    }

                    if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketLava))) {
                        par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketLava.itemID, 1, 0));
                    }

                    return par1ItemStack;
                }
            } else {
                if (this.isFull < 0) {
                    return new ItemStack(Item.bucketEmpty);
                }

                if (movingobjectposition.sideHit == 0) {
                    --j;
                }

                if (movingobjectposition.sideHit == 1) {
                    ++j;
                }

                if (movingobjectposition.sideHit == 2) {
                    --k;
                }

                if (movingobjectposition.sideHit == 3) {
                    ++k;
                }

                if (movingobjectposition.sideHit == 4) {
                    --i;
                }

                if (movingobjectposition.sideHit == 5) {
                    ++i;
                }

                if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) {
                    return par1ItemStack;
                }

                if (this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k)
                        && !par3EntityPlayer.capabilities.isCreativeMode) {
                    return new ItemStack(Item.bucketEmpty);
                }
            }
        } else if (this.isFull == 0 && movingobjectposition.entityHit instanceof EntityCow) {
            return new ItemStack(Item.bucketMilk);
        }

        return par1ItemStack;
    }
}

From source file:tv.savageboy74.savagetech.client.items.ItemDiamondBucket.java

License:Open Source License

public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
    boolean flag = this.isFull == Blocks.air;
    MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, flag);

    if (movingobjectposition == null) {
        return itemStack;
    } else {//from w  ww . j ava 2s  .  com
        FillBucketEvent event = new FillBucketEvent(player, itemStack, world, movingobjectposition);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return itemStack;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (player.capabilities.isCreativeMode) {
                return itemStack;
            }

            if (--itemStack.stackSize <= 0) {
                return event.result;
            }

            if (!player.inventory.addItemStackToInventory(event.result)) {
                player.dropPlayerItemWithRandomChoice(event.result, false);
            }

            return itemStack;
        }
        if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            int i = movingobjectposition.getBlockPos().getX();
            int j = movingobjectposition.getBlockPos().getY();
            int k = movingobjectposition.getBlockPos().getZ();
            BlockPos position = new BlockPos(i, j, k);

            if (!world.isBlockModifiable(player, position)) {
                return itemStack;
            }

            if (flag) {
                if (!player.canPlayerEdit(position, movingobjectposition.sideHit, itemStack)) {
                    return itemStack;
                }

                Material material = world.getBlockState(position).getBlock().getMaterial();
                IBlockState iblockstate = world.getBlockState(position);
                int l = world.getBlockState(position).getBlock().getMetaFromState(iblockstate);

                if (material == Material.water && l == 0) {
                    world.setBlockToAir(position);
                    return this.fillBucket(itemStack, player, STItems.diamondWaterBucket);
                }

                else if (material == Material.lava && l == 0) {
                    world.setBlockToAir(position);
                    return this.fillBucket(itemStack, player, STItems.diamondLavaBucket);
                }
            }
        }

        return itemStack;
    }
}

From source file:tv.savageboy74.savagetech.client.items.ItemDiamondDeletionBucket.java

License:Open Source License

@Override
public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn) {
    boolean flag = isFull == Blocks.air;
    MovingObjectPosition mop = getMovingObjectPositionFromPlayer(worldIn, playerIn, flag);

    if (mop == null) {
        return itemStackIn;
    }/*from w  w  w  .j  av a  2  s.  c o  m*/

    else {
        FillBucketEvent event = new FillBucketEvent(playerIn, itemStackIn, worldIn, mop);
        if (MinecraftForge.EVENT_BUS.post(event)) {
            return itemStackIn;
        }

        if (event.getResult() == Event.Result.ALLOW) {
            if (playerIn.capabilities.isCreativeMode) {
                return itemStackIn;
            }

            if (--itemStackIn.stackSize <= 0) {
                return event.result;
            }

            if (!playerIn.inventory.addItemStackToInventory(event.result)) {
                playerIn.dropPlayerItemWithRandomChoice(event.result, false);
            }

            return itemStackIn;
        }

        if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
            int i = mop.getBlockPos().getX();
            int j = mop.getBlockPos().getY();
            int k = mop.getBlockPos().getZ();

            if (!worldIn.isBlockModifiable(playerIn, new BlockPos(i, j, k))) {
                return itemStackIn;
            }

            if (flag) {
                if (!playerIn.canPlayerEdit(new BlockPos(i, j, k), mop.sideHit, itemStackIn)) {
                    return itemStackIn;
                }

                BlockPos blockpos = mop.getBlockPos();
                IBlockState iblockstate = worldIn.getBlockState(blockpos);
                Material material = iblockstate.getBlock().getMaterial();
                int meta = worldIn.getBlockState(new BlockPos(i, j, k)).getBlock()
                        .getMetaFromState(iblockstate);

                if (material == Material.water && meta == 0) {
                    worldIn.setBlockToAir(new BlockPos(i, j, k));
                    itemStackIn.damageItem(1, playerIn);
                }

                else if (material == Material.lava && meta == 0) {
                    worldIn.setBlockToAir(new BlockPos(i, j, k));
                    itemStackIn.damageItem(1, playerIn);
                }
            }
        }

        return itemStackIn;
    }
}