--- ../src-base/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java
+++ ../src-work/minecraft/net/minecraft/world/gen/structure/StructureStrongholdPieces.java
@@ -17,6 +17,8 @@
 import net.minecraft.util.EnumFacing;
 import net.minecraft.util.WeightedRandomChestContent;
 import net.minecraft.world.World;
+import net.minecraftforge.common.ChestGenHooks;
+import static net.minecraftforge.common.ChestGenHooks.*;
 
 public class StructureStrongholdPieces
 {
@@ -248,6 +250,12 @@
 
             public ChestCorridor() {}
 
+            static
+            {
+                ChestGenHooks.init(STRONGHOLD_CORRIDOR, field_75003_a, 2, 4);
+                ChestGenHooks.addItem(STRONGHOLD_CORRIDOR, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.field_151134_bR, 1, 0), 1, 1, 1));
+            }
+
             public ChestCorridor(int p_i45582_1_, Random p_i45582_2_, StructureBoundingBox p_i45582_3_, EnumFacing p_i45582_4_)
             {
                 super(p_i45582_1_);
@@ -304,7 +312,7 @@
                     if (!this.field_75002_c && p_74875_3_.func_175898_b(new BlockPos(this.func_74865_a(3, 3), this.func_74862_a(2), this.func_74873_b(3, 3))))
                     {
                         this.field_75002_c = true;
-                        this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 3, 2, 3, WeightedRandomChestContent.func_177629_a(field_75003_a, new WeightedRandomChestContent[] {Items.field_151134_bR.func_92114_b(p_74875_2_)}), 2 + p_74875_2_.nextInt(2));
+                        this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 3, 2, 3, ChestGenHooks.getItems(STRONGHOLD_CORRIDOR, p_74875_2_), ChestGenHooks.getCount(STRONGHOLD_CORRIDOR, p_74875_2_));
                     }
 
                     return true;
@@ -599,6 +607,12 @@
             private boolean field_75008_c;
             private static final String __OBFID = "CL_00000491";
 
+            static
+            {
+                ChestGenHooks.init(STRONGHOLD_CORRIDOR, field_75007_b, 1, 5);
+                ChestGenHooks.addItem(STRONGHOLD_CORRIDOR, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.field_151134_bR, 1, 0), 1, 5, 2));
+            }
+
             public Library() {}
 
             public Library(int p_i45578_1_, Random p_i45578_2_, StructureBoundingBox p_i45578_3_, EnumFacing p_i45578_4_)
@@ -742,12 +756,13 @@
                         this.func_175811_a(p_74875_1_, Blocks.field_150478_aa.func_176223_P(), b1, 8, b2 + 1, p_74875_3_);
                     }
 
-                    this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 3, 3, 5, WeightedRandomChestContent.func_177629_a(field_75007_b, new WeightedRandomChestContent[] {Items.field_151134_bR.func_92112_a(p_74875_2_, 1, 5, 2)}), 1 + p_74875_2_.nextInt(4));
+                    ChestGenHooks info = ChestGenHooks.getInfo(STRONGHOLD_LIBRARY);
+                    this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 3, 3, 5, info.getItems(p_74875_2_), info.getCount(p_74875_2_));
 
                     if (this.field_75008_c)
                     {
                         this.func_175811_a(p_74875_1_, Blocks.field_150350_a.func_176223_P(), 12, 9, 1, p_74875_3_);
-                        this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 12, 8, 1, WeightedRandomChestContent.func_177629_a(field_75007_b, new WeightedRandomChestContent[] {Items.field_151134_bR.func_92112_a(p_74875_2_, 1, 5, 2)}), 1 + p_74875_2_.nextInt(4));
+                        this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 12, 8, 1, info.getItems(p_74875_2_), info.getCount(p_74875_2_));
                     }
 
                     return true;
@@ -1024,6 +1039,12 @@
             protected int field_75013_b;
             private static final String __OBFID = "CL_00000496";
 
+            static
+            {
+                ChestGenHooks.init(STRONGHOLD_CROSSING, field_75014_c, 1, 5);
+                ChestGenHooks.addItem(STRONGHOLD_CROSSING, new WeightedRandomChestContent(new net.minecraft.item.ItemStack(Items.field_151134_bR, 1, 0), 1, 1, 1));
+            }
+
             public RoomCrossing() {}
 
             public RoomCrossing(int p_i45575_1_, Random p_i45575_2_, StructureBoundingBox p_i45575_3_, EnumFacing p_i45575_4_)
@@ -1159,7 +1180,7 @@
                             this.func_175811_a(p_74875_1_, Blocks.field_150468_ap.func_176203_a(this.func_151555_a(Blocks.field_150468_ap, EnumFacing.WEST.func_176745_a())), 9, 1, 3, p_74875_3_);
                             this.func_175811_a(p_74875_1_, Blocks.field_150468_ap.func_176203_a(this.func_151555_a(Blocks.field_150468_ap, EnumFacing.WEST.func_176745_a())), 9, 2, 3, p_74875_3_);
                             this.func_175811_a(p_74875_1_, Blocks.field_150468_ap.func_176203_a(this.func_151555_a(Blocks.field_150468_ap, EnumFacing.WEST.func_176745_a())), 9, 3, 3, p_74875_3_);
-                            this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 3, 4, 8, WeightedRandomChestContent.func_177629_a(field_75014_c, new WeightedRandomChestContent[] {Items.field_151134_bR.func_92114_b(p_74875_2_)}), 1 + p_74875_2_.nextInt(4));
+                            this.func_180778_a(p_74875_1_, p_74875_3_, p_74875_2_, 3, 4, 8, ChestGenHooks.getItems(STRONGHOLD_CROSSING, p_74875_2_), ChestGenHooks.getCount(STRONGHOLD_CROSSING, p_74875_2_));
                     }
 
                     return true;
