Interface Arrow

    • Method Detail

      • setBasePotionData

        void setBasePotionData​(@NotNull
                               PotionData data)
        Sets the underlying potion data
        Parameters:
        data - PotionData to set the base potion state to
      • getBasePotionData

        @NotNull
        PotionData getBasePotionData()
        Returns the potion data about the base potion
        Returns:
        a PotionData object
      • getColor

        @NotNull
        Color getColor()
        Gets the color of this arrow.
        Returns:
        arrow color
      • setColor

        void setColor​(@NotNull
                      Color color)
        Sets the color of this arrow. Will be applied as a tint to its particles.
        Parameters:
        color - arrow color
      • hasCustomEffects

        boolean hasCustomEffects()
        Checks for the presence of custom potion effects.
        Returns:
        true if custom potion effects are applied
      • getCustomEffects

        @NotNull
        List<PotionEffect> getCustomEffects()
        Gets an immutable list containing all custom potion effects applied to this arrow.

        Plugins should check that hasCustomEffects() returns true before calling this method.

        Returns:
        the immutable list of custom potion effects
      • addCustomEffect

        boolean addCustomEffect​(@NotNull
                                PotionEffect effect,
                                boolean overwrite)
        Adds a custom potion effect to this arrow.
        Parameters:
        effect - the potion effect to add
        overwrite - true if any existing effect of the same type should be overwritten
        Returns:
        true if the effect was added as a result of this call
      • removeCustomEffect

        boolean removeCustomEffect​(@NotNull
                                   PotionEffectType type)
        Removes a custom potion effect from this arrow.
        Parameters:
        type - the potion effect type to remove
        Returns:
        true if the an effect was removed as a result of this call
        Throws:
        IllegalArgumentException - if this operation would leave the Arrow in a state with no Custom Effects and PotionType.UNCRAFTABLE
      • hasCustomEffect

        boolean hasCustomEffect​(@Nullable
                                PotionEffectType type)
        Checks for a specific custom potion effect type on this arrow.
        Parameters:
        type - the potion effect type to check for
        Returns:
        true if the potion has this effect
      • clearCustomEffects

        void clearCustomEffects()
        Removes all custom potion effects from this arrow.
        Throws:
        IllegalArgumentException - if this operation would leave the Arrow in a state with no Custom Effects and PotionType.UNCRAFTABLE