насколько я знаю, анимация взмаха вызывается методом Item#swingItem()
,
если ты его хочешь отменять есть метод Item#onEntitySwing(EntityLivingBase, ItemStack)
и там ты уже можешь проверять
проверять можно флаг в NBT предмета и при ударе его сохранять до опр времени, и если время не прошло то в onEntitySwing
возвращать true, анимации тогда не будет, если возвращать false анимация будет.