boolean ret = false; RightClickBlock e = new RightClickBlock(player, hand, pos, side, new Vec3d(hitX, hitY, hitZ)); if (MinecraftForge.EVENT_BUS.post(e) || e.getResult() == Result.DENY || e.getUseBlock() == Result.DENY || e.getUseItem() == Result.DENY) { return EnumActionResult.PASS;
if ((result != EnumActionResult.SUCCESS && event.getUseItem() != Event.Result.DENY) || (result == EnumActionResult.SUCCESS && event.getUseItem() == Event.Result.ALLOW)) { try { return itemStack.onItemUse(this, world, pos, hand, facing, hitX, hitY, hitZ);
if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Result.DENY || event.getUseItem() == Result.DENY || event.getUseBlock() == Result.DENY) { return EnumActionResult.PASS;
if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Result.DENY || event.getUseBlock() == Result.DENY || event.getUseItem() == Result.DENY) { return EnumActionResult.PASS;
/** * Make a complete copy of the argument. * @param event to copy over * @return the copy */ private static PlayerInteractEvent copy(PlayerInteractEvent event){ PlayerInteractEvent copy = null; if(event instanceof PlayerInteractEvent.RightClickEmpty) copy = new PlayerInteractEvent.RightClickEmpty(event.getEntityPlayer(), event.getHand()); else if(event instanceof PlayerInteractEvent.LeftClickBlock) { copy = new PlayerInteractEvent.LeftClickBlock(event.getEntityPlayer(), event.getPos(), event.getFace(), ((PlayerInteractEvent.LeftClickBlock) event).getHitVec()); ((PlayerInteractEvent.LeftClickBlock)copy).setUseItem(((PlayerInteractEvent.LeftClickBlock) event).getUseItem()); ((PlayerInteractEvent.LeftClickBlock)copy).setUseBlock(((PlayerInteractEvent.LeftClickBlock) event).getUseBlock()); } else if(event instanceof PlayerInteractEvent.EntityInteractSpecific) copy = new PlayerInteractEvent.EntityInteractSpecific(event.getEntityPlayer(), event.getHand(), ((PlayerInteractEvent.EntityInteractSpecific) event).getTarget(), ((PlayerInteractEvent.EntityInteractSpecific) event).getLocalPos()); else if(event instanceof PlayerInteractEvent.EntityInteract) copy = new PlayerInteractEvent.EntityInteract(event.getEntityPlayer(), event.getHand(), ((PlayerInteractEvent.EntityInteract) event).getTarget()); else if(event instanceof PlayerInteractEvent.RightClickBlock) { copy = new PlayerInteractEvent.RightClickBlock(event.getEntityPlayer(), event.getHand(), event.getPos(), event.getFace(), ((PlayerInteractEvent.RightClickBlock) event).getHitVec()); ((PlayerInteractEvent.RightClickBlock)copy).setUseItem(((PlayerInteractEvent.RightClickBlock) event).getUseItem()); ((PlayerInteractEvent.RightClickBlock)copy).setUseBlock(((PlayerInteractEvent.RightClickBlock) event).getUseBlock()); } else if(event instanceof PlayerInteractEvent.RightClickItem) copy = new PlayerInteractEvent.RightClickItem(event.getEntityPlayer(),event.getHand()); if(event.isCanceled()){ copy.setCanceled(true); } return copy; }
@Override public EnumActionResult onItemUseFirst(EntityPlayer player, World world, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ, EnumHand hand) { IBlockState state = world.getBlockState(pos); Block block = state.getBlock(); if (world.isAirBlock(pos)) { return EnumActionResult.PASS; } PlayerInteractEvent.RightClickBlock event = new PlayerInteractEvent.RightClickBlock(player, hand, pos, side, new Vec3d(hitX, hitY, hitZ)); if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Result.DENY || event.getUseBlock() == Result.DENY || event.getUseItem() == Result.DENY) { return EnumActionResult.PASS; } if (ServerHelper.isServerWorld(world) && player.isSneaking() && block instanceof IDismantleable && ((IDismantleable) block).canDismantle(world, pos, state, player)) { ((IDismantleable) block).dismantleBlock(world, pos, state, player, false); return EnumActionResult.SUCCESS; } if (BlockHelper.canRotate(block)) { world.setBlockState(pos, BlockHelper.rotateVanillaBlock(world, state, pos), 3); player.swingArm(hand); return ServerHelper.isServerWorld(world) ? EnumActionResult.SUCCESS : EnumActionResult.PASS; } else if (!player.isSneaking() && block.rotateBlock(world, pos, side)) { player.swingArm(hand); return ServerHelper.isServerWorld(world) ? EnumActionResult.SUCCESS : EnumActionResult.PASS; } return EnumActionResult.PASS; }
@SubscribeEvent public void interaction( final RightClickBlock event ) { testInteractionSupression( event, event.getUseItem() ); }
event instanceof PlayerInteractEvent.RightClickBlock && ((PlayerInteractEvent.RightClickBlock) event) .getUseItem() == Result.DENY; if (isLeftDeny || isRightDeny || event.getEntity().world.isRemote) { return;