--- ../src_base/common/net/minecraft/src/ItemBucket.java
+++ ../src_work/common/net/minecraft/src/ItemBucket.java
@@ -1,4 +1,7 @@
 package net.minecraft.src;
+
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.player.FillBucketEvent;
 
 public class ItemBucket extends Item
 {
@@ -31,6 +34,17 @@
         }
         else
         {
+            FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World, var12);
+            if (MinecraftForge.EVENT_BUS.post(event))
+            {
+                return par1ItemStack;
+            }
+
+            if (event.isHandeled())
+            {
+                return event.result;
+            }
+
             if (var12.typeOfHit == EnumMovingObjectType.TILE)
             {
                 int var13 = var12.blockX;

--- ../src_base/common/net/minecraft/src/ItemBucket.java
+++ ../src_work/common/net/minecraft/src/ItemBucket.java
@@ -1,4 +1,7 @@
 package net.minecraft.src;
+
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.player.FillBucketEvent;
 
 public class ItemBucket extends Item
 {
@@ -31,6 +34,32 @@
         }
         else
         {
+            FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World, var12);
+            if (MinecraftForge.EVENT_BUS.post(event))
+            {
+                return par1ItemStack;
+            }
+
+            if (event.isHandeled())
+            {
+                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 (var12.typeOfHit == EnumMovingObjectType.TILE)
             {
                 int var13 = var12.blockX;

Fix FillBucketEvent to work with stacked buckets. New change in 1.3
Fix FillBucketEvent to work with stacked buckets. New change in 1.3
