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
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
Nested classes/interfaces inherited from class org.bukkit.event.Event
Event.Result
-
Field Summary
Modifier and TypeFieldDescriptionprotected Action
protected Block
protected BlockFace
protected ItemStack
Fields inherited from class org.bukkit.event.player.PlayerEvent
player
-
Constructor Summary
ConstructorDescriptionPlayerInteractEvent
(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 TypeMethodDescriptionReturns the action typeReturns the face of the block that was clickedReturns the clicked blockgetHand()
The hand used to perform this interaction.static HandlerList
getItem()
Returns the item in hand represented by this eventConvenience method.boolean
hasBlock()
Check if this event involved a blockboolean
hasItem()
Check if this event involved an itemboolean
Convenience method to inform the user whether this was a block placement event.boolean
Deprecated.void
setCancelled
(boolean cancel) Sets the cancellation state of this event.void
setUseInteractedBlock
(Event.Result useInteractedBlock) void
setUseItemInHand
(Event.Result useItemInHand) This controls the action to take with the block (if any) that was clicked on.This controls the action to take with the item the player is holding.Methods inherited from class org.bukkit.event.player.PlayerEvent
getPlayer
Methods inherited from class org.bukkit.event.Event
getEventName, isAsynchronous
-
Field Details
-
item
-
action
-
blockClicked
-
blockFace
-
-
Constructor Details
-
PlayerInteractEvent
-
PlayerInteractEvent
-
-
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
-
useInteractedBlock()
and one foruseItemInHand()
.