Package org.bukkit.event.player
Class PlayerInteractEvent
java.lang.Object
org.bukkit.event.Event
org.bukkit.event.player.PlayerEvent
org.bukkit.event.player.PlayerInteractEvent
- All Implemented Interfaces:
Cancellable
public class PlayerInteractEvent extends PlayerEvent implements Cancellable
Represents an event that is called when a player interacts with an object or
air, potentially fired once for each hand. The hand can be determined using
getHand()
.
This event will fire as cancelled if the vanilla behavior is to do nothing
(e.g interacting with air). For the purpose of avoiding doubt, this means
that the event will only be in the cancelled state if it is fired as a result
of some prediction made by the server where no subsequent code will run,
rather than when the subsequent interaction activity (e.g. placing a block in
an illegal position (BlockCanBuildEvent
) will fail.
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
Constructors Constructor Description PlayerInteractEvent(Player who, Action action, ItemStack item, Block clickedBlock, BlockFace clickedFace)
PlayerInteractEvent(Player who, Action action, ItemStack item, Block clickedBlock, BlockFace clickedFace, EquipmentSlot hand)
-
Method Summary
Modifier and Type Method Description Action
getAction()
Returns the action typeBlockFace
getBlockFace()
Returns the face of the block that was clickedBlock
getClickedBlock()
Returns the clicked blockEquipmentSlot
getHand()
The hand used to perform this interaction.static HandlerList
getHandlerList()
HandlerList
getHandlers()
ItemStack
getItem()
Returns the item in hand represented by this eventMaterial
getMaterial()
Convenience method.boolean
hasBlock()
Check if this event involved a blockboolean
hasItem()
Check if this event involved an itemboolean
isBlockInHand()
Convenience method to inform the user whether this was a block placement event.boolean
isCancelled()
Deprecated.This event has two possible cancellation states, one foruseInteractedBlock()
and one foruseItemInHand()
.void
setCancelled(boolean cancel)
Sets the cancellation state of this event.void
setUseInteractedBlock(Event.Result useInteractedBlock)
void
setUseItemInHand(Event.Result useItemInHand)
Event.Result
useInteractedBlock()
This controls the action to take with the block (if any) that was clicked on.Event.Result
useItemInHand()
This controls the action to take with the item the player is holding.
-
Field Details
-
Constructor Details
-
Method Details
-
getAction
Returns the action type- Returns:
- Action returns the type of interaction
-
isCancelled
Deprecated.This event has two possible cancellation states, one foruseInteractedBlock()
and one foruseItemInHand()
. It is possible a call might have the former false, but the latter true, eg in the case of using a firework whilst gliding. Callers should check the relevant methods individually.Gets the cancellation state of this event. Set to true if you want to prevent buckets from placing water and so forth- Specified by:
isCancelled
in interfaceCancellable
- Returns:
- boolean cancellation state
-
setCancelled
public void setCancelled(boolean cancel)Sets the cancellation state of this event. A canceled event will not be executed in the server, but will still pass to other pluginsCanceling this event will prevent use of food (player won't lose the food item), prevent bows/snowballs/eggs from firing, etc. (player won't lose the ammo)
- Specified by:
setCancelled
in interfaceCancellable
- Parameters:
cancel
- true if you wish to cancel this event
-
getItem
Returns the item in hand represented by this event- Returns:
- ItemStack the item used
-
getMaterial
Convenience method. Returns the material of the item represented by this event- Returns:
- Material the material of the item used
-
hasBlock
public boolean hasBlock()Check if this event involved a block- Returns:
- boolean true if it did
-
hasItem
public boolean hasItem()Check if this event involved an item- Returns:
- boolean true if it did
-
isBlockInHand
public boolean isBlockInHand()Convenience method to inform the user whether this was a block placement event.- Returns:
- boolean true if the item in hand was a block
-
getClickedBlock
Returns the clicked block- Returns:
- Block returns the block clicked with this item.
-
getBlockFace
Returns the face of the block that was clicked- Returns:
- BlockFace returns the face of the block that was clicked
-
useInteractedBlock
This controls the action to take with the block (if any) that was clicked on. This event gets processed for all blocks, but most don't have a default action- Returns:
- the action to take with the interacted block
-
setUseInteractedBlock
- Parameters:
useInteractedBlock
- the action to take with the interacted block
-
useItemInHand
This controls the action to take with the item the player is holding. This includes both blocks and items (such as flint and steel or records). When this is set to default, it will be allowed if no action is taken on the interacted block.- Returns:
- the action to take with the item in hand
-
setUseItemInHand
- Parameters:
useItemInHand
- the action to take with the item in hand
-
getHand
The hand used to perform this interaction. May be null in the case ofAction.PHYSICAL
.- Returns:
- the hand used to interact. May be null.
-
getHandlers
- Specified by:
getHandlers
in classEvent
-
getHandlerList
-