Paper
Paper copied to clipboard
PlayerInteractEvent calls LEFT_CLICK_AIR after RIGHT_CLICK_BLOCK in Adventure game mode.
Expected behavior
Only one event call for the PlayerInteractEvent when a player in Adventure interacts with an item that is in their hand on a block. For example: trying to spawn a Pig from a PIG_SPAWN_EGG item.
Observed/Actual behavior
The PlayerInteractEvent was triggered twice claiming a LEFT_CLICK_AIR action after a RIGHT_CLICK_BLOCK.
[11:02:38 INFO]: [paper-test] PlayerInteractEvent: LoonyRules - HAND - RIGHT_CLICK_BLOCK - ALLOW - DEFAULT
[11:02:38 INFO]: [paper-test] PlayerInteractEvent: LoonyRules - HAND - LEFT_CLICK_AIR - DENY - DEFAULT
Steps/models to reproduce
- Download latest Paper 1.16.5.
- Create a plugin with code in that debugs the PlayerInteractEvent. In our example we printed into console every time the event got triggered and subtracted the quantity of the item used in the interaction. This is our own code on the whole server to show the bug.
@EventHandler
public void onPlayerInteractEvent(@NotNull final PlayerInteractEvent event) {
this.getLogger().info(
String.format(
"PlayerInteractEvent: %s - %s - %s - %s - %s",
event.getPlayer().getName(), event.getHand(), event.getAction(), event.useInteractedBlock(),
event.useItemInHand()
)
);
// Visually show the bug by decreasing itemstack amount every interact.
final ItemStack itemStack = event.getItem();
if (itemStack != null) {
itemStack.subtract();
}
}
- Upload the plugin to the server's plugins folder and start the server.
- Join the server and set your gamemode to Adventure.
- Give yourself an item that adventure mode users can interact with. A good example here is a PIG_SPAWN_EGG. Make sure you have 2 of these at least.
- Right-click a block to spawn the Pig. Ensure you click once.
- You should no longer have the item even though you spawned 1 pig. Look at the debug in console, you should see what was outlined in the "Observed/Actual behavior" section.
Plugin list
Custom plugin that only has the PlayerInteractEvent code shared in reproduction steps.
Paper version
Checking version, please wait... This server is running Paper version git-Paper-783 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT) You are running the latest version
Agreements
- [x] I am running the latest version of Paper available from https://papermc.io/downloads.
- [X] I have searched for and ensured there isn't already an open issue regarding this.
- [X] My version of Minecraft is supported by Paper.
Other
No response