001 package net.minecraftforge.event.entity.player; 002 003 import net.minecraft.entity.player.EntityPlayer; 004 import net.minecraft.world.World; 005 import net.minecraftforge.event.Cancelable; 006 import net.minecraftforge.event.Event; 007 import static net.minecraftforge.event.Event.Result; 008 import static net.minecraftforge.event.Event.Result.*; 009 010 @Cancelable 011 public class PlayerInteractEvent extends PlayerEvent 012 { 013 public static enum Action 014 { 015 RIGHT_CLICK_AIR, 016 RIGHT_CLICK_BLOCK, 017 LEFT_CLICK_BLOCK 018 } 019 020 public final Action action; 021 public final int x; 022 public final int y; 023 public final int z; 024 public final int face; 025 026 public Result useBlock = DEFAULT; 027 public Result useItem = DEFAULT; 028 029 public PlayerInteractEvent(EntityPlayer player, Action action, int x, int y, int z, int face) 030 { 031 super(player); 032 this.action = action; 033 this.x = x; 034 this.y = y; 035 this.z = z; 036 this.face = face; 037 if (face == -1) useBlock = DENY; 038 } 039 040 @Override 041 public void setCanceled(boolean cancel) 042 { 043 super.setCanceled(cancel); 044 useBlock = (cancel ? DENY : useBlock == DENY ? DEFAULT : useBlock); 045 useItem = (cancel ? DENY : useItem == DENY ? DEFAULT : useItem); 046 } 047 }