【マイクラ】onInteract 関数で PlayerInteractEvent が3回呼ばれてしまう!という話

アイテムを持って右クリックした時、

onInteract の関数が、3回呼ばれることがあった。

@EventHandler
public void onInteract(PlayerInteractEvent e) {

その時のログがこちら。

System.out.println(e.getAction());
System.out.println(e.getHand());
System.out.println(e.getPlayer());
System.out.println(e.getBlockFace());
System.out.println(e.getClickedBlock());
System.out.println(e.getHandlers());
System.out.println(e.getItem());
System.out.println(e.getMaterial());
System.out.println(e.hasBlock());
System.out.println(e.hasItem());
System.out.println(e.isBlockInHand());
System.out.println(e.useInteractedBlock());
System.out.println(e.useItemInHand());


[13:46:41 INFO]: RIGHT_CLICK_BLOCK
[13:46:41 INFO]: HAND
[13:46:41 INFO]: CraftPlayer{name=**********}
[13:46:41 INFO]: UP
[13:46:41 INFO]: CraftBlock{pos=BlockPosition{x=-229, y=79, z=1050},type=GRASS_BLOCK,data=Block{minecraft:grass_block}[snowy=false],[email protected]}
[13:46:41 INFO]: [email protected]
[13:46:41 INFO]: ItemStack{GOLDEN_PICKAXE x 1}
[13:46:41 INFO]: GOLDEN_PICKAXE
[13:46:41 INFO]: true
[13:46:41 INFO]: true
[13:46:41 INFO]: false
[13:46:41 INFO]: ALLOW
[13:46:41 INFO]: DEFAULT

[13:46:41 INFO]: AirBlock!
[13:46:41 INFO]: cmd =fill -229 79 1050 -229 79 1050 air destroy

[13:46:41 INFO]: RIGHT_CLICK_BLOCK
[13:46:41 INFO]: HAND
[13:46:41 INFO]: CraftPlayer{name=**********}
[13:46:41 INFO]: NORTH
[13:46:41 INFO]: CraftBlock{pos=BlockPosition{x=-229, y=79, z=1051},type=GRASS_BLOCK,data=Block{minecraft:grass_block}[snowy=false],[email protected]}
[13:46:41 INFO]: [email protected]
[13:46:41 INFO]: ItemStack{GOLDEN_PICKAXE x 1}
[13:46:41 INFO]: GOLDEN_PICKAXE
[13:46:41 INFO]: true
[13:46:41 INFO]: true
[13:46:41 INFO]: false
[13:46:41 INFO]: DENY
[13:46:41 INFO]: DEFAULT

[13:46:41 INFO]: AirBlock!
[13:46:41 INFO]: cmd =fill -229 79 1051 -229 79 1051 air destroy

[13:46:41 INFO]: RIGHT_CLICK_BLOCK
[13:46:41 INFO]: OFF_HAND
[13:46:41 INFO]: CraftPlayer{name=**********}
[13:46:41 INFO]: UP
[13:46:41 INFO]: CraftBlock{pos=BlockPosition{x=-229, y=79, z=1050},type=AIR,data=Block{minecraft:air},[email protected]}
[13:46:41 INFO]: [email protected]
[13:46:41 INFO]: null
[13:46:41 INFO]: AIR
[13:46:41 INFO]: true
[13:46:41 INFO]: false
[13:46:41 INFO]: false
[13:46:41 INFO]: ALLOW
[13:46:41 INFO]: DEFAULT

[13:46:41 INFO]: AirBlock!
[13:46:41 INFO]: cmd =fill -228 79 1051 -228 79 1051 air destroy

OFF_HAND と HAND の違いがあったのは、わかった。

しかし、それでも HAND でイベントが2回呼ばれる。

違いといえば、「useInteractedBlock」の ALLOW と DENY くらい?