001    package net.minecraftforge.event;
002    import net.minecraft.src.*;
003    import net.minecraftforge.common.MinecraftForge;
004    import net.minecraftforge.event.entity.player.*;
005    import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
006    
007    public class ForgeEventFactory
008    {
009        public static boolean doPlayerHarvestCheck(EntityPlayer player, Block block, boolean success)
010        {
011            PlayerEvent.HarvestCheck event = new PlayerEvent.HarvestCheck(player, block, success);
012            MinecraftForge.EVENT_BUS.post(event);
013            return event.success;
014        }
015    
016        public static float getBreakSpeed(EntityPlayer player, Block block, int metadata, float original)
017        {
018            PlayerEvent.BreakSpeed event = new PlayerEvent.BreakSpeed(player, block, metadata, original);
019            return (MinecraftForge.EVENT_BUS.post(event) ? -1 : event.newSpeed);
020        }
021    
022        public static PlayerInteractEvent onPlayerInteract(EntityPlayer player, Action action, int x, int y, int z, int face)
023        {
024            PlayerInteractEvent event = new PlayerInteractEvent(player, action, x, y, z, face);
025            MinecraftForge.EVENT_BUS.post(event);
026            return event;
027        }
028    
029        public static void onPlayerDestroyItem(EntityPlayer player, ItemStack stack)
030        {
031            MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(player, stack));
032        }
033    }