001    package org.bukkit.entity;
002    
003    /**
004     * Represents an arrow.
005     */
006    public interface Arrow extends Projectile {
007    
008        /**
009         * Gets the knockback strength for an arrow, which is the
010         * {@link org.bukkit.enchantments.Enchantment#KNOCKBACK KnockBack} level
011         * of the bow that shot it.
012         *
013         * @return the knockback strength value
014         */
015        public int getKnockbackStrength();
016    
017        /**
018         * Sets the knockback strength for an arrow.
019         *
020         * @param knockbackStrength the knockback strength value
021         */
022        public void setKnockbackStrength(int knockbackStrength);
023    
024        /**
025         * Gets whether this arrow is critical.
026         * <p>
027         * Critical arrows have increased damage and cause particle effects.
028         * <p>
029         * Critical arrows generally occur when a player fully draws a bow before
030         * firing.
031         *
032         * @return true if it is critical
033         */
034        public boolean isCritical();
035    
036        /**
037         * Sets whether or not this arrow should be critical.
038         *
039         * @param critical whether or not it should be critical
040         */
041        public void setCritical(boolean critical);
042    }