Enum XEnchantment

  • All Implemented Interfaces:
    Serializable, Comparable<XEnchantment>

    public enum XEnchantment
    extends Enum<XEnchantment>
    Enchantment support with multiple aliases. Uses EssentialsX enchantment list for aliases. Enchantment levels do not start from 0, they start from 1

    EssentialsX Enchantment: https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/enchantments/Enchantment.java Enchantment: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html Enchanting: https://minecraft.gamepedia.com/Enchanting

    Version:
    2.1.1
    Author:
    Crypto Morin
    See Also:
    Enchantment
    • Field Detail

      • VALUES

        public static final XEnchantment[] VALUES
        Cached list of values() to avoid allocating memory for
        Since:
        1.0.0
      • EFFECTIVE_SMITE_ENTITIES

        public static final Set<org.bukkit.entity.EntityType> EFFECTIVE_SMITE_ENTITIES
        Entity types that DAMAGE_UNDEAD enchantment is effective against. This set is unmodifiable.
        Since:
        1.2.0
      • EFFECTIVE_BANE_OF_ARTHROPODS_ENTITIES

        public static final Set<org.bukkit.entity.EntityType> EFFECTIVE_BANE_OF_ARTHROPODS_ENTITIES
        Entity types that DAMAGE_ARTHROPODS enchantment is effective against. This set is unmodifiable.
        Since:
        1.2.0
    • Method Detail

      • values

        public static XEnchantment[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (XEnchantment c : XEnchantment.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static XEnchantment valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • isSmiteEffectiveAgainst

        public static boolean isSmiteEffectiveAgainst​(@Nullable
                                                      org.bukkit.entity.EntityType type)
        Checks if Smite is effective against this type of mob.
        Parameters:
        type - the type of the mob.
        Returns:
        true if smite enchantment is effective against the mob, otherwise false.
        Since:
        1.1.0
      • isArthropodsEffectiveAgainst

        public static boolean isArthropodsEffectiveAgainst​(@Nullable
                                                           org.bukkit.entity.EntityType type)
        Checks if Bane of Arthropods is effective against this type of mob.
        Parameters:
        type - the type of the mob.
        Returns:
        true if Bane of Arthropods enchantment is effective against the mob, otherwise false.
        Since:
        1.1.0
      • matchXEnchantment

        @Nonnull
        public static Optional<XEnchantment> matchXEnchantment​(@Nonnull
                                                               String enchantment)
        Gets an enchantment from Vanilla and bukkit names. There are also some aliases available.
        Parameters:
        enchantment - the name of the enchantment.
        Returns:
        an enchantment.
        Since:
        1.0.0
      • matchXEnchantment

        @Nonnull
        public static XEnchantment matchXEnchantment​(@Nonnull
                                                     org.bukkit.enchantments.Enchantment enchantment)
        Gets an enchantment from Vanilla and bukkit names. There are also some aliases available.
        Parameters:
        enchantment - the enchantment.
        Returns:
        an enchantment.
        Throws:
        IllegalArgumentException - may be thrown as an unexpeceted exception.
        Since:
        1.0.0
      • addEnchantFromString

        @Nonnull
        public static org.bukkit.inventory.ItemStack addEnchantFromString​(@Nonnull
                                                                          org.bukkit.inventory.ItemStack item,
                                                                          @Nullable
                                                                          String enchantment)
        Adds an unsafe enchantment to the given item from a string.

            ItemStack item = ...;
            addEnchantFromString(item, "unbreaking, 10");
            addEnchantFromString(item, "mending");
         

        Note that if you set your item's meta ItemStack.setItemMeta(ItemMeta) the enchantment will be removed. You need to use ItemMeta.addEnchant(Enchantment, int, boolean) instead. You can use the matchXEnchantment(String) method in this case.

        Parameters:
        item - the item to add the enchantment to.
        enchantment - the enchantment string containing the enchantment name and level (optional)
        Returns:
        an enchanted ItemStack or the item itself without enchantment added if enchantment type is null.
        Since:
        1.0.0
        See Also:
        matchXEnchantment(String)
      • getBook

        @Nonnull
        public org.bukkit.inventory.ItemStack getBook​(int level)
        Gets the enchanted book of this enchantment.
        Parameters:
        level - the level of this enchantment.
        Returns:
        an enchanted book.
        Since:
        1.0.0
      • parseEnchantment

        @Nullable
        public org.bukkit.enchantments.Enchantment parseEnchantment()
        Parse the Vanilla enchantment.
        Returns:
        a Vanilla enchantment.
        Since:
        1.0.0
      • isSupported

        public boolean isSupported()
        Checks if this enchantment is supported and registered in the current Minecraft version.

        An invocation of this method yields exactly the same result as the expression:

        parseEnchantment() != null
        Returns:
        true if the current version has this enchantment, otherwise false.
        Since:
        1.0.0