We should be able to change the item that gets picked up in PlayerPickupArrowEvent like so:
@EventHandler public void onPlayerPickupArrow(PlayerPickupArrowEvent event) { Item item = event.getItem(); item.setItemStack(new ItemStack(Material.STICK, 1)); }
This code has no effect on the item that gets picked up.