Example usage for net.minecraftforge.event.entity.player PlayerInteractEvent.RightClickItem getWorld

List of usage examples for net.minecraftforge.event.entity.player PlayerInteractEvent.RightClickItem getWorld

Introduction

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

Prototype

public World getWorld() 

Source Link

Usage

From source file:de.ellpeck.actuallyadditions.mod.items.ItemWaterBowl.java

@SubscribeEvent
public void onPlayerInteractEvent(PlayerInteractEvent.RightClickItem event) {
    if (event.getWorld() != null) {
        if (ConfigBoolValues.WATER_BOWL.isEnabled()) {
            if (StackUtil.isValid(event.getItemStack()) && event.getItemStack().getItem() == Items.BOWL) {
                RayTraceResult trace = WorldUtil.getNearestBlockWithDefaultReachDistance(event.getWorld(),
                        event.getEntityPlayer(), true, false, false);
                ActionResult<ItemStack> result = ForgeEventFactory.onBucketUse(event.getEntityPlayer(),
                        event.getWorld(), event.getItemStack(), trace);
                if (result == null && trace != null && trace.getBlockPos() != null) {
                    if (event.getEntityPlayer().canPlayerEdit(trace.getBlockPos().offset(trace.sideHit),
                            trace.sideHit, event.getItemStack())) {
                        IBlockState state = event.getWorld().getBlockState(trace.getBlockPos());
                        Material material = state.getMaterial();

                        if (material == Material.WATER && state.getValue(BlockLiquid.LEVEL) == 0) {
                            event.getEntityPlayer().playSound(SoundEvents.ITEM_BUCKET_FILL, 1.0F, 1.0F);

                            if (!event.getWorld().isRemote) {
                                event.getWorld().setBlockState(trace.getBlockPos(),
                                        Blocks.AIR.getDefaultState(), 11);
                                ItemStack reduced = StackUtil.addStackSize(event.getItemStack(), -1);

                                ItemStack bowl = new ItemStack(InitItems.itemWaterBowl);
                                if (!StackUtil.isValid(reduced)) {
                                    event.getEntityPlayer().setHeldItem(event.getHand(), bowl);
                                } else if (!event.getEntityPlayer().inventory
                                        .addItemStackToInventory(bowl.copy())) {
                                    EntityItem entityItem = new EntityItem(event.getWorld(),
                                            event.getEntityPlayer().posX, event.getEntityPlayer().posY,
                                            event.getEntityPlayer().posZ, bowl.copy());
                                    entityItem.setPickupDelay(0);
                                    event.getWorld().spawnEntity(entityItem);
                                }// w w w .j av a  2s  . c om
                            }
                        }
                    }
                }
            }
        }
    }
}

From source file:robmart.rpgmode.common.handlers.EventHandler.java

License:Open Source License

@SubscribeEvent
public static void onPlayerRightClickBlock(final PlayerInteractEvent.RightClickItem event) {
    RayTraceResult look = PlayerHelper.rayTrace(event.getWorld(), event.getEntityPlayer(), true);
    if (look == null)
        return;//from  ww w.ja v  a  2 s  .  com
    if (look.typeOfHit != RayTraceResult.Type.BLOCK)
        return;

    IBlockState state = event.getWorld().getBlockState(look.getBlockPos());

    if (event.getItemStack().getItem() instanceof ItemGlassBottle && state.getMaterial() == Material.LAVA) {
        event.getWorld().playSound(event.getEntityPlayer(), event.getEntityPlayer().posX,
                event.getEntityPlayer().posY, event.getEntityPlayer().posZ, SoundEvents.ITEM_BOTTLE_FILL,
                SoundCategory.NEUTRAL, 1.0F, 1.0F);
        ItemHelper.turnBottleIntoItem(event.getItemStack(), event.getEntityPlayer(),
                PotionHelper.getItemStackOfPotion(Items.POTIONITEM, RPGPotionTypes.LAVA));
    }
}